Closed matthiaskoenig closed 2 months ago
Here the output.
First run
roadrunner version: 2.6.0
Load model from SBML: 'omeprazole_body_flat.xml'
Load from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state'
Model loaded from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state'
Process finished with exit code 0
Second run
roadrunner version: 2.6.0
Model loaded from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state'
Load from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state'
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
As a side note: also pretty difficult to test because it requires two independent python interpreters in CI, one creating the state the other loading it.
That's not good. I think Lucian is away at the moment but he'll be at Harmony, if you are there maybe it can be fixed then.
On Tue, Apr 2, 2024 at 1:18 PM Matthias König @.***> wrote:
Here the output.
First run
roadrunner version: 2.6.0 Load model from SBML: 'omeprazole_body_flat.xml' Load from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state' Model loaded from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state'
Process finished with exit code 0
Second run
roadrunner version: 2.6.0 Model loaded from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state' Load from state: 'omeprazole_body_flat.xml_rr2.6.0_f78e5cb032cd340849990dd3ed972ab8.state'
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
As a side note: also pretty difficult to test because it requires two independent python interpreters in CI, one creating the state the other loading it.
— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/sys-bio/roadrunner/issues/1210*issuecomment-2033019734__;Iw!!K-Hz7m0Vt54!m3Xx9JZqjU816cugyC2t8bR7gXAwejtIAEcQyZBCcXhMcknGIViDdRp7HCTy7dfo_Jkom7Z80kxYXADDdp6cFrsmG-PUdQ$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AAIBSDS72NHMWSOTN4PFRDTY3MG77AVCNFSM6AAAAABFUA5SMCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZTGAYTSNZTGQ__;!!K-Hz7m0Vt54!m3Xx9JZqjU816cugyC2t8bR7gXAwejtIAEcQyZBCcXhMcknGIViDdRp7HCTy7dfo_Jkom7Z80kxYXADDdp6cFrt-rX6RYg$ . You are receiving this because you are subscribed to this thread.Message ID: @.***>
-- Herbert Sauro, Professor Director: NIH Center for model reproducibility University of Washington, Bioengineering 206-685-2119, www.sys-bio.org, http://reproduciblebiomodels.org/ Mobile: 206-880-8093 @.*** Books: http://books.analogmachine.org/
2.7.0 fixes this! Thanks for finding the example; it was critical in our discovering the bug.
Works. Perfect. This helps a lot
Finally I could create an example for the issues with save state starting with
libroadrunner > 2.3.1
. Until version 2.3.1 it was possible to create a state file and load the state file in a later python interpreter run. In later versions this became very buggy (lots of segmentation faults) until impossible. I.e. creating a state file on disk and then using this state file in another python session does not work (most of the time).Attached a minimal example:
*.state
file but results in aProcess finished with exit code 139 (interrupted by signal 11: SIGSEGV)
This is a major bug and does not allow to cache state files for reuse. Also creates a ton of issues for multiprocessing where the state files have to be transferred and reused between different python processes (here I originally noticed that).This is a minimal example for the issue original described in #963. Two times running the script results in the python interpreter dying with segfaults. I think starting with >2.3.1 there was some state introduced which depends on the interpreter session (e.g. some variable memory layout).
Here the example model: omeprazole_body_flat.zip