I found this bug in previous versions of CBC but only now I had time to properly discover how to replicate it.
It occurs when CBC runs in parallel and creates many nodes in the search tree.
Versions compiled with "-O2 -g" are more likely to show this bug earlier in the search tree (could not replicate with -O0 -g).
To replicate it I suggest to run cbc in problem markshare1, from miplib2003.
To speed up node creation, I used this command line: cbc markshare1.mps dualS preprocess=off cuts=off heur=off passF=0 threads=6 strong=0 trust=0 log=3 solve
Follows the message printed while running cbc in gdb: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff493f700 (LWP 7875)] doNodesThread (voidInfo=) at CbcThread?.cpp:1088 1088 assert (node->nodeInfo()); (gdb) backtrace #0 doNodesThread (voidInfo=) at CbcThread?.cpp:1088 #1 0x00007ffff75e29ca in start_thread (arg=) at pthread_create.c:300 #2 0x00007ffff522770d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #3 0x0000000000000000 in ?? () (gdb) #0 doNodesThread (voidInfo=) at CbcThread?.cpp:1088 #1 0x00007ffff75e29ca in start_thread (arg=) at pthread_create.c:300 #2 0x00007ffff522770d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #3 0x0000000000000000 in ?? ()
I found this bug in previous versions of CBC but only now I had time to properly discover how to replicate it.
It occurs when CBC runs in parallel and creates many nodes in the search tree.
Versions compiled with "-O2 -g" are more likely to show this bug earlier in the search tree (could not replicate with -O0 -g).
To replicate it I suggest to run cbc in problem markshare1, from miplib2003.
To speed up node creation, I used this command line: cbc markshare1.mps dualS preprocess=off cuts=off heur=off passF=0 threads=6 strong=0 trust=0 log=3 solve
Follows the message printed while running cbc in gdb: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff493f700 (LWP 7875)] doNodesThread (voidInfo=) at CbcThread?.cpp:1088 1088 assert (node->nodeInfo()); (gdb) backtrace #0 doNodesThread (voidInfo=) at CbcThread?.cpp:1088 #1 0x00007ffff75e29ca in start_thread (arg=) at pthread_create.c:300 #2 0x00007ffff522770d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #3 0x0000000000000000 in ?? () (gdb) #0 doNodesThread (voidInfo=) at CbcThread?.cpp:1088 #1 0x00007ffff75e29ca in start_thread (arg=) at pthread_create.c:300 #2 0x00007ffff522770d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #3 0x0000000000000000 in ?? ()