[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