(sorry for my Inglés, is not my first language. Sometimes is bad, Sometimes is Worse: P)
Several people 9iR2 Oracle RAC Cluster Manager (oracm) installed on RedHat 4 x86_64 ( AMD64 / EM64T ). Starting oracm on first node shows only one oracm process and starting oracm on the second one dumps both oracm process on each node tracing dumps on $ORACLE_HOME/oracm/log/cm.log and the process dies. Cause
oracm and all other oracle binaries for GNU/Linux on 9i uses the 'old kernel API' ( 2.4 series ) and now 2.6 kernels offers new improvements ( glibc, modules, etc... ) then the start up oracm script - $ORACLE_HOME/oracm/bin/ocmstart.sh - contains a verification condition to apply corrections in the execution environment to force the use of the correct libraries and avoid malfunctions on executables that only understand the old way: $ORACLE_HOME/oracm/bin/ocmstart.sh verification:
"(...)
#
# 3. Startup
#
#check if RH3.0, then set LD_ASSUME_KERNEL for starting CM. if [ -e /etc/redhat-release ]
then version=`rpm -qf /etc/redhat-release --queryformat "%{VERSION}\n"` if [ $version == 3AS -o $version == 3ES ]
then
LD_ASSUME_KERNEL=2.4.19 export LD_ASSUME_KERNEL (...) "
that's OK if we are running RedHat 3 but under RedHat 4 this condition returns false miserably :), then the LD_ASSUME_KERNEL correction is not applied and oracm crashes when trying to create new threads. Possible Solution
You can modify the condition to return TRUE on RedHat 3 or RedHat 4 or simply, 'cause you know where are you running, force the declaration of LD_ASSUME_KERNEL=2.4.19 at the beginning of the ocmstart.sh script ( on all nodes )
"
(...)
# # 1. Configuration #
export LD_ASSUME_KERNEL=2.4.19
if test -z "$ORACLE_HOME"
then
echo 'ocmstart.sh: Error: environment variable ORACLE_HOME is not set'
(...)
"
Remember that you've modified this script manually and check the content after application of any patch related to Oracle Cluster Manager. Some of Them Could overwrite this script and the Force export LD_ASSUME_KERNEL = 2.4.19 Should Be inserted again
After this Change You Will Be Able to Correctly oracm start on all nodes and see how Each one is registered on the cluster software layer
Good Explanations about LD_ASSUME_KERNEL
http://developer.novell.com/wiki/index.php/LD_ASSUME_KERNEL
http://people.redhat.com/drepper/assumekernel.html