Consultor Eletrônico



Kbase P76405: HPUX: unable to find library "libwtc9.sl" upon starting progress dataserver executable and connectin
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/27/2004
Status: Unverified

FACT(s) (Environment):

Progress 9.1D 64-bit
Oracle 9i

SYMPTOM(s):

Can not load shared library when starting progress and connecting to Oracle

/usr/lib/pa20_64/dld.sl: unable to find library "libwtc9.sl"

Error occurs when connecting to oracle at startup

Error does not occur if starting progress without connecting to Oracle, then connect to Oracle after startup

_progres owned by root and has setuid set

added softlink in /usr/lib for libwtc9.sl, but still getting error

Schema holder is running as server

Taking off setuid results shared memory permission denied error upon connecting to schema holder

chatr $ORACLE_HOME/lib/libclntsh returns wrong embedded path

chatr $ORACLE_HOME/lib/libclntsh

libclntsh.sl:
64-bit ELF shared library
shared library dynamic path search:
LD_LIBRARY_PATH enabled first
SHLIB_PATH enabled second
embedded path enabled third this returns wrong directory
path

internal name:
libclntsh.sl.9.0
shared library list:
libwtc9.sl
librt.2
libnss_dns.1
libdl.1
libm.2
libc.2
libcl.2
shared vtable support disabled
segments:

CAUSE:

Because setuid is set, either LD_LIBRARY_PATH or SHLIB_PATH will be ignored, so the embedded path will be searched but the embedded path is pointing to invalid directory, thus the shared libraries can not be located

FIX:

Three alternatives to address the problem:

1. Leave setuid on, fix the embedded path by regen libclntsh ($ORACLE_HOME/bin/genlibclntsh)

2. Leave setuid on, start up session first, then connect to Oracle. After session starts, effective user id becomes the starter of executable, no longer root anymore, which prevents setuid issue on shared libraries