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