C++ signal handling sometimes conflicts with JVM

C++ signal handling sometimes conflicts with JVM

book

Article ID: KB0091315

calendar_today

Updated On:

Products Versions
TIBCO DataSynapse GridServer -
Not Applicable -

Description

Resolution:
Sometimes, when you are porting a C++ application to the grid for the first time, you may experience unexpected and unexplainable Engine crashes. If you look at the stack trace (see other KB articles for how to obtain a native stack trace), the crash is occuring in code unrelated to either your application or to DataSynapse GridServer code.

It's always possible that a memory overwrite is causing the crash, and memory overwrites are difficult to track down. However, there are cases where the crash is caused by a signal handling conflict between the application code and the JVM. This conflict can be avoided by preloading the JVM signal chaining library, libjsig.so. The best way to do this is through an environment variable in the Engine configuration.

Using libjsig.so does not resolve every problem, but it is definitely worth trying when you are seeing crashes in an application that you know runs fine in standalone mode.

Issue/Introduction

C++ signal handling sometimes conflicts with JVM