Re: Problem with mod_perl and DBI/DBD::Oracle LD_LIBRARY_PATH is not being recognized?

"Thomas M. Payerle" <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
On Mon, 21 Oct 2013, Bruce Johnson wrote:

Based on path, sounds like you have a 64 bit version of Oracle.  I am
assuming that you verified that your mod_perl is a 64 bit build.

Is your mod_perl setuid/setgid?  If so LD_LIBRARY_PATH gets ignored.

My guess would be that the dependent libraries of Oracle.so are not being
picked up for some reason, despite ldd "finding" them.  One thing you might try
is to set LD_PRELOAD to the paths to libocci and libclntsh (from man page
looks like should be whitespace separated), before starting apache, and see
if that gets things to work.  Probably not a good long term solution (as
likely adds bloat to httpd processes), but will at least confirm that the
problem is that it is not finding those libs during the dynamic load.

>
> On Oct 21, 2013, at 2:03 PM, John D Groenveld <[email protected]>
> wrote:
>
>> In message <[email protected]>, Bruce J
>> ohnson writes:
>>> Nope, that looks right:
>>>
>>> # ldd /usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so
>>> 	linux-vdso.so.1 =>  (0x00007fffc8980000)
>>> 	libocci.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libocci.so.11.1 (0
>>> x00007fb39a816000)
>>> 	libclntsh.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.
>>> 1 (0x00007fb397f84000)
>>> 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb397d5d000)
>>> 	libc.so.6 => /lib64/libc.so.6 (0x00007fb3979ca000)
>>> 	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fb3976c3000)
>>> 	libm.so.6 => /lib64/libm.so.6 (0x00007fb39743f000)
>>> 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fb397229000)
>>> 	libnnz11.so => /usr/lib/oracle/11.2/client64/lib/libnnz11.so (0x00007fb
>>> 396e5c000)
>>> 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fb396c58000)
>>> 	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fb396a3f000)
>>> 	libaio.so.1 => /lib64/libaio.so.1 (0x00007fb39683d000)
>>> 	/lib64/ld-linux-x86-64.so.2 (0x00007fb39acae000)
>>>
>>>
>>> Also, if the linking was wrong here, it wouldn't work on the command line or a
>>> s a CGI script, either, I'd think.
>>
>> As the webserver user?
>> # su - apache
>> $ /bin/printenv
>> $ /bin/env -i /bin/ldd /usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so
>>
>
> # su -s /bin/sh apache
> sh-4.1$ /usr/bin/ldd /usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so
> 	linux-vdso.so.1 =>  (0x00007fff047a7000)
> 	libocci.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libocci.so.11.1 (0x00007f659f56c000)
> 	libclntsh.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 (0x00007f659ccda000)
> 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f659cab3000)
> 	libc.so.6 => /lib64/libc.so.6 (0x00007f659c720000)
> 	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f659c419000)
> 	libm.so.6 => /lib64/libm.so.6 (0x00007f659c195000)
> 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f659bf7f000)
> 	libnnz11.so => /usr/lib/oracle/11.2/client64/lib/libnnz11.so (0x00007f659bbb2000)
> 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f659b9ae000)
> 	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f659b795000)
> 	libaio.so.1 => /lib64/libaio.so.1 (0x00007f659b593000)
> 	/lib64/ld-linux-x86-64.so.2 (0x00007f659fa04000)
>
>
> Nope.
>
> And if it were an issue under apache, the script would break when run as a CGI program, which it doesn't.
>
> It only breaks under mod_perl.
>
>
> -- 
> Bruce Johnson
> University of Arizona
> College of Pharmacy
> Information Technology Group
>
> Institutions do not have opinions, merely customs
>
>
>

Tom Payerle
IT-ETI-EUS 				[email protected]
University of Maryland			(301) 405-6135
College Park, MD 20742-4111
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.