Friday, August 22, 2014

Running Delivered and Custom App Engine Process using PSAE command line crashes when terminating.

Application Engine program XXX ended normally

15339: 1404097409: PSPAL::Abort: Unexpected signal received
15339: 1404097409: PSPAL::Abort: Location: /vob/peopletools/src/pspal/exception_sigaction.cpp:494: RecoverableSignalHandler
15339: 1404097409: PSPAL::Abort: Generating process state report to /opt/pshome/logs/psae.15339/process_state.txt
15339: 1404097409: PSPAL::Abort: Terminating process now.

On examining the process_state.txt, found the following

(Looking for PSPAL::)

#9  0x00007f18e0e52c3b in STWGCTimer::register_gc_start(long) () from /opt/tools/jre/lib/amd64/server/libjvm.so
#10 0x00007f18e117d8a8 in PSScavenge::invoke_no_policy() () from /opt/tools/jre/lib/amd64/server/libjvm.so
#11 0x00007f18e117ef21 in PSScavenge::invoke() () from /opt/tools/jre/lib/amd64/server/libjvm.so
#12 0x00007f18e1136020 in ParallelScavengeHeap::failed_mem_allocate(unsigned long) () from /opt/tools/jre/lib/amd64/server/libjvm.so

It seems that issue is happening, when the application engine program that invokes the java code and at the time of terminating trying to clean the JVM memory. When the JVM memory area points to invalid locations, it crashes the JVM. This is observed in 8.53.12 and currently there is no official solution, other than POC to fix this issue. You will need to open a support case to get the POC. In POC, libpsjni.so has been modified so that it does not try to clear the java memory when exiting the program.

No comments: