This is interesting. This is the second time we've had someone install XML::Parser into a fink copy of perl while we were using the system copy of perl to run our jobmanager scripts.

Adam - what user account is running your container? How is the container being started? How are the fink perl modules being added to your environment?

My suspicion is that the fink stuff is triggering off of something like .bash_login, but that the container is being started by a non- login shell so the INC stuff is missing. So when you run the postinstall scripts after adding XML::Parser to fink, even the system perl can find it because of some kind of PERL5LIB environment variable that fink has set for you. But then when you launch the container, that environment variable is lost.

You should be able to add a symlink from $GLOBUS_LOCATION/lib/perl to the place where XML::Parser can be found. Alternatively, install XML::Parser into /System/Library/Perl.

Martin - we should see if the setup script can cache the INC being used when XML::Parser is being found, and re-use that when running the jobmanager scripts that require it.


Charles

On Aug 1, 2007, at 4:56 PM, Adam Kocoloski wrote:

Yep, that helped. It's a missing XML::Parser problem. Here's the error string:

Script stderr:
Can't locate XML/Parser.pm in @INC (@INC contains: /System/Library/ Perl/5.8.6/darwin-thread-multi-2level /System/Library/Perl/5.8.6 / Library/Perl/5.8.6/darwin-thread-multi-2level /Library/Perl/5.8.6 / Library/Perl /Network/Library/Perl/5.8.6/darwin-thread- multi-2level /Network/Library/Perl/5.8.6 /Network/Library/Perl / System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level / System/Library/Perl/Extras/5.8.6 /Library/Perl/5.8.1 . /usr/local/ globus-4.0.5//lib/perl) at /usr/local/globus-4.0.5//lib/perl/ Globus/GRAM/ExtensionsHandler.pm line 4.BEGIN failed--compilation aborted at /usr/local/globus-4.0.5//lib/perl/Globus/GRAM/ ExtensionsHandler.pm line 4.Compilation failed in require at /usr/ local/globus-4.0.5//lib/perl/Globus/GRAM/JobManager.pm line 8.BEGIN failed--compilation aborted at /usr/local/globus-4.0.5// lib/perl/Globus/GRAM/JobManager.pm line 8.Compilation failed in require at /usr/local/globus-4.0.5//lib/perl/Globus/GRAM/ JobManager/fork.pm line 5.BEGIN failed--compilation aborted at / usr/local/globus-4.0.5//lib/perl/Globus/GRAM/JobManager/fork.pm line 5.Compilation failed in require at (eval 1) line 3.

Sure enough, I did have to install XML::Parser via Fink after bumping into an error during "make install". If I add

push(@INC, '/sw/lib/perl5/5.8.6/darwin-thread-multi-2level');

to the BEGIN of the job-manager-script things appear to work just fine. I guess my final question is "What's the right way to customize @INC?" Regards,

Adam


On Aug 1, 2007, at 10:29 AM, [EMAIL PROTECTED] wrote:

Hi Adam,

Please try another thing for me:
Add the following warn statement to
    $GLOBUS_LOCATION/libexec/globus-job-manager-script.pl
and check what the commandline output of a simple globusrun-ws job is.
I hope you get a "Script stderr ..." with some more information.
Please send it then.

...
eval "require $manager_class";

if($@)
{
    my $error_string = $@;
    warn $error_string;
    ...

Thanks, Martin

Hi Martin,

On Aug 1, 2007, at 9:14 AM, [EMAIL PROTECTED] wrote:

Adam,
I think the problem in your case is the line
    eval "require $manager_class";
If require fails you'll enter the following if block and because
you did not specify a logfile the condition
if (defined($job_description) && defined($job_description- >logfile()))
fails. This is fine but the failing require is not fine.

Please do the following for me:

1. Add a system debug statement before the eval statement
     system("echo $manager_class > /tmp/JOB_MANAGER_CLASS");
     eval "require $manager_class";
   What's the content of /tmp/JOB_MANAGER_CLASS after a job
submission?

Globus::GRAM::JobManager::fork

2. What are the permissions of
   $GLOBUS_LOCATION/lib/perl/Globus/GRAM/JobManager/*.pm

-rw-r--r-- 1 globus globus 13597 Jul 31 12:13 /usr/local/ globus-4.0.5/
lib/perl/Globus/GRAM/JobManager/fork.pm

3. Write the following job description to a file "job.xml":
   <job>
     <executable>/bin/true</executable>
     <extensions>
       <logfile>/tmp/GT_SUBMISSION_PERL_LOG</logfile>
     </extensions>
   </job>
   and submit it using "globusrun-ws -submit -f job.xml"
   What's the content of /tmp/GT_SUBMISSION_PERL_LOG?

true lives in /usr/bin on Mac OS X, so I changed the path and
submitted.  The job failed and no logfile was generated.  Regards,

Adam






Reply via email to