Skip to content
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

Sylvan : Crash in Lib-BDD reconstruction #138

Open
SSoelvsten opened this issue Sep 27, 2024 · 4 comments · Fixed by #146
Open

Sylvan : Crash in Lib-BDD reconstruction #138

SSoelvsten opened this issue Sep 27, 2024 · 4 comments · Fixed by #146
Labels
🔌 adapter New or changes to existing BDD package 🔥 bug Something isn't working

Comments

@SSoelvsten
Copy link
Owner

Sylvan seems to crash due to a LACE Stack overflow during the reconstruction of the input for the RelProd benchmark. This would presumably also happen in the Apply benchmark.

@SSoelvsten SSoelvsten added 🔥 bug Something isn't working 🔌 adapter New or changes to existing BDD package labels Sep 27, 2024
@jacopol
Copy link
Collaborator

jacopol commented Sep 27, 2024

Could increase the stacksize through ulimit -s <size> (in KiB?)

@SSoelvsten
Copy link
Owner Author

The only operation that is used during reconstruction of the input (serialized BDDs) is the ITE . Simultaneously, the BDD is built bottom-up, meaning the ITE should take O(1) . Hence, the issue is something much more subtle and weird.

@SSoelvsten
Copy link
Owner Author

The issue lies in the fact, that Sylvan's garbage collection has the following undocumented assumption:

The number of BDD roots (i.e. references from the user's program) is smaller than the size of the Lace queue.

Hence, Sylvan breaks when the vector<sylvan:Bdd> out in common/libbdd_parser.h::reconstruct<Adapter>(...), which contains all BDD nodes for reconstruction, is larger than the Lace stack.

SSoelvsten added a commit that referenced this issue Nov 1, 2024
Partially resolves #138 by decreasing the number of concurrent BDD roots. Yet,
this does not as such solve the problem but only push it to further. Sylvan
will still crash, if a single level is wider than the Lace stack (or prior,
if BDD nodes from multiple levels are still alive).
SSoelvsten added a commit that referenced this issue Nov 1, 2024
Partially resolves #138 by decreasing the number of concurrent BDD roots. Yet,
this does not as such solve the problem but only push it to further. Sylvan
will still crash, if a single level is wider than the Lace stack (or prior,
if BDD nodes from multiple levels are still alive).
@SSoelvsten
Copy link
Owner Author

SSoelvsten commented Nov 1, 2024

Merging that PR does not fully resolve the issue - just push the boundary of what Sylvan can deserialize. Closing this was not the intention.

@SSoelvsten SSoelvsten reopened this Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔌 adapter New or changes to existing BDD package 🔥 bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants