[Pljava-dev] libjvm.so error

From: whalesuit at bonbon(dot)net (Eric E)
To:
Subject: [Pljava-dev] libjvm.so error
Date: 2005-05-25 15:10:22
Message-ID: 4294955E.1010107@bonbon.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

Hi all,
Well, I'm guessing that lack of LD_LIBRARY_PATH is coming back to bite
me again... I went to run the examples, and got this in the log (I was
impressed at how Postgres handled the crash :)

2005-05-25 10:57:48 LOG: Error occurred during initialization of VM
2005-05-25 10:57:48 LOG: Unable to load native library
2005-05-25 10:57:48 LOG: : libverify.so: cannot open shared object
file: No such file or directory

and of course, libverify.so is in /usr/lib/jvm/java/jre/lib/i386 ...

So I guess I'm back to my previous question - how do I make the
postmaster aware of LD_LIBRARY_PATH?

Thanks,

Eric

Eric E wrote:

> Hi Thomas,
> Thanks for the help. Like Terrance, when I created a symlink in
> /lib that solved the problem. You are correct that this is bypassing
> LD_LIBRARY_PATH, but I could not figure out how to make the postmaster
> aware of LD_LIBRARY_PATH. My approach was to add
> export CLASSPATH=
> and
> export LD_LIBRARY_PATH=
> statements to the init script used to start the postmaster. These
> statements work fine with invoking the deployer from the command line:
> # ldd /usr/lib/postgresql/libpljava.so
> linux-gate.so.1 => (0xfbffd000)
> libjvm.so => /usr/lib/jvm/java/jre/lib/i386/server/libjvm.so
> (0x4001e000)
> libc.so.6 => /lib/i686/libc.so.6 (0x40643000)
> libnsl.so.1 => /lib/libnsl.so.1 (0x40757000)
> libm.so.6 => /lib/i686/libm.so.6 (0x4076d000)
> libdl.so.2 => /lib/libdl.so.2 (0x40790000)
> libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40794000)
> /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
>
> but they do not seem to propagate to the postmaster's environment.
> Any suggestions? Is there any way to find out what environment
> variables are set for a postmaster process?
>
> As an aside, I had put the /usr/share/pgsql/pg73b1jdbc3.jar in my
> CLASSPATH because it is evidently necessary to have it in the
> classpath when running the deployer. I've since removed it.
>
> Thanks,
>
> Eric
>
> Thomas Hallgren wrote:
>
>> Terrance,
>> The symbolic link you've added will make the dynamic loader find the
>> libjvm.so without consulting the LD_LIBRARY_PATH so something is
>> wrong with your LD_LIBRARY_PATH. Either it's not visible to the
>> backend process somehow, or it's incorrect.
>>
>> The LD_LIBRARY_PATH *is* the mechanism whereby the system (i.e. the
>> dynamic loader) will find either the server or the client version of
>> PL/Java.
>>
>> Unrelated to this problem I also see that you have
>> "/usr/share/pgsql/pg73b1jdbc3.jar" in your CLASSPATH. That's probably
>> a very bad idea. PL/Java should not have this jar in it's classpath.
>> Why do you need this?
>>
>> Regards,
>> Thomas Hallgren
>>
>> Terrance Davis wrote:
>>
>>> I was having the same error today on linux, and happened to do an
>>> 'ldd' on
>>> 'libpljava.so'
>>>
>>> As I recall, it has a dependency on libjvm.so, but the installation
>>> of Java
>>> had not told the system where to find either the server or client
>>> version of
>>> libjvm.so, so I put a symbolic link to the libjvm.so version I
>>> wanted to use
>>> in the '/lib' directory and the error went away.
>>>
>>> I'm not sure if that is the right solution, but it seems to have
>>> worked so
>>> far.
>>>
>>> Terrance
>>>
>>>
>>> -----Original Message-----
>>> From: pljava-dev-bounces at gborg.postgresql.org
>>> [mailto:pljava-dev-bounces at gborg.postgresql.org] On Behalf Of Eric E
>>> Sent: Monday, May 23, 2005 4:42 PM
>>> To: pljava-dev at gborg.postgresql.org
>>> Subject: [Pljava-dev] libjvm.so error
>>>
>>> Howdy,
>>> I'm having a bit of trouble installing PL/JAVA. I believe I've the
>>> LD_LIB and CLASSPATH variables correctly, but I'm still getting the
>>> error about libjvm.so:
>>> ---------------
>>> java.sql.SQLException: ERROR: could not load library
>>> "/usr/lib/postgresql/libpljava.so": libjvm.so: cannot open shared
>>> object
>>> file: No such file or directory
>>> ---------------
>>>
>>> I believe I'm setting both CLASSPATH and LD_LIBRARY_PATH correctly for
>>> my machine. Can you think of any reason why this error might occur?
>>>
>>> Below is the output of the init script to start postgres.
>>>
>>> Many thanks,
>>>
>>> Eric
>>>
>>> ---------------
>>> # bash -x /etc/init.d/postgresql restart
>>> + PG_SYSCONFIG=/etc/sysconfig/postgresql
>>> + test -f /etc/sysconfig/postgresql
>>> + . /etc/sysconfig/postgresql
>>> ++ POSTGRES_DATADIR='~postgres/data'
>>> ++ POSTGRES_OPTIONS=
>>> ++ POSTGRES_LANG=
>>> ++
>>> POSTGRES_CLASSPATH=/usr/lib/postgresql/pljava/pljava.jar:/usr/share/pgsql/pg
>>>
>>> 73b1jdbc3.jar
>>> ++
>>> POSTGRES_LD_LIBRARY_PATH=/usr/lib/jvm/java/jre/lib/i386:/usr/lib/jvm/java/jr
>>>
>>> e/lib/i386/client:/usr/lib/jvm/java/jre/lib/i386/native_threads
>>> + export
>>> CLASSPATH=/usr/lib/postgresql/pljava/pljava.jar:/usr/share/pgsql/pg73b1jdbc3
>>>
>>> .jar
>>> +
>>> CLASSPATH=/usr/lib/postgresql/pljava/pljava.jar:/usr/share/pgsql/pg73b1jdbc3
>>>
>>> .jar
>>> + export
>>> LD_LIBRARY_PATH=/usr/lib/jvm/java/jre/lib/i386:/usr/lib/jvm/java/jre/lib/i38
>>>
>>> 6/client:/usr/lib/jvm/java/jre/lib/i386/native_threads
>>> +
>>> LD_LIBRARY_PATH=/usr/lib/jvm/java/jre/lib/i386:/usr/lib/jvm/java/jre/lib/i38
>>>
>>> 6/client:/usr/lib/jvm/java/jre/lib/i386/native_threads
>>> + . /etc/rc.status
>>> ++ test -z '' -o -z ''
>>> +++ exec
>>> +++ stty size
>>> +++ read L C
>>> +++ echo LINES=24 COLUMNS=80
>>> ++ eval LINES=24 COLUMNS=80
>>> +++ LINES=24
>>> +++ COLUMNS=80
>>> ++ test 24 -eq 0
>>> ++ test 80 -eq 0
>>> ++ export LINES COLUMNS
>>> ++ case $PATH in
>>> ++ test -t 1 -a xterm '!=' raw -a xterm '!=' dumb
>>> ++ stty size
>>> +++ echo -en '\033'
>>> ++ esc=$'\E'
>>> ++ extd=''
>>> ++ warn=''
>>> ++ done=''
>>> ++ attn=''
>>> +++ echo -en '\017'
>>> ++ norm=''
>>> +++ echo -en
>>> '\015
>>> '
>>> ++ stat=' '
>>> ++
>>> rc_done='
>>> done'
>>> ++ rc_running='
>>> running'
>>> ++ rc_failed='
>>> failed'
>>> ++ rc_missed='
>>> missing'
>>> ++ rc_skipped='
>>> skipped'
>>> ++
>>> rc_dead='
>>> dead'
>>> ++ rc_unused='
>>> unused'
>>> ++ rc_unknown='
>>> failed''
>>> ++ rc_reset=''p='
>>> ++ rc_save=''
>>> ++ rc_restor'='
>>> ++ _rc_service=/etc/init.d/postgresql
>>> ++ _rc_status=0
>>> ++ _rc_status_all=0
>>> ++ _rc_todo=restart
>>> ++ test restart = status
>>> ++ test -n restart
>>> + LOGFILE=/var/log/postgresql
>>> + eval 'DATADIR=~postgres/data'
>>> ++ DATADIR=/var/lib/pgsql/data
>>> + OPTIONS=
>>> + H=/usr/bin/postmaster
>>> + test -x /usr/bin/postmaster
>>> + '[' -r /var/lib/pgsql/data/PG_VERSION ']'
>>> ++ /usr/bin/postmaster --version
>>> ++ sed 's/.* \([0-9]\+\.[0-9]\+\).*/\1/'
>>> + BIN_VERSION=7.4
>>> ++ cat /var/lib/pgsql/data/PG_VERSION
>>> + DATA_VERSION=7.4
>>> + '[' 7.4 '!=' 7.4 ']'
>>> + rc_reset
>>> + _rc_status=0
>>> + _rc_status_all=0
>>> + rc_check
>>> + _rc_status_ret=0
>>> + test 0 -eq 0
>>> + test 0 -eq 0
>>> + return
>>> + return 0
>>> + case "$1" in
>>> + /etc/init.d/postgresql stop
>>> Shutting down
>>> PostgreSQL done
>>> + /etc/init.d/postgresql start
>>> Starting
>>> PostgreSQL done
>>> + rc_status
>>> + rc_check
>>> + _rc_status_ret=0
>>> + test 0 -eq 0
>>> + test 0 -eq 0
>>> + return
>>> + test 0 -gt 7
>>> + _rc_status_ret=0
>>> + case "$_rc_todo" in
>>> + local i
>>> + return 0
>>> + rc_exit
>>> + exit 0
>>>
>>> here's libjvm.so:
>>>
>>> # ls -l /usr/lib/jvm/java/jre/lib/i386/client
>>> total 4997
>>> drwxr-xr-x 2 root root 144 Mar 18 12:11 .
>>> drwxr-xr-x 5 root root 976 Mar 18 12:11 ..
>>> -rw-r--r-- 1 root root 1386 Sep 28 2004 Xusage.txt
>>> lrwxrwxrwx 1 root root 13 Mar 18 12:11 libjsig.so ->
>>> ../libjsig.so
>>> -rwxr-xr-x 1 root root 5103795 Sep 28 2004 libjvm.so
>>>
>>>
>>>
>>> _______________________________________________
>>> Pljava-dev mailing list
>>> Pljava-dev at gborg.postgresql.org
>>> http://gborg.postgresql.org/mailman/listinfo/pljava-dev
>>>
>>> _______________________________________________
>>> Pljava-dev mailing list
>>> Pljava-dev at gborg.postgresql.org
>>> http://gborg.postgresql.org/mailman/listinfo/pljava-dev
>>>
>>>
>>
>>
>>
>>
>
>
>
> _______________________________________________
> Pljava-dev mailing list
> Pljava-dev at gborg.postgresql.org
> http://gborg.postgresql.org/mailman/listinfo/pljava-dev
>
>

In response to

Responses

Browse pljava-dev by date

  From Date Subject
Next Message Thomas Hallgren 2005-05-25 18:01:48 [Pljava-dev] libjvm.so error
Previous Message Marek Lewczuk 2005-05-25 14:57:10 [Pljava-dev] Does trigger's NEW/OLD ResultSet contain "oid" column