XgridLite on Leopard, Test Version

After debugging some weirdness, I have a version of XgridLite that works on Leopard, I think. Brave testers, download this file:

XgridLite.prefPane.zip

Then decompress and drag the prefPane into your /Library/PreferencePanes or ~/Library/PreferencePanes

Let me know how it goes!

FYI, the weirdness I ran into goes something like this (as described in a message I just sent to the xgrid-users mailing list):

Hi everyone (particularly Apple folks),

After being out of the loop for a while, I finally got around to getting XgridLite working on Leopard. (Test version about to be posted at code.edbaskerville.com, official release probably by Monday.)

In doing so, I ran into one weirdness that I thought someone might be able to explain. XgridLite simply calls xgridctl to get and set controller state, which seems simple enough. In Tiger, it was sufficient to do this as root using a setuid tool.

In Leopard, however, I found that status calls always returned that the controller was off:

daemon              state               pid
======              =====               ===
xgridcontrollerd    stopped

This was happening inside the setuid tool even when querying it via sudo as a regular user worked fine:

Agnos:~ ebaskerv$ sudo xgridctl c status
daemon              state               pid
======              =====               ===
xgridcontrollerd    running             12656

To get to the bottom of this, I activated the root user on my system and tried it from a root shell, and, sure enough, I’m being told the controller is stopped:

sh-3.2# xgridctl c status
daemon              state               pid
======              =====               ===
xgridcontrollerd    stopped

Miraculously, though, if you run xgridctl via sudo as root, all is fine:

sh-3.2# sudo xgridctl c status
daemon              state               pid
======              =====               ===
xgridcontrollerd    running             12656

This gave me the workaround I needed: run xgridctl via sudo as root inside XgridLite. But I still have no idea *why* this is happening, so I’m writing purely out of curiosity. Why is it that running xgridctl status via sudo gives the correct status, while running as root directly does not? One more wrinkle: running xgridctl c start/stop seem to work fine inside my setuid tool (WITHOUT running via sudo), but do NOT work via a root shell!

Any wisdom would be appreciated.

Thanks,
Ed

This entry was posted in xgridlite. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>