-
Notifications
You must be signed in to change notification settings - Fork 287
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
Simulator CPU utilization at 100% but nothing happens #548
Comments
The
|
|
Something funny going on: This passes:
This panics:
This hits the infinite loop:
|
Do you think the behavior is a bug in the simulator, or if the simulator discovered a bug in Limbo? |
@alpaylan I am not sure. @jussisaurio commented that #533 fixes some issues that sound similar to what we're seeing here |
As I describe in #533 inserting more values than a table has results in an infinite loop. Initially I didn't check why, but now I did -- see addr 3:
this might still be an entirely separate issue (this one oscillates between two instructions forever) |
Once I'm done with #554, I can implement;
so we can timeout at certain points, debug the output and understand the reason for the infinite loop bugs. The next big thing would be adding minimizing counterexamples, which requires a bit of thinking and architectural changes, but shouldn't be hard to add. That would give us the minimal sequence of interactions that cause a given bug. |
since this is a linux specific issue, it must be something related to flushing to disk on linux, right?
this essentially fsyncs the wal, then checkpoints and fsyncs the db file. probably adding some logs in relevant places and running the simulation on linux would reveal what stage of |
Can we make something that will produce log differentials for such cases? Basically something that runs the code in both environments, collects logs, points out where and how they differ, so that we pinpoint the root causes. |
@penberg I added the timeout for the whole simulator by aggregating time between interactions, but it would still fall into an infinite loop if a specific query runs forever. I'm not sure if it's possible to timeout sync code, any ideas? |
This no longer reproduces so closing. |
I am seeing the simulator hit 100% CPU utilization but with nothing happening at all:
I don't see this behavior on macOS.
The text was updated successfully, but these errors were encountered: