Bugzilla – Bug 2362
location of user proxy for java inconsistencies
Last modified: 2004-11-30 21:56:53
You need to
before you can comment on or make changes to this bug.
The perl+ant+java throughput test for gram is looking for the user proxy under
/tmp/x509up_u_<username> and ignoring the actual proxy in /tmp/x509up_u<UID>
that was generated by grid-proxy-init and found by managed-job-globusrun.
This is not a bug report for the throughput test, but a request that we make
sure it is easy to write clients that use our normal conventions for finding
proxies. Can we find out why this is happening and see if any improvements
should be made to the client programming environment for WSRF?
How is Ant started from perl? Is the environment inherited from parent or a new
environment is created?
The Java GSI library executes 'id -u' process in the background to discover the
user id. If that problem fails for whatever reason (e.g. id program is not in
the path) the library defaults to the proxy name with the user name. This is a
known issue and there are different solutions for it. See
http://bugzilla.globus.org/globus/show_bug.cgi?id=1873 for some details.
It seems my email reply was dropped...
Perhaps we should change to use the proxy file name that doesn't require an
external program call to generate? For example, we could have grid-proxy-init
link the proxy file under both names so C can look under UID and Java can look
under username, and some other implementation can look under whatever is easiest?
Saying "this is why it happens" is not a good resolution in my view (to the
other referenced bug).
I am also not sure why this explanation is true... is there a race
condition in the invocation of id? I can assure you that /usr/bin/id is in my
path when I ran the grid-proxy-init+managed-job-globusrun (which
used the numeric UID filename) and when I ran the throughput test
(which used the alphabetic username filename).
Not knowing perl well enough, I don't know how to answer your perl/ant
question. The program is in
ws-gram/service/java/test/throughput/run-throughput-tests.pl in the
development CVS repository. The user account I am using for testing
has no special PATH configuration, so /usr/bin/in should be there
in any sane default environment.