You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Calling solveConcurrent() segfaults when using SCIP with the tinycthread task implementation.
To Reproduce
Run a model with solveConcurrent() with SCIP compiled with this option.
Expected behavior
The solver should run without error.
System
Fedora Linux 40, SCIP 9.1.0, compiled from source
Additional context
solveConcurrent() calls SCIPtpiGetNumThreads(), but SCIPtpiGetNumThreads() for tinycthread requires SCIPsyncstoreInit to be called first, otherwise a null pointer dereference occurs. SCIPsyncstoreInit is normally called by SCIPsolveConcurrent().
Removing the check in solveConcurrent() results in the correct behavior.
I also tried with OpenMP as the task implementation, but PySCIPOpt reported that no task processing implementation was compiled. I suspect this is also due to SCIPtpiGetNumThreads() being called before the required initialization happens.
The text was updated successfully, but these errors were encountered:
Thanks for pointing this out! We're aware of the issue, and have been working on it.
If you compile the current master branch of SCIP then this should hopefully be resolved. If not then we will look into it more.
We are waiting for the next release of SCIP and then we will be releasing PySCIPOpt by default with tny via PyPI.
Describe the bug
Calling
solveConcurrent()
segfaults when using SCIP with the tinycthread task implementation.To Reproduce
Run a model with
solveConcurrent()
with SCIP compiled with this option.Expected behavior
The solver should run without error.
System
Fedora Linux 40, SCIP 9.1.0, compiled from source
Additional context
solveConcurrent()
callsSCIPtpiGetNumThreads()
, butSCIPtpiGetNumThreads()
for tinycthread requiresSCIPsyncstoreInit
to be called first, otherwise a null pointer dereference occurs.SCIPsyncstoreInit
is normally called bySCIPsolveConcurrent()
.Removing the check in
solveConcurrent()
results in the correct behavior.I also tried with OpenMP as the task implementation, but PySCIPOpt reported that no task processing implementation was compiled. I suspect this is also due to
SCIPtpiGetNumThreads()
being called before the required initialization happens.The text was updated successfully, but these errors were encountered: