[Cbc-tickets] [COIN-OR Branch-and-Cut MIP Solver] #90: Bug in factorSparseSmall (CoinFactorization2.cpp)

COIN-OR Branch-and-Cut MIP Solver coin-trac at coin-or.org
Fri Apr 16 14:23:56 EDT 2010


#90: Bug in factorSparseSmall (CoinFactorization2.cpp)
------------------------+---------------------------------------------------
 Reporter:  sssiii      |       Owner:  somebody
     Type:  defect      |      Status:  new     
 Priority:  major       |   Milestone:          
Component:  component1  |     Version:          
 Keywords:              |  
------------------------+---------------------------------------------------
 This is actually a CoinUtils bug, but I did not find a bug report link on
 the respective page, so I am using the Cbc page.

 My program 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.

 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/90>
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