Hi,
I have a multithreaded java application, which creates several MPSolver (CBC) instances in its threads and run solve on them. Unfortunately, I had to introduce a global lock since running multiple solve at the same time leads to a crash of the VM (mostly with the problematic frame in libc6.so). With a classwide synchronized all works fine.
or-tools is compiled on Debian 7.2 (libc6 2.13) and run with Oracle Java SDK 6.0_45-b06
Here are some crash log excerpts:
----------
Stack: [0x00007fa081d32000,0x00007fa081e33000], sp=0x00007fa081e2fa98, free space=1014k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libjnilinearsolver.so+0x13e7a8] _ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.constprop.333+0xd
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.google.ortools.linearsolver.mainJNI.MPSolver_solve__SWIG_0(JLcom/google/ortools/linearsolver/MPSolver;)I+0
j com.google.ortools.linearsolver.MPSolver.solve()I+5
----------
Stack: [0x00007fa4420f5000,0x00007fa4421f6000], sp=0x00007fa4421f2be0, free space=1014k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libstdc++.so.6+0xc0e2b] std::string::string(std::string const&)+0xb
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.google.ortools.linearsolver.mainJNI.MPSolver_solve__SWIG_0(JLcom/google/ortools/linearsolver/MPSolver;)I+0
j com.google.ortools.linearsolver.MPSolver.solve()I+5
----------
Is this some known issue, or do you have any idea what could be wrong here?
Thank you,
Stefan