[Cbc] Fwd: Crash on 64 bit machine

Kibaek Kim kibaek.k at gmail.com
Tue Nov 18 11:21:44 EST 2014


Hi,

I am pointing to an old archive: http://list.coin-or.org/pipermail/cbc/2010-December/000518.html

I have the same issue with Cbc + my own cut generation implementation (using Cgl), which does outer approximation. In CoinWarmStartBasis::applyDiff, I found that the issue occurred when artifCnt > this->getNumArtificial(). And, in my case, this happens after a dummy branch is created in CbcModel::doOneNode. The dummy branch was created because generator_[i]->generateCuts(theseCuts, -1, solver_, NULL) ; returned theseCuts.sizeRowCuts() > 0.

I am using a 64-bit Mac and g++ 4.8.3. The following is a valgrind report:

==70123== Invalid write of size 4
==70123==    at 0x10054E586: void CoinMemcpyN<unsigned int>(unsigned int const*, int, unsigned int*) (in ./MyTest)
==70123==    by 0x10054D20C: CoinWarmStartBasis::applyDiff(CoinWarmStartDiff const*) (in ./MyTest)
==70123==    by 0x1000EAC8F: CbcPartialNodeInfo::applyToModel(CbcModel*, CoinWarmStartBasis*&, CbcCountRowCut**, int&) const (in ./MyTest)
==70123==    by 0x1000AA8C8: CbcModel::addCuts1(CbcNode*, CoinWarmStartBasis*&) (in ./MyTest)
==70123==    by 0x1000AA9DA: CbcModel::addCuts(CbcNode*, CoinWarmStartBasis*&, bool) (in ./MyTest)
==70123==    by 0x1000C8D1D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (in ./MyTest)
==70123==    by 0x10009B677: CbcModel::branchAndBound(int) (in ./MyTest)
..
==70123==  Address 0x100d0e948 is 0 bytes after a block of size 8 alloc'd
==70123==    at 0x66BB: malloc (vg_replace_malloc.c:300)
==70123==    by 0x6174CD: operator new(unsigned long) (in /opt/local/lib/libgcc/libstdc++.6.dylib)
==70123==    by 0x10054E008: CoinWarmStartBasis::clone() const (in ./MyTest)
==70123==    by 0x100047B76: CbcFullNodeInfo::applyToModel(CbcModel*, CoinWarmStartBasis*&, CbcCountRowCut**, int&) const (in ./MyTest)
==70123==    by 0x1000AA8C8: CbcModel::addCuts1(CbcNode*, CoinWarmStartBasis*&) (in ./MyTest)
==70123==    by 0x1000AA9DA: CbcModel::addCuts(CbcNode*, CoinWarmStartBasis*&, bool) (in ./MyTest)
==70123==    by 0x1000C8D1D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (in ./MyTest)
==70123==    by 0x10009B677: CbcModel::branchAndBound(int) (in ./MyTest)

Any idea to this issue? or has this been resolved after the archive I pointed to above?

Best,
Kibaek

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20141118/73c2ffbf/attachment.html>


More information about the Cbc mailing list