Bugzilla – Bug 4275
globus-gram-local-proxy-tool fails on Solaris
Last modified: 2008-02-28 14:09:14
You need to
before you can comment on or make changes to this bug.
globus-gram-local-proxy-tool fails on Solaris.
I'm using Solaris 9 for my WS container (WS GRAM server).
Thus, my WS GRAM request including "globusrun-ws -job-delegate"
fails on WS GRAM server.
globus-gram-local-proxy-tool is /bin/sh script.
On Linux, there are "set -C" command.
But on Solaris, there are no "set -C" command.
$ set -C
-C: bad option(s)
$ $GLOBUS_LOCATION/libexec/globus-gram-local-proxy-tool \
$GLOBUS_LOCATION -write $PWD/tmpfile
Generating a 512 bit RSA private key
writing new private key to stdout
-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----
/home/somewhere/gt4/libexec/globus-gram-local-proxy-tool: -C: bad
Just commenting out the "set -C" from the shell script
worked fine for me.
I attach the shell script jobrun.sh to reproduce the problem.
% ./jobrun.sh your-host your-port subject delegate
Giving "delegate" argument causes an error.
Giving no "delegate" argument causes no-error.
jobrun.sh uses uuidgen command. But Solaris has no uuidgen.
please prepare uuidgen command or just uuid-string yourself.
My WS container error:
2006-03-10 11:32:48,781 ERROR factory.ManagedJobFactoryService
[ServiceThread-15,createManagedJob:357] Job creation failed.
java.lang.RuntimeException: Couldn't obtain a delegated credential. at
Caused by: java.io.IOException: Unable to change owner of file
/home/myhome/.globus/gram_job_proxy_29bacf00-afde-11da-9f39-d79ea15d6311 to myna
Created an attachment (id=866) [details]
jobrun.sh to reproduce the problem.
I also encountered this problem. I was able to fix it by changing the first
line of globus-gram-local-proxy-tool from
It appears that /bin/bash is not standard on solaris. But nevertheless,
changing the shell to bash seems to do the trick.
(In reply to comment #2)
> It appears that /bin/bash is not standard on solaris.
how about /bin/ksh.
Since we are planning pluggable job proxy creation (#3741), I'm turning this
into a documentation bug in that there isn't a prerequeisite for Bourne shell.
Once we implement the plugin interface, you'll be free to specify a plugin that
uses a ksh script for Solaris. Either that or just install /bin/sh. I'm rather
surprised Solaris doesn't include that by default.
This bug looks to have been a victim of a misunderstanding. "set -C" doesn't
exist in bourne shell (sh), it only exists in the bourne-again shell (bash).
It looks like the noclobber could be simulated by doing something like:
if [ ! -e "$PROXYFILE.cert" ]; then
cat > "$PROXYFILE.cert"
and the like. This tool needs to either be sh-compatible or not pretend to be
launched with /bin/sh.
Committed fix (avoid bash extensions) to 4.0 branch and trunk.