[Cbc-tickets] [COIN-OR Branch-and-Cut MIP Solver] #158: Segmentation vialation on infeasible problems
COIN-OR Branch-and-Cut MIP Solver
coin-trac at coin-or.org
Tue Dec 23 03:57:16 EST 2014
#158: Segmentation vialation on infeasible problems
----------------------+------------------------------
Reporter: dvvarreyn | Owner: tkr
Type: defect | Status: new
Priority: major | Component: Cbc
Version: 2.8.8 | Keywords: memory violation
----------------------+------------------------------
Hello.
Running cbc 2.8.12 (could not find in the version list)
I have encountered memory violation
{{{
Cbc0010I After 204000 nodes, 12 on tree, 3.4028235e+38 best solution, best
possible 8073.3801 (1342.74 seconds)
Cbc0010I After 205000 nodes, 11 on tree, 3.4028235e+38 best solution, best
possible 8073.3801 (1348.46 seconds)
Cbc0010I After 206000 nodes, 8 on tree, 3.4028235e+38 best solution, best
possible 8298.4579 (1354.24 seconds)
Cbc0001I Search completed - best objective 3.402823466385289e+38, took
19355815 iterations and 869001 nodes (1359.25 seconds)
Cbc0032I Strong branching done 171648 times (2422070 iterations), fathomed
4617 nodes and fixed 12697 variables
Cbc0041I Maximum depth 27, 0 variables fixed on reduced cost (662131 nodes
in complete fathoming taking 6361958 iterations)
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffede6a700 (LWP 26565)]
0x00007ffff0e66be2 in CbcMain1 (argc=3, argv=0x7fffe8134640, model=...,
callBack=0x7ffff0e4db85 <dummyCallBack(CbcModel*, int)>,
parameterData=...) at CbcSolver.cpp:6641
6641 solution2[jColumn] =
solution[i];
(gdb) bt
#0 0x00007ffff0e66be2 in CbcMain1 (argc=3, argv=0x7fffe8134640,
model=..., callBack=0x7ffff0e4db85 <dummyCallBack(CbcModel*, int)>,
parameterData=...) at CbcSolver.cpp:6641
#1 0x00007ffff0e4e1b7 in callCbc1 (input2=0x7ffff1c5124f "-solve",
model=..., callBack=0x7ffff0e4db85 <dummyCallBack(CbcModel*, int)>,
parameterData=...) at CbcSolver.cpp:1130
#2 0x00007ffff0e4de0a in callCbc (input2=0x7ffff1c5124f "-solve",
babSolver=...) at CbcSolver.cpp:1035
}}}
In my case a problem was infeasible and bestSolution() == solution ==
nullptr.
Because there is no checks for that in the code above 6641 an attempt to
access triggered coredump.
I believe the code connected with solution2 may be simply removed, I saw
no usage for solution2. I removed locally and it seemed to work.
(if not take into account some asserts i.e.
{{{
Cbc0010I After 206000 nodes, 8 on tree, 3.4028235e+38 best solution, best
possible 8298.4579 (1356.03 seconds)
Cbc0001I Search completed - best objective 3.402823466385289e+38, took
19355815 iterations and 869001 nodes (1361.02 seconds)
Cbc0032I Strong branching done 171648 times (2422070 iterations), fathomed
4617 nodes and fixed 12697 variables
Cbc0041I Maximum depth 27, 0 variables fixed on reduced cost (662131 nodes
in complete fathoming taking 6361958 iterations)
Cgl0013I Postprocessed model is infeasible - possible tolerance issue -
try without preprocessing
python: CbcSolver.cpp:6769: int CbcMain1(int, const char**, CbcModel&, int
(*)(CbcModel*, int), CbcSolverUsefulData&): Assertion
`saveSolver->isProvenOptimal()' failed.
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffede6a700 (LWP 29815)]
0x00007ffff782cbb9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or
directory.
(gdb) bt
#0 0x00007ffff782cbb9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff782ffc8 in __GI_abort () at abort.c:89
#2 0x00007ffff7825a76 in __assert_fail_base (fmt=0x7ffff79772b0
"%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion at entry=0x7ffff279805a <error: Cannot access memory
at address 0x7ffff279805a>, file=file at entry=0x7ffff2796e04 <error: Cannot
access memory at address 0x7ffff2796e04>,
line=line at entry=6769,
function=function at entry=0x7ffff2799400 <CbcMain1(int, char const**,
CbcModel&, int (*)(CbcModel*, int),
CbcSolverUsefulData&)::__PRETTY_FUNCTION__> <error: Cannot access memory
at address 0x7ffff2799400>) at assert.c:92
}}}
)
I hope this information will be helpful. Sorry I can not share exact
problem to reproduce because it contains confidential data.
The bug triggers very rare; even slightly modified problems passed
successfully.
Thanks.
--
Ticket URL: <https://projects.coin-or.org/Cbc/ticket/158>
COIN-OR Branch-and-Cut MIP Solver <http://projects.coin-or.org/Cbc>
An LP-based branch-and-cut MIP solver.
More information about the Cbc-tickets
mailing list