1825756 Members
2702 Online
109687 Solutions
New Discussion

can't load dld.sl

 
SOLVED
Go to solution
sridhar_423
Occasional Advisor

can't load dld.sl

Hello Experts,

We are running Siebel application on HP-UX PA_RISC os. For Java integration from Siebel, we need to access libjvm.sl. But everytime, I'm getting the error "Unable to Load JVM Dll".

When I traced the process using tusc, then I found out that it is not able to load dld.sl
Please find below an excerpt from the tusc output
[11583]{3838761} close(82) ............................................................................ [entry]
[11583]{3838761} close(82) ............................................................................ = 0
[11583]{3838761} write(2, 0x77fe9004, 15) ............................................................. [entry]
[11583]{3838761} write(2, "/ u s r / l i b / d l d . s l ", 15) ....................................... = 15
[11583]{3838761} write(2, 0xc0014de8, 2) .............................................................. [entry]
[11583]{3838761} write(2, ": ", 2) .................................................................. = 2
[11583]{3838761} write(2, 0xc0014848, 60) ............................................................. [entry]
[11583]{3838761} write(2, "C a n ' t s h l _ l o a d ( ) ".., 60) ................................... = 60
[11583]{3838761} write(2, 0x75b40b90, 48) ............................................................. [entry]
[11583]{3838761} write(2, "/ o p t / j a v a 1 . 3 / j r e ".., 48) ................................... = 48
[11583]{3838761} write(2, 0xc0013d70, 1) .............................................................. [entry]
[11583]{3838761} write(2, "\n", 1) .................................................................... = 1
[11583]{3838761} write(2, 0x77fe9004, 15) ............................................................. [entry]
[11583]{3838761} write(2, "/ u s r / l i b / d l d . s l ", 15) ....................................... = 15
[11583]{3838761} write(2, 0xc0014de8, 2) .............................................................. [entry]
[11583]{3838761} write(2, ": ", 2) .................................................................. = 2
[11583]{3838761} write(2, 0xc00135f0, 17) ............................................................. [entry]
[11583]{3838761} write(2, "E x e c f o r m a t e r r o ".., 17) ................................... = 17

could you please let me know what I need to do to resolve this issue.

Thanks,
Sridhar
16 REPLIES 16
Steven E. Protter
Exalted Contributor

Re: can't load dld.sl

Shalom,

find /usr -name dld.sl

/usr/lib/dld.sl
/usr/lib/pa20_64/dld.sl
/usr/lib/aCC/dld.sl

Three places it should be.

Make sure:
1) The file exists.
2) The file is on SHLIB_PATH when program is started or compiled.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
sridhar_423
Occasional Advisor

Re: can't load dld.sl

Hi Steven,

Thanks for the immediate response.

dld.sl file is present in /usr/lib and SHLIB_PATH variable has this path set before the application is started.
SHLIB_PATH=/usr/lib:/gsmcrmgc03/siebelnew/siebsrvr/lib:/opt/java1.3/jre:/opt/java1.3/jre/bin:/opt/java1.3/jre/lib/PA_RISC2.0/server:/opt/java1.3/jre/lib/PA_RISC2.0

After searching this forum, I have tried setting LD_PRELOAD variable also (SHLIB_PATH still has /usr/lib)
LD_PRELOAD=/usr/lib/dld.sl; export LD_PRELOAD;

Kindly let me know if there is anything else that I have missed out.

Thanks,
Sridhar
Steven Schweda
Honored Contributor

Re: can't load dld.sl

Are you having problems loading "dld.sl", or
is "dld.sl" having problems loading
"/opt/java1.3/jre"? I know nothing, but it
looks to me like the latter.
James R. Ferguson
Acclaimed Contributor

Re: can't load dld.sl

Hi Sridhar:

I agree with Steven S. It appears that the erorr is in trying to load '/opt/java1.3/jre'. In fact, it looks like an "exec format error".

Do you have '/opt/java1.3/jre' and if so, what does a 'file /opt/java1.d/jre' return?

If you were lacking 'dld/sl' you would have far more serious problems than you do :-)

Regards!

...JRF...
sridhar_423
Occasional Advisor

Re: can't load dld.sl

Hi Steven,

The sad thing is I also don't know. How can i find it out whether this is a problem in loading dld.sl or dld.sl having problem in loading libjvm.sl

I have attached the tusc output. In that I have seen libjvm.sl has been read successfully. I'm not sure about the sequence and the role of dld.sl here. The process seems to have failed when dld.sl came into picture. Btw Siebel is a 32-bit application. So, its referring to the correct dld.sl (/usr/bin/dld/sl)

Could you please provide me the pointer on how to check the problem.

