[SCIP] segmentation fault while using LProw functions

Naga Venkata Chaitanya Gudapati - nagavenkata.gudapati@studio.unibo.it nagavenkata.gudapati at studio.unibo.it
Fri Aug 7 22:02:52 CEST 2020


Ambros was extremely helpful in guiding me while debugging the error. As per Ambros's suggestion, I used valgrind to understand where the leaks were happening. There were multiple issues and I have highlighted them here.

1) When I am passing the LProws to the pricer, I should have been cognizant that I shouldn't be releasing them immediately
2) I should be releasing the efficacious rows in SCIP_DECL_PRICEREXITSOL() by iterating through the vector that contains the cuts/rows
3) any non efficacious cuts have to be released immediately.

Thanks a lot!

________________________________________
From: Scip <scip-bounces at zib.de> on behalf of Ambros Gleixner <gleixner at zib.de>
Sent: Thursday, August 6, 2020 2:25 AM
To: scip at zib.de
Subject: Re: [SCIP] segmentation fault while using LProw functions

Hi Naga,

You would need to give us more details, e.g., how do you obtain the row
pointer that you are trying to print.

Have you run it through valgrind?

(A random guess: You did not capture the row and somehow SCIP removed
and freed it in between because it did not need it anymore and the row's
use counter dropped to zero.  But it's hard to tell without further
details.)

Best,
Ambros


Am 28.07.20 um 12:26 schrieb Naga Venkata Chaitanya Gudapati -
nagavenkata.gudapati at studio.unibo.it:
> Hello SCIP community,
>
> I am getting a  segmentation fault and it only happens when I am running a particular instance.  This is happening when I try to access rows added by a constraint handler in a function of pricer (adding a new variable).
>
> I had used SCIP compiled for debugging to identify the issue and have the following output:
>
>       Thread 2 received signal SIGSEGV, Segmentation fault.
>       0x000000010093b36d in SCIProwPrint (row=0x106c4fd30, messagehdlr=0x102926cb0, file=0x0) at src/scip/lp.c:5311
>       5311          assert(row->cols[i] != NULL);
>       (gdb) strace
>       warning: Couldn't determine the static tracepoint marker to probe
>       Static tracepoint 1 at 0x10093b36d: file src/scip/lp.c, line 5311.
>       (gdb) bt
>       #0  0x000000010093b36d in SCIProwPrint (row=0x106c4fd30, messagehdlr=0x102926cb0, file=0x0) at src/scip/lp.c:5311
>       #1  0x0000000100b775bd in SCIPprintRow (scip=0x1029364c0, row=0x106c4fd30, file=0x0) at src/scip/scip_lp.c:2162
>       #2  0x000000010004379d in ObjPricerNDSR::add_path_variable (this=0x1056e7ef0, scip=0x1029364c0, path=..., commodity_index=6, p_cost=21)
>           at src/pricer_NDSR.cpp:434
>       #3  0x0000000000000000 in ?? ()
>
>
> I am using scip7.0.1 . Can someone kindly let me know what's the issue here?
>
> Thanks a bunch,
> Nag
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>

--
Ambros Gleixner, Research Group Mathematical Optimization Methods at
Zuse Institute Berlin, http://www.zib.de/gleixner
_______________________________________________
Scip mailing list
Scip at zib.de
https://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list