Concurrency issue with java MPSolver

93 views
Skip to first unread message

Stefan Reger

unread,
Dec 3, 2013, 5:17:52 AM12/3/13
to or-tools...@googlegroups.com
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

Stefan Reger

unread,
Dec 18, 2013, 3:57:39 AM12/18/13
to or-tools...@googlegroups.com
It's indeed a problem of the CBC code, which is discussed on the CBC mailing list: http://list.coin-or.org/pipermail/cbc/2013-December/001196.html
Reply all
Reply to author
Forward
0 new messages