Thanks,
Sridhar
sridhar_423
Occasional Advisor

Re: can't load dld.sl

Hi James/ Steven

Thanks for the response.

The aim is to access libjvm.sl which is present in /opt/java1.3/jre/lib/PA_RISC2.0/server/libjvm.sl

I need to access this file to run Java programs from within Siebel application.

If you look at the entire look, the process is trying to read one by one starting from opt as a file. Finally, it is successful reading libjvm.sl when it comes to that point. Kindly take a look at the log that I hav attached.

dld.sl is present on our server at the following locations.
/usr/lib/dld.sl
/usr/lib/pa20_64/dld.sl
/usr/lib/aCC/dld.sl

Thanks,
Sridhar
Dennis Handly
Acclaimed Contributor

Re: can't load dld.sl

>I found out that it is not able to load dld.sl

This is incorrect. This message is the standard UNIX convention of:
command-that-detected-the-error: message ...

So it is an error message detected by dld.sl.
Also the messages have been truncated, so you need to cut&paste from stderr.

>let me know if there is anything else that I have missed out.

The error in question is: Exec format error ...
Was there more to the messages on stderr?

>How can I find it out whether this is a problem in loading dld.sl or dld.sl having problem in loading libjvm.sl

It is obvious. Or you can look at the tusc output. Error messages for loading dld.sl would mention crt0:
crt0: ERROR couldn't open /usr/lib/dld.sl errno:0000000##
http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1069280

>The aim is to access libjvm.sl which is present in /opt/java1.3/jre/lib/PA_RISC2.0/server/libjvm.sl

Ah, details. You can't without relinking. The bill of materials changed between 1.3 and 1.4 and you will get this "Exec format error, invalid shlib version" error message.
sridhar_423
Occasional Advisor

Re: can't load dld.sl

Hi Denis,

Thanks a lot for your reply. I have been trying alternate ways of setting LD_PRELOAD till this time without any luck.

You mentioned about relinking. I'm trying to execute Java programs from within Siebel & siebctl is the actual binary file that is used to start/ stop the Server.

I dont have option to set LD_PRELOAD to libjvm.sl at the time of starting the application.

As you've said, I need to relink libjvm.sl. But I dont have any idea of how to relink libjvm.sl and to what it should be linked to.
Can you please provide some information on how to relink libjvm.sl?

Many thanks for the information.

Thanks & Regards,
Sridhar
Dennis Handly
Acclaimed Contributor

Re: can't load dld.sl

>Can you please provide some information on how to relink libjvm.sl?

You have to relink siebctl. Or use the old version of java.
What does "chatr siebctl" show?
sridhar_423
Occasional Advisor

Re: can't load dld.sl

Hi Denis,

chatr siebctl
Ouput of the above command is given below

sibadmin@gsmcrmgc: /gsmcrmgc03/siebelnew/siebsrvr/bin # chatr siebctl
siebctl:
normal executable
shared library dynamic path search:
SHLIB_PATH enabled first
embedded path disabled second Not Defined
shared library list:
dynamic /usr/lib/libm.2
dynamic /usr/lib/libpthread.1
dynamic /usr/lib/librt.2
dynamic /usr/lib/libgen.2
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcver.sl
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcosa.sl
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcshar.sl
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcosd.sl
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslccore.sl
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcos.sl
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcsym.sl
dynamic /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsssssvc.sl
dynamic /usr/lib/libstd.2
dynamic /usr/lib/libstream.2
dynamic /usr/lib/libCsup.2
dynamic /usr/lib/libcl.2
dynamic /usr/lib/libc.2
static /usr/lib/libdld.2
shared library binding:
deferred
global hash table disabled
plabel caching disabled
global hash array size:1103
global hash array nbuckets:3
shared vtable support disabled
explicit unloading enabled
runtime checks disabled
static branch prediction disabled
executable from stack: D (default)
kernel assisted branch prediction enabled
lazy swap allocation disabled
text segment locking disabled
data segment locking disabled
third quadrant private data space disabled
fourth quadrant private data space disabled
third quadrant global data space disabled
data page size: 16M
instruction page size: 16M
nulptr references enabled
shared library private mapping disabled
shared library text merging enabled

Thanks,
Sridhar
Dennis Handly
Acclaimed Contributor

Re: can't load dld.sl

>chatr siebctl Output of the command is given below

Hmm, I don't see what I expected. I was looking for another libjvm.
Can you use ldd instead?

Here are some other threads about Exec format error and how to use odump:
http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1252481
http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1115429

sridhar_423
Occasional Advisor

Re: can't load dld.sl

Hi Dennis,

I have gone through the links you have given, but couldnt understand much out of it except the commands :-(
Please find below the output of various commands which will give you information about siebctl.

sibadmin@gsmcrmgc: /gsmcrmgc03/siebelnew/siebsrvr/bin # odump -slliblist -sllibload siebctl

Shared Library List Table for siebctl:

Index Ref IDNRVIL HighWater Name

0 abs .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/siebctl
1 -l .D...I. 0 /usr/lib/libm.2
2 -l .D...I. 0 /usr/lib/libpthread.1
3 -l .D...I. 0 /usr/lib/librt.2
4 -l .D...I. 0 /usr/lib/libgen.2
5 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcver.sl
6 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcosa.sl
7 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcshar.sl
8 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcosd.sl
9 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslccore.sl
10 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcos.sl
11 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsslcsym.sl
12 -l .D..... 0 /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsssssvc.sl
13 -l .D...I. 0 /usr/lib/libstd.2
14 -l .D...I. 0 /usr/lib/libstream.2
15 -l .D...I. 0 /usr/lib/libCsup.2
16 -l .D...I. 49 /usr/lib/libcl.2
17 -l .D...I. 0 /usr/lib/libc.2
18 abs .D...I. 0 /usr/lib/libdld.2

map_shlib, cannot dynamically lookup: /net/sdchpv2a/vol1/build/v78_19038/bin/hpuxu/libsssssvc.sl

Shared Library Load List for /usr/lib/libstd.2:

Order Name

0 ^ /usr/lib/libstd.2
1 ^ /usr/lib/libstream.2
2 ^ /usr/lib/libCsup.2
3 ^ /usr/lib/libcl.2
4 ^ ^ /usr/lib/libdld.2
5 ^ ^ /usr/lib/libisamstub.1
6 ^ /usr/lib/libc.2
7 ^ ^ /usr/lib/libdld.2
8 ^ /usr/lib/libdld.2

sibadmin@gsmcrmgc: /gsmcrmgc03/siebelnew/siebsrvr/bin # ldd siebctl
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libcl.2 => /usr/lib/libcl.2
/usr/lib/libisamstub.1 => /usr/lib/libisamstub.1
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libCsup.2 => /usr/lib/libCsup.2
/usr/lib/libstream.2 => /usr/lib/libstream.2
/usr/lib/libstd.2 => /usr/lib/libstd.2
/usr/lib/dld.sl: Can't find path for shared library: libsssssvc.sl
/usr/lib/dld.sl: No such file or directory
you have mail in /var/mail/sibadmin
sibadmin@gsmcrmgc: /gsmcrmgc03/siebelnew/siebsrvr/bin #

Thanks,
Sridhar
TTr
Honored Contributor

Re: can't load dld.sl

> /usr/lib/dld.sl: Can't find path for shared library: libsssssvc.sl
> /usr/lib/dld.sl: No such file or directory

Didn't you notice this at the end of you last posting? Shouldn't it be libsvc.sl? Check your java source code for a "sssss" typo (sticky "s" key?)
Dennis Handly
Acclaimed Contributor
Solution

Re: can't load dld.sl

>Please find below the output of various commands which will give you information about siebctl.

You need to export SHLIB_PATH so ldd and odump can find all of the dependent shlibs.

>odump -slliblist -sllibload siebctl
>16 -l .D...I. 49 /usr/lib/libcl.2

So libcl is the only one with a non-zero highwater mark.

>map_shlib, cannot dynamically lookup: .../libsssssvc.sl

These would be interesting.

># ldd siebctl
...

This is missing the same shlibs.
sridhar_423
Occasional Advisor

Re: can't load dld.sl

Hi Dennis,

Thanks for pointing that. After exporting SHLIB_PATH, i have executed the commands.
I have attached the output of the following commands

ldd siebctl > ldd.txt
odump -slliblist -sllibload siebctl > odump.txt

Can you please take a look at the output?

>So libcl is the only one with a non-zero highwater mark.
Will this make any difference?

Hi TTr,

After looking at this error message, I tried searching for the file. At that time I was not really sure whether its a typo or a missing file. But after exporting SHLIB_PATH, as suggested by Dennis, in the output of odump, this error has disappeared.

Thanks,
Sridhar
Dennis Handly
Acclaimed Contributor

Re: can't load dld.sl

>After exporting SHLIB_PATH, i have executed the commands.
>odump -slliblist -sllibload siebctl

Can you also do this for every shlib you found for siebctl?

There is nothing obvious. So perhaps the problem is in what you are trying to dynamically load. Can you use the same commands on those shlibs?

>>So libcl is the only one with a non-zero highwater mark.

>Will this make any difference?

Well, this shlib is usually the cause of that error. It is the only one using intra-library versioning.

And between java 1.3 and 1.4, the bill of materials was changed, which would cause it.