Issue:
Policy Server crashes on JVM startup after upgrade to 12.52 SP1CR4 when CAWily (Introscope) agent is integrated.
Snippet of crash from strace.log :
14163 00:16:30 [00ed6430] open("/usr/java/jdk1.7.0_51/jre/lib/i386/libjava.so", O_RDONLY|O_NONBLOCK) = 188
14163 00:16:30 [00ed6430] read(188, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\230\0\0004\0\0\0\204B\2\0\0\0\0\0004\0 \0\6\0(\0\37\0\34\0", 52) = 52
14163 00:16:30 [00ed6430] close(188) = 0
14163 00:16:30 [00ed6430] write(1, "Error occurred during initialization of VM\n", 43) = 43
14163 00:16:30 [00ed6430] write(1, "Unable to load native library", 29) = 29
14163 00:16:30 [00ed6430] write(1, ": /usr/java/jdk1.7.0_51/jre/lib/i386/libjava.so: symbol JVM_SetNativeThreadName, version SUNWprivate_1.1 not defined in file libjvm.so with link time reference\n", 160) = 160
Environment:
Cause:
With CAWily Agent integration, policy server startup script (ca_ps_env.ksh) is modified to also include CAWily environment script (smm_env.sh).
At the end of this smm_env.sh by default has following two lines :
LD_LIBRARY_PATH=/opt/CA/CAWily/CAWilySiteMinderManager/jre/lib/i386/server:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
So, when Policy Server starts up, it puts the JRE used by CAWily also in the path which by default is pretty old (1.5) and is unsupported by Policy Server.
Now, when it comes time for Policy server to load JVM e.g at the time of invoking custom java code (e.g custom auth scheme, custom policy etc ) , there is a conflict with JRE used by Wily Agent and hence it crashes.
Resolution:
Comment following two lines from smm_env.sh script is being sourced on the Policy server side. They are not needed on Policy server side as Policy server uses it’s own JRE.
LD_LIBRARY_PATH=/opt/CA/CAWily/CAWilySiteMinderManager/jre/lib/i386/server:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Additional Information:
N/A