[CoinUtils-tickets] [COIN-OR Common Utilities] #61: Failure in CoinMessageHandler::printing

COIN-OR Common Utilities coin-trac at coin-or.org
Tue Apr 6 11:03:02 EDT 2010


#61: Failure in CoinMessageHandler::printing
----------------------+-----------------------------------------------------
  Reporter:  knark    |      Owner:  forrest         
      Type:  defect   |     Status:  closed          
  Priority:  major    |    Version:  stable/2.0 (SVN)
Resolution:  invalid  |   Keywords:                  
----------------------+-----------------------------------------------------
Changes (by ladanyi):

  * status:  new => closed
  * resolution:  => invalid


Comment:

 This is a message by John Forrest, who wrote CoinMessageHandler. Based on
 his comments (which I agree with) it's unlikely that CoinMessageHandler is
 at fault, and neither he nor I can reproduce the problem. So for now I
 close the ticket, but feel free to reopen it. In that case try to run the
 code through some memory debugger to see where the corruption occurs and
 attach the output here, too.

 --Laci

 =======================================

 Laci,

 Unlikely to be CoinMessageHandler itself.  I would suspect that the
 messages have got corrupted on copying or by overwriting.

 There is a complete list of messages (in this case Clp) and we are
 trying to print out the CLP_SIMPLEX_STATUS one.  At line 529 of
 CoinMessageHandler.cpp this message is copied into currentMessage_.  At
 531 format_ is set to point to the start of the message.  It should look
 like
 "%d  Obj %g%? Primal inf %g (%d)%? Dual inf %g (%d)%? w.o. free dual inf
 (%d)"

 but I suspect it doesn't.  nextPercent will be called two or three times
 by which time format_ should be pointing to %?.  But I think something
 got corrupted so there was no % before end of string - so format_ gets
 set to NULL.

 If it happens quickly, Marcel could try uncommenting the //printf
 statements to see if it is obvious when corruption occurs.  Obviously
 one should also recompile everything as it could be an old DLL.

 John

-- 
Ticket URL: <https://projects.coin-or.org/CoinUtils/ticket/61#comment:2>
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