coin-or / Cgl

Cut Generator Library
Other
24 stars 16 forks source link

Conditional jump or move depends on uninitialised value #12

Closed svigerske closed 5 years ago

svigerske commented 5 years ago

Issue created by migration from Trac.

Original creator: @tkralphs

Original creation time: 2007-04-09 03:04:09

Assignee: @rlougee

Version: stable 0.5

Valgrind output from solving blend2 with SYMPHONY trunk revision 1043

==1641== Conditional jump or move depends on uninitialised value(s) ==1641== at 0x80A868E: CglKnapsackCover::liftCoverCut(double&, int, CoinPack\ edVector&, CoinPackedVector&, CoinPackedVector&) const (CglKnapsackCover.cpp:25\ 40) ==1641== by 0x80AA251: CglKnapsackCover::liftAndUncomplementAndAdd(double, C\ oinPackedVector&, double&, int, int, CoinPackedVector&, CoinPackedVector&, Osi\ Cuts&) const (CglKnapsackCover.cpp:722) ==1641== by 0x80AE2B7: CglKnapsackCover::generateCuts(OsiSolverInterface con\ st&, OsiCuts&, CglTreeInfo) const (CglKnapsackCover.cpp:571) ==1641== by 0x807FCF7: generate_cgl_cuts(LPDATA, int*, CUT_DATA**, char, i\ nt) (lp_solver.c:3088) ==1641== by 0x808E69F: generate_cuts_in_lp_u(LP_PROB) (lp_wrapper.c:2125) ==1641== by 0x808C13E: receive_cuts(LP_PROB, int, int) (lp_proccomm.c:366) ==1641== by 0x8087E24: fathom_branch(LP_PROB) (lp_genfunc.c:365) ==1641== by 0x80882E6: process_chain(LP_PROB) (lp_genfunc.c:179) ==1641== by 0x807A48F: solve(TM_PROB) (tm_func.c:395) ==1641== by 0x805B1A4: sym_solve(SYM_ENVIRONMENT*) (master.c:879) ==1641== by 0x804B660: main (main.c:170)

svigerske commented 5 years ago

Comment by @tkralphs created at 2007-04-09 03:16:12

Sorry about the formatting---Trac messed it up. I can send in an e-mail if you want.

svigerske commented 5 years ago

Comment by @rlougee created at 2007-09-05 15:32:34

Thanks for submitting the ticket. The line numbers do not match up with the current trunk verson of CglKnapsackCoverso I'm not able to replicate the problem. Can you re-run and see if it still happens? If it does, can you send the CGL revision # as well as the SYMPHONY revision # and I'll try to figure it out.

svigerske commented 5 years ago

Comment by @rlougee created at 2007-09-05 17:20:32

Disregard the early msg. I see that the ticket refers to CglKnapsackCover version stable 0.5, and the line numbers match up. The line Valgrind is complaining about assumes the cover has 2 elements. Someone commented out the code that enforced this condition, i.e.,

// If no minimal cover was found, pack it in
1909 // if (!gotCover || cover.getNumElements() < 2) { 1910 if (!gotCover) { 1911 return -1; 1912 }

A fix is to re-vert this change, however it's not clear from the svn who/why the changed was made. I'll check with the likly suspects & if there are no objections revert back.

svigerske commented 5 years ago

Comment by @rlougee created at 2007-09-05 17:20:32

Changing status from new to assigned.

svigerske commented 5 years ago

Comment by @rlougee created at 2007-09-05 17:23:15

seems trac doesn't do any better with formatting -- those lines were a cut and paste from the code.

svigerske commented 5 years ago

Comment by @rlougee created at 2007-09-24 19:42:03

Line 1909 was uncommented and line 1910 was removed so the test is now...

if (!gotCover || cover.getNumElements()<2)

The fix is in stable 0.51 and will be in the next release of Cgl

svigerske commented 5 years ago

Comment by @rlougee created at 2007-09-24 19:42:03

Resolution: fixed

svigerske commented 5 years ago

Comment by @rlougee created at 2007-09-24 19:44:26

Don't know why Trac isn't printing the logical OR symbol in the code fragment....but it's there.