SYMPHONY icon indicating copy to clipboard operation
SYMPHONY copied to clipboard

sensitivity.c segmentation fault errors

Open SelinBayramoglu opened this issue 3 years ago • 2 comments

Hello,

I compiled SYMPHONY 5.6.18 with coinbrew using the following commands:

wget https://github.com/coin-or/SYMPHONY/archive/refs/tags/releases/5.6.18.zip unzip 5.6.18.zip wget https://raw.githubusercontent.com/coin-or/coinbrew/master/coinbrew ./coinbrew fetch [email protected] ./coinbrew build SYMPHONY --enable-optional --enable-debug --enable-sensitivity-analysis --disable-cgl-cuts --with-application --no-prompt

I'd like to use the sensitivity analysis feature. So I compiled the sensitivity.c program in the Examples folder via the Makefile. I got it to work with the example exmip1.lp in Data/Sample folder. For other example problems, I get several errors.

For example, with exmip1.mps I get: ++++++++++++++++++++++++++++++++++++++++++++++++++++

  • TM: Pruning NODE 1 LEVEL 1 while generating it. ++++++++++++++++++++++++++++++++++++++++++++++++++++ Segmentation fault: 11

I want to perform sensitivity analysis without preprocessing as well, so I tried running the code again with the following parameters:

sym_set_int_param(env, "sensitivity_analysis", TRUE); sym_set_int_param(env, "verbosity", 5); sym_set_int_param(env, "prep_level", -1);

This time, I got a segmentation fault with the exmip1.lp as well, which used to work when preprocessing was on.

GDB shows that the error occurs at line 1610 of tm_func.c:

child->duals = bobj->duals[i];

where bobj->duals is a null pointer.

I'd appreciate any help/advice with this issue. Thank you.

SelinBayramoglu avatar Mar 10 '22 18:03 SelinBayramoglu

Thanks for reporting this and sorry that I haven't gotten to look at it yet. The sensitivity analysis features of SYMPHONY have not received a lot of exercise. @bsuresh Might you have a chance to look at this?

tkralphs avatar Mar 24 '22 17:03 tkralphs

@SelinBayramoglu I probably should have given you this answer right off the bat, but had to refresh my memory. The WS ("warm starting") branch has a lot of fixes for sensitivity and warm starting that have not made it into either master or 5.6. I guess that I probably won't end up fixing these issues in 5.6, but will move on to another stable version based on what is in the WS branch. The WS branch should be working well, since that is the branch I'm using most of the time. It does need to be rebased on master, though. There may be a few minor fixes in master that are not in WS.

I just tried the example that was failing in 5.6 and it seems to work fine in WS. Can you give it a try?

tkralphs avatar Mar 29 '22 17:03 tkralphs