[CoinUtils-tickets] [COIN-OR Common Utilities] #62: Bug in factorSparseSmall (CoinFactorization2.cpp)
COIN-OR Common Utilities
coin-trac at coin-or.org
Fri Apr 16 16:44:02 EDT 2010
#62: Bug in factorSparseSmall (CoinFactorization2.cpp)
-------------------+--------------------------------------------------------
Reporter: sssiii | Type: defect
Status: new | Priority: major
Version: | Keywords:
-------------------+--------------------------------------------------------
Here again the bug I already put in the Cbc system:
My program (which uses Cbc) crashed, so I ran valgrind and found out that
there seems to be
a problem with factorSparseSmall() in CoinFactorization2.cpp. You can
find
the relevant valgrind output below. I will trace the bug myself, but
cannot say if I will find it.
I am using Cbc 2.4.0, and I checked out the svn-version of CoinUtils
today - the file did not change. I am using a 64-Bit Linux. I was using
the standard Makefile to produce the CoinUtil object files and am
currently re-running the program, this time using a debug version of the
affected object file (I replaced -03 -DNDEBUG by -g -DDEBUG). It will take
a while.
The bug is rather infrequent (at least to the extent where the program
actually crashes). It occurs only if I run my program with a specific
parameter setting, and then after 48 nodes in the Cbc framework.
Here the output:
==598== Invalid write of size 8
==598== at 0x5A2103: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16085a38 is 0 bytes after a block of size 4,415,504
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596942: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598==
==598== Invalid write of size 4
==598== at 0x5A210A: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16973038 is 0 bytes after a block of size 2,207,752
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596969: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598==
==598== Invalid read of size 4
==598== at 0x5A2462: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16973038 is 0 bytes after a block of size 2,207,752
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596969: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598==
==598== Invalid read of size 8
==598== at 0x5A246A: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16085a38 is 0 bytes after a block of size 4,415,504
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596942: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598==
==598== Invalid read of size 8
==598== at 0x5A2266: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16085a38 is 0 bytes after a block of size 4,415,504
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596942: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598==
==598== Invalid read of size 4
==598== at 0x5A2269: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16973038 is 0 bytes after a block of size 2,207,752
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596969: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598==
==598== Invalid write of size 8
==598== at 0x5A2278: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16085a38 is 0 bytes after a block of size 4,415,504
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596942: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598==
==598== Invalid write of size 4
==598== at 0x5A2280: CoinFactorization::factorSparseSmall() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x59DF2E: CoinFactorization::factor() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x69DBF5: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x4280F4:
lp_joint_histogram_segmentation(Math2D::Matrix<unsigned> const&, double,
unsigned, Math2D::Matrix<unsigned>&) (lp_segmentation.cc:2125)
==598== Address 0x16973038 is 0 bytes after a block of size 2,207,752
alloc'd
==598== at 0x4C2492C: operator new[](unsigned long) (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==598== by 0x5B6885: CoinArrayWithLength::conditionalNew(long) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x596969: CoinFactorization::getAreas(int, int, int, int)
(in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x69D8D1: ClpFactorization::factorize(ClpSimplex*, int,
bool) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x750A4E: ClpSimplex::internalFactorize(int) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x734734: ClpSimplexDual::statusOfProblemInDual(int&, int,
double*, ClpDataSave&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x736CDE: ClpSimplexDual::fastDual(bool) (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x7F5BA2: OsiClpSolverInterface::solveFromHotStart() (in
/home/tosch/bin/lpseg.debug.L64)
==598== by 0x8AE0AE: CbcNode::chooseDynamicBranch(CbcModel*, CbcNode*,
OsiSolverBranch*&, int) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x898D92: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*,
OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*,
OsiSolverBranch*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A0189: CbcModel::doOneNode(CbcModel*, CbcNode*&,
CbcNode*&) (in /home/tosch/bin/lpseg.debug.L64)
==598== by 0x8A3AA7: CbcModel::branchAndBound(int) (in
/home/tosch/bin/lpseg.debug.L64)
--
Ticket URL: <https://projects.coin-or.org/Cbc/ticket/91>
COIN-OR Branch-and-Cut MIP Solver <http://projects.coin-or.org/Cbc>
An LP-based branch-and-cut MIP solver.
--
Ticket URL: <https://projects.coin-or.org/CoinUtils/ticket/62>
COIN-OR Common Utilities <http://projects.coin-or.org/CoinUtils>
Common data structures and linear algebra functions for COIN-OR projects
More information about the CoinUtils-tickets
mailing list