Databases
cancel
Showing results for 
Search instead for 
Did you mean: 

Can not use proc after patched oracle client to 9.2.0.6.

SOLVED
Go to solution
MA Qiang
Regular Advisor

Can not use proc after patched oracle client to 9.2.0.6.

The error is as follows:
> proc
/usr/lib/pa20_64/dld.sl: Unable to find library 'libclntsh.sl.9.0'.
Killed

When I add two environment variables in the .profile, then it works.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib
export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib

But it works without the two environment variables before patched.

Who can tell me the reason about it?

Thanks.
3 REPLIES
Indira Aramandla
Honored Contributor
Solution

Re: Can not use proc after patched oracle client to 9.2.0.6.

Hi Qiang,

The problem is because the programs are setuid and setgid. This turns off library path search see man ld on page 29 (extract below

Some restrictions exist for 64-bit mode with executables built with shared libraries and with S-bit set (through +s enabled). The behavior of 64-bit executables does not match the behavior of equivalent 32-bit executables or executables built with +compat. For any setuid or setgid programs, dld disables any dynamic library searching through environment variables, SHLIB_PATH for 32-bit and 64-bit mode, and LD_LIBRARY_PATH for 64-bit mode. If a library only exists in the directory specified in SHLIB_PATH (or LD_LIBRARY_PATH), you get the runtime error "library not found" if the program is a setuid program (that is, uid not equal to euid or gid not equal to eguid) and it depends on that library. dld uses the dynamic path lookup (with SHLIB_PATH) only if the following conditions are satisfied: getuid () == geteuid () && getgid () == getegid (). That is, if the uid or gid does not match its effective counterpart, dld
searches only the recorded library path. As a result, dld does not check the SHLIB_PATH which causes the runtime error "library not found".

Note:109621.1 HP-UX: LD_LIBRARY_PATH and SHLIB_PATH


I hope this helps

Indira A
Never give up, Keep Trying
Yogeeraj_1
Honored Contributor

Re: Can not use proc after patched oracle client to 9.2.0.6.

hi,

according to metalink note: 284670.1 (which is applicable to a previous patch), libclntsh.sl.9.0 32bit version does not get rebuild.

It affects 9i R1 (9.0.1) and 9i R2 (9.2) and 10G R1 (10.1) and have been fixed in 9.2.0.6 and 10.1.0.3.

According to the note, the following environment variables are important too:
$LD_LIBRARY_PATH - includes $ORACLE_HOME/lib, but not $ORACLE_HOME/lib32

$SHLIB_PATH - includes $ORACLE_HOME/lib32, but not $ORACLE_HOME/lib

So, i believe the fixes brought along with the new patch is causing the problem you have described above.

Hence, you always need the two environment variable defined.

hope this helps too!
regards
yogeeraj
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)
MA Qiang
Regular Advisor

Re: Can not use proc after patched oracle client to 9.2.0.6.

I have patched another three oracle databases to 9.2.0.6, and proc work correctly after patched without set the LD_LIBRARY and LIBPATH in these servers.

Why only patching oracle client will produce the error?