Main menu

Navigation

CESM runtime error - Can't locate loadable object for module XML::LibXML in @INC

10 posts / 0 new
Last post
aketh.tm@...
CESM runtime error - Can't locate loadable object for module XML::LibXML in @INC

After building a case successfully, I am trying to run CESM 1.2.2. 

I use the '$CASE.submit' to submit the job to pbs. (I am using the that job manager)

the job gets submittted with the following message -

[nitin@master case_B_f19_g16_userdefined_2]$ ./case_B_f19_g16_userdefined_2.submit 

check_case OK

443.master.ipoc.org

   However, the jobs gets completed immediately after submission.  The output file generated has the following content [nitin@master case_B_f19_g16_userdefined_2]$ cat case_B_f19_g16.out ccsm_getenv error   

 

The error file generated has the following content

[nitin@master case_B_f19_g16_userdefined_2]$ cat case_B_f19_g16.err 

Can't locate loadable object for module XML::LibXML in @INC (@INC contains: /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2 /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/perl5lib /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/../Case.template /usr/lib64/perl5/XML /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/lib64/perl5/DynaLoader.pm line 153

BEGIN failed--compilation aborted at /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools/XML/LibXML.pm line 153.

Compilation failed in require at /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools/ConfigCase.pm line 101.

BEGIN failed--compilation aborted at /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools/ConfigCase.pm line 101.

Compilation failed in require at ./xmlchange line 202.

Can't locate loadable object for module XML::LibXML in @INC (@INC contains: /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools/Tools /usr/lib64/perl5/XML /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/lib64/perl5/DynaLoader.pm line 153

BEGIN failed--compilation aborted at /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools/XML/LibXML.pm line 153.

Compilation failed in require at /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools/ConfigCase.pm line 101.

BEGIN failed--compilation aborted at /storage/home/nitin/CESM/cesm1_2_2/nitin_cases/case_B_f19_g16_userdefined_2/Tools/ConfigCase.pm line 101.

Compilation failed in require at ./Tools/xml2env line 122.

 

I tried adding the path to the perl INC (using environment variables). I also copied the 'LibXML' directory and 'LibXML.pm' file to the ./Tools/XML/ directory, as it seems that these files are being searched for in the $CASE/Tools/XML/ directory. In spite of all this, the same error shows up. 

What exactly can i try to solve this error? 

Thanks. 

 

 

 

 

jedwards

Can you run `perl -MXML::LibXML -e 1`

If it works nothing will happen, if it fails you will get an error like:

Can't locate XML/LibXML.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).

 

BEGIN failed--compilation aborted.

Can you run it on the compute nodes?   I'm not sure of this but the error suggests that your compute nodes need a different binary than the one you are pointing to - is your front end node different than the compute nodes?

CESM Software Engineer

aketh.tm@...

Thanks for the reply. 

I ran the perl command. It ran successfully. I did not get any error.

 

Yes. My front end node is different from the compute nodes. My front end node is the master node of the cluster. I use the pbs job management system to submit the job. The nature of the binary should be mostly the same for the front end node and the compute nodes. Previously, I have run the same binaries on the front end node and the compute nodes. 

In spite of no error showing up while running the perl command, why do the logs show the LibXML error? How can I resolve that error? 

Thanks.

jedwards

DId you run the perl command on a compute node?   

CESM Software Engineer

aketh.tm@...

Oh, okay. I had previously run it on the master and it was running fine. 

When I ran it on the compute node, it showed the following error. (Just as you'd told)

[nitin@node1 ~]$ perl -MXML::LibXML -e 1 Can't locate XML/LibXML.pm in @INC (@INC contains: /usr/lib64/perl5/XML /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .). BEGIN failed--compilation aborted.

So, why is it that the compute nodes cannot access the LibXML.pm file? And how do we fix this?

 

Thanks

 

jedwards

perls XML:LibXML relies on a c library libxml2 - it seems that this is not instaled on (or is installed but not compatable with) your compute nodes.   You should talk to your system support staff. 

CESM Software Engineer

nitkbhat@...

Yeah. The perl module LibXML.pm was missing in the compute nodes.

Installed it using the yum command. 

yum install 'perl(XML::LibXML)'

This command installs the perl LibXML module and the error does not show up on running "perl -MXML::LibXML -e 1". 

The Perl module XML::LibXML can also be downloaded from cpan. 

Thanks




 

 

swang54@...

Hi, 

I am running cesm1_2_2_CAMChem on Yellowstone but I got the same errors. Based on your discussions, it seems like there is c library missing on the node. But I have no idea what it could happen on Yellowstone. Is there any module that I need to load and call in the job submit script?

Here is the error message from the job.error file:

Can't locate XML/LibXML.pm in @INC (@INC contains: /glade/u/home/swang54/cases_test/2011_f19/Tools /glade/u/home/swang54/cases_test/2011_f19/Tools/Tools /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /glade/u/home/swang54/cases_test/2011_f19/Tools/ConfigCase.pm line 101.

BEGIN failed--compilation aborted at /glade/u/home/swang54/cases_test/2011_f19/Tools/ConfigCase.pm line 101.

 

Compilation failed in require at ./Tools/xml2env line 122.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

And this is my job script:

#!/bin/bash

#

#BSUB -P UHOU0001   # project code

#BSUB -W 04:00               # wall-clock time (hrs:mins)

#BSUB -n 64                   # number of tasks in job         

#BSUB -R "span[ptile=16]"    # run 16 MPI tasks per node

#BSUB -J job1_2011               # job name

#BSUB -o job1_2011.%J.out        # output file name in which %J is replaced by the job ID

#BSUB -e job1_2011.%J.err        # error file name in which %J is replaced by the job ID

#BSUB -q regular              # queue

 

 

./2011_f19.submit


Thank you!!

jedwards

On yellowstone this is provided by the perlmods/5.0 module which sets

setenv("PERL5LIB", "/glade/apps/opt/perlmods/lib64/perl5:/glade/apps/opt/perlmods/share/perl5")

 

CESM Software Engineer

swang54@...

jedwards

Thank you for your reply. I have solved the problem. I should use ./case.submit instead of creating a new script for submitting a job. All parameters associated with running options can be adjusted in .run file. Still thanks for your response!

 

Sally

Log in or register to post comments

Who's new

  • dans7messiah@...
  • m.kliphuis@...
  • ddc3061993@...
  • hui.ding@...
  • zhouc@...