-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Abnormal termination exit code -8 during IVC reduction #76
Comments
Here's a simple, sanitized example:
Command line used:
Output when error occurs:
Output when error does not occur:
PDR may be involved. Setting pdr_max to zero makes occurrence much more rare. |
I originally thought this might be due to interactions to the solver in the parent class SolverBasedEngine not being synchronized. The theory was that thread A started an IVC reduction but was interrupted by thread B while adding assertions to the context. Then thread B pushes another assertion set into the solver which also does IVC reduction. But its interrupted by thread A again which adds the remainder of assertions, B resumes and makes the unsatQuery, pops an assertion set from the solver. But some of A's assertions were added after B pushing another assertion set and are thus missing from the query. However, adding synchronization to the methods in IvcReductionEngine that push or pop the solver stack don't seem to help. Investigation is ongoing. |
This is pretty likely a race. Outputting scratch makes it much less likely to occur. It was difficult to capture a run where the error occurred. Attached are zipped collections of the scratch files. |
The problem occurs where IVC reduction appears to be attempted on a property that has (possibly) been falsified.
These errors occur intermittently but on some models more consistently than on others. Running the same model multiple times the error might or might not occur. When the error does not occur, the property(ies) in question is(are) valid. When it does occur, the property(ies) is(are) unknown. It appears to be some sort of race condition.
Initial analysis indicates that the errors do rarely occur in Java VM version 1.8 but occur much more frequently in later JVM versions.
Application of the same Lustre file to multiple versions indicates the errors may occur in (at least) JKind versions 4.4.4, 4.5.0, and 4.5.2.
The it seems that setting pdr_max to zero either eliminates the bug or makes it so much less probably that it was not detected in a few dozen runs.
I am struggling to put together a simple model that illustrates the problem; changing anything appears to affect the likelihood of occurrence.
The text was updated successfully, but these errors were encountered: