[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