[SCIP] [GCG] Uninitialised value pricerdata->nartificialvars
Erik Mühmer
muehmer at or.rwth-aachen.de
Wed Aug 9 10:50:17 CEST 2023
Dear Lukas,
I am sorry that you encountered this bug. It looks like a known bug and
should be fixed in the next release. As of today, we have a public
mirror repository on GitHub. You can access the current bugfix branch
here: https://github.com/scipopt/gcg/tree/v35-bugfix
I hope this helps.
Best regards,
Erik
On 08.08.23 14:02, Lukas Eveborn wrote:
>
> Hello,
>
> I’m working on solving a EVRPTW with GCG, but for some instances I
> sometimes get a segmentation fault.
>
> Running it with valgrind: /valgrind --tool=memcheck --leak-check=full
> --track-origins=yes bin/gcg -f model.cip/leads to the following
>
> //
>
> /A Dantzig-Wolfe reformulation is applied to solve the original problem./
>
> /Chosen structure has 2 blocks and 11 linking constraints./
>
> /This decomposition has a maxwhite score of 0.486146./
>
> /Warning: Discretization with continuous variables is only an
> experimental feature./
>
> /Matrix has 2 blocks, using 1 aggregated pricing problem./
>
> //
>
> / time | node | left |SLP iter|MLP iter|LP it/n| mem |mdpt
> |ovars|mvars|ocons|mcons|mcuts| dualbound | primalbound | deg
> | gap/
>
> / 17.0s| 1 | 0 | 0 | 0 | - |4600k| 0 | 262 | 0
> | 397 | 0 | 0 | 1.804966e+02 | -- | -- | Inf/
>
> /==55482== Conditional jump or move depends on uninitialised value(s)/
>
> /==55482== at 0xB77BD9: GCGmasterIsSolValid (pricer_gcg.cpp:5196)/
>
> /==55482== by 0xAEDAF2: GCGtransformMastersolToOrigsol (misc.c:164)/
>
> /==55482== by 0x85C625: consCheckIntegralOrig
> (cons_integralorig.c:296)/
>
> /==55482== by 0x505467D: SCIPconshdlrCheck (cons.c:3781)/
>
> /==55482== by 0x5360741: checkSolOrig (scip_sol.c:173)/
>
> /==55482== by 0x5369AD9: SCIPtrySol (scip_sol.c:3181)/
>
> /==55482== by 0x4D8E9A7: heurExecTrivial (heur_trivial.c:184)/
>
> /==55482== by 0x50C9D6B: SCIPheurExec (heur.c:1312)/
>
> /==55482== by 0x53E7A55: SCIPprimalHeuristics (solve.c:363)/
>
> /==55482== by 0x537081C: presolve (scip_solve.c:1318)/
>
> /==55482== by 0x5377171: SCIPpresolve (scip_solve.c:2493)/
>
> /==55482== by 0x5377FD1: SCIPsolve (scip_solve.c:2731)/
>
> /==55482== Uninitialised value was created by a heap allocation/
>
> /==55482== at 0x4848899: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)/
>
> /==55482== by 0x491893A: BMSallocMemory_call (memory.c:411)/
>
> /==55482== by 0xB6C36E: SCIPincludePricerGcg (pricer_gcg.cpp:4120)/
>
> /==55482== by 0xBD3CEF: SCIPincludeRelaxGcg (relax_gcg.c:3234)/
>
> /==55482== by 0x963D9B: SCIPincludeGcgPlugins (gcgplugins.c:448)/
>
> /==55482== by 0x639A10: SCIPrunGCGShell (main.c:416)/
>
> /==55482== by 0x639BB0: main (main.c:445)/
>
> /==55482==/
>
> //
>
> This is seen even the times when a segmentation fault isn’t thrown but
> then it just continues as normal.
>
> Looking at /GCGmasterIsSolValid (pricer_gcg.cpp:5196): /
>
> /for( i = 0; i < pricerdata->nartificialvars; ++i )/
>
> it seems probable that /nartificialvars /is the//uninitialized value.
>
> //
>
> One workaround to this problem I’ve used is to initialize
> nartificialvars in /SCIPincludePricerGcg() /by adding
> /pricerdata->nartificialvars = 0;/ to row 4132 in pricer_gcg.cpp
>
> However, this do not feel exactly right, so I wonder if there is
> something else that can be done to avoid this? I have GCG 3.5.3 and
> SCIP 8.03 installed on ubuntu WSL. The model that caused the above
> fault is attached.
>
> Thanks in advance,
>
> Best Regards
>
> Lukas Eveborn
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20230809/d0e56cfc/attachment.html>
More information about the Scip
mailing list