<br><font size=2 face="sans-serif">Kish,</font>
<br>
<br><font size=2 face="sans-serif">I can reproduce valgrind problem with
code you sent. &nbsp;I should be able to fix CoinUtils presolve - I just
hope it fixes your Windows problem.</font>
<br>
<br><font size=2 face="sans-serif">John</font>
<br>
<br>
<br>
<table width=100%>
<tr>
<td><img src=cid:_1_0F077E440F077A5C005159FB852574F7>
<td width=100%>
<table width=100%>
<tr valign=top>
<td width=100%><font size=2 face="sans-serif"><b>[Clp] problem with initialSolve()</b></font></table>
<br>
<table width=100%>
<tr>
<td><font size=2 color=#e26200 face="sans-serif"><b>Kish Shen </b></font>
<td><font size=2 color=#8f8f8f face="sans-serif">to:</font>
<td><font size=2 face="sans-serif">clp</font>
<td>
<div align=right><font size=1 face="sans-serif">11/03/2008 04:04 PM</font></div></table>
<br>
<table width=100%>
<tr>
<td>
<table width=100%>
<tr>
<td><font size=2 color=#8f8f8f face="sans-serif">Sent by:</font>
<td width=100%><font size=2 color=#e26200 face="sans-serif"><b>clp-bounces@list.coin-or.org</b></font></table>
<br>
<td>
<div align=right></div></table>
<br></table>
<br>
<br>
<hr>
<br>
<br>
<br><tt><font size=2>Hi,<br>
<br>
I have recently updated the Clp/Cbc solver I use to a recent trunk <br>
branch version, thanks to the help of John Forrest. After checking that
<br>
everything is working on the Linux platform, I built the system for the
<br>
other platforms we distribute the binaries for. On the Windows version,
<br>
I am now getting a segmentation fault, apparently for about 50% of the
<br>
runs, for one test in our test suite. The seg fault does not occur on <br>
the Linux platform, nor with the older (downloaded Nov 2007) Clp/Cbc <br>
solver I was using previously.<br>
<br>
The problematic test sets up a simple problem, and then changes the <br>
objective function before solving it, and then the objective function is
<br>
changed again and resolved. The seg fault seem to happen with the first
<br>
solve.<br>
<br>
As we build the Windows system using a MinGW cross-compiler on Linux, <br>
which is not the standard way of building Clp/Cbc for Windows, it may be
<br>
difficult to reproduce the problem, so I decided to run valgrid with the
<br>
test on our Linux (32 bit x86) build. Although there is no seg fault <br>
with this, valgrind does return some errors when initialSolve() (from <br>
OsiClpSolverInterface) is called:<br>
<br>
[eclipse 3]: probeexample.<br>
==12317== Invalid read of size 8<br>
==12317== &nbsp; &nbsp;at 0x4CE0DF3: <br>
CoinPrePostsolveMatrix::setColumnStatusUsingValue(int) (in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp;Address 0x4328b98 is 0 bytes after a block of size 24 alloc'd<br>
==12317== &nbsp; &nbsp;at 0x401A951: malloc (vg_replace_malloc.c:207)<br>
==12317== &nbsp; &nbsp;by 0x4D63B97: operator new(unsigned) (new_op.cc:57)<br>
==12317== &nbsp; &nbsp;by 0x4D63C3C: operator new[](unsigned) (new_opv.cc:37)<br>
==12317== &nbsp; &nbsp;by 0x4B50F6F: CoinPresolveMatrix::CoinPresolveMatrix(int,
<br>
double, ClpSimplex*, int, int, bool, double, double) (in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp; &nbsp;by 0x4B524E8: <br>
ClpPresolve::gutsOfPresolvedModel(ClpSimplex*, double, bool, int, bool,
<br>
bool) (in /user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp; &nbsp;by 0x4A8ECC3: OsiClpSolverInterface::initialSolve()
(in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp; &nbsp;by 0x4A791AD: coin_solveLinear(lp_desc*, int, int)
<br>
(coinplex.cpp:581)<br>
==12317== &nbsp; &nbsp;by 0x4A7A55D: coin_solve_problem (coinplex.cpp:1537)<br>
==12317== &nbsp; &nbsp;by 0x4A7109D: p_cpx_optimise (seplex.c:6122)<br>
==12317== &nbsp; &nbsp;by 0x40768B9: ec_emulate (in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/libeclipse.so)<br>
==12317==<br>
==12317== Invalid read of size 8<br>
==12317== &nbsp; &nbsp;at 0x4CE0DF9: <br>
CoinPrePostsolveMatrix::setColumnStatusUsingValue(int) (in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp;Address 0x4324a10 is 0 bytes after a block of size 24 alloc'd<br>
==12317== &nbsp; &nbsp;at 0x401A951: malloc (vg_replace_malloc.c:207)<br>
==12317== &nbsp; &nbsp;by 0x4D63B97: operator new(unsigned) (new_op.cc:57)<br>
==12317== &nbsp; &nbsp;by 0x4D63C3C: operator new[](unsigned) (new_opv.cc:37)<br>
==12317== &nbsp; &nbsp;by 0x4B4F730: <br>
CoinPrePostsolveMatrix::CoinPrePostsolveMatrix(ClpSimplex const*, int,
<br>
int, int, double) (in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp; &nbsp;by 0x0: ???<br>
==12317==<br>
==12317== Invalid read of size 8<br>
==12317== &nbsp; &nbsp;at 0x4CE0DFF: <br>
CoinPrePostsolveMatrix::setColumnStatusUsingValue(int) (in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp;Address 0x4324a58 is 0 bytes after a block of size 24 alloc'd<br>
==12317== &nbsp; &nbsp;at 0x401A951: malloc (vg_replace_malloc.c:207)<br>
==12317== &nbsp; &nbsp;by 0x4D63B97: operator new(unsigned) (new_op.cc:57)<br>
==12317== &nbsp; &nbsp;by 0x4D63C3C: operator new[](unsigned) (new_opv.cc:37)<br>
==12317== &nbsp; &nbsp;by 0x4B4F73B: <br>
CoinPrePostsolveMatrix::CoinPrePostsolveMatrix(ClpSimplex const*, int,
<br>
int, int, double) (in <br>
/user/eclipse/Eclipse_6.0_41/lib/i386_linux/seosiclpcbc.so)<br>
==12317== &nbsp; &nbsp;by 0x0: ???<br>
<br>
<br>
I don't get these messages from valgrind when I run the test with the <br>
older CLP/CBC I have been using.<br>
<br>
The seg fault with the Windows version also seem to occur when the same
<br>
initialSolve() is called, but I do not know for certain that the above
<br>
problem detected by valgrind is the cause. Does the above look like a <br>
real problem in Cbc? If so, I can send the code that will generate the
<br>
above messages (although I cannot get this to reproduce the seg fault).<br>
<br>
Thanks and cheers,<br>
<br>
Kish<br>
<br>
<br>
-- <br>
This e-mail may contain confidential and privileged material for the<br>
sole use of the intended recipient. Any review, use, distribution or<br>
disclosure by others is strictly prohibited. If you are not the intended<br>
recipient (or authorized to receive for the recipient), please contact<br>
the sender by reply e-mail and delete all copies of this message.<br>
Cisco Systems Limited (Company Number: 02558939), is registered in<br>
England and Wales with its registered office at 1 Callaghan Square,<br>
Cardiff, South Glamorgan CF10 5BT.<br>
_______________________________________________<br>
Clp mailing list<br>
Clp@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/clp<br>
</font></tt>
<br>