cancel
Showing results for 
Search instead for 
Did you mean: 

startsap failing: cannot find librfcum.so

Former Member
0 Kudos

Everything was working fine until I rebooted the server. Now, when I run 'startsap', the instance fails to start. Here's a message from the log:

/usr/sap/PSB/DVEBMGS00/exe/sapstartsrv: error while loading shared libraries: librfcum.so: cannot open shared object file: No such file or directory

I am running startsap as user psbadm, and the LD_LIBRARY_PATH is: LD_LIBRARY_PATH=/usr/sap/PSB/SYS/exe/run:/usr/sap/PSB/SYS/exe/uc/linuxx86_64:/sapdb/clients/PSB/lib

I double-checked and the first path listed there has the file librfcum.so in it.

It appears that the environment must not be carried through when sapstartsrv is run.

Any ideas?

Thanks,

Matt

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member208104
Active Participant
0 Kudos

Matt,

Can you please check /usr/sap/PSB/DVEBMGS00/exe directory, if librfcum.so exist there.

if not copy it from /usr/sap/PSB/SYS/exe/run.

-Sanjay

Former Member
0 Kudos

Hi Sanjay,

Yes, I found the lib in both of those folders already. It is very interesting that the library won't load, because LD_LIBRARY_PATH is pointing to the correct path. But, maybe somehow it is getting unset in the startsap script?

One thing I notice is that startsap runs 'sapstartsrv with an input file named START_DVEBMGS00_usphlvm1438 which contains some execution paramters. This file contains some SETENV_0? variables that define the environment. I don't know how to manually run sapstartsrv to get it to dump the environment out, but when I run the following command at the commandline (which I derived from within the startsap script), then I get some interesting output:

Here's the command:

/usr/sap/PSB/DVEBMGS00/exe/sapstartsrv pf=/usr/sap/PSB/SYS/profile/START_DVEBMGS00_usphlvm1438 -D

Here's the output:

Could not open the ICU common library.

The following files must be in the path described by

the environment variable "LD_LIBRARY_PATH":

libicuuc.so.34, libicudata.so.34, libicui18n.so.34 [nlsui0_mt.c 1439] pid = 23401

LD_LIBRARY_PATH is currently set to <not set> [nlsui0_mt.c 1442] pid = 23401

I don't know why it would complain that LD_LIBRARY_PATH is not set. If I immediately echo $LD_LIBRARY_PATH, it returns a good path, so other things must be going on under the hood that are causing this.

-Matt

Former Member
0 Kudos

I found the problem. Because the environment kept changing, I figured that the user account must be loading incorrectly...however, then psbadm account environment is fine, yet the executable would load empty LD_LIBRARY_PATH. This would only occur for the root user. Sure enough, looking at the sapstartsrv executable, it is owned by root with sticky-bit on. I remember turning on sticky bit, but why I set it to be owned by root is a personal mystery. Regardless....setting ownership of that file to the psbadm resolved the issue. I located all such instances of sapstartsrv and set them to their respective proper owner.

-Matt

former_member208104
Active Participant
0 Kudos

Hi,

I know you already checked the environment variable using echo, just for confirmation LD_LIBRARY_PATH should set in .sapenv_<hostname> file.

login with <sid>adm and run command env and see if you are able to find LD_LIBRARY_PATH.

Also refer note:

Note 877795 - Problems w/ sapstartsrv as of Release 7.00 & 6.40 patch 169

Note 823941 - SAP start service on Unix platforms

-Sanjay