-
Notifications
You must be signed in to change notification settings - Fork 21
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
Crashes during multithreaded workload #35
Comments
Hey @marvin-j97 do you have a copy of the database file that is giving you this error? That would help a lot in figuring out what went wrong. |
I ran again to get the error again, the file ended up being a bit too large for GH, so I uploaded it to my S3: |
I'm seeing this as well. The issue for me seems to be in a file that is loaded, as I can trigger this with 0 writes -- I'll run one session that works fine for reads + writes (essentially, only misses and fills the DB). If I then comment out any write code, the application still crashes. |
@tgolsson thats super interesting... what's happening is the database file is being written incorrectly, but it's difficult to tell where it's going wrong. Any chance you have a simple but reproducible test case? |
On a multithreaded workload I regularly get a panic when retrieving an item, while writes may be happening (95% read, 5% insert). From what I can tell, it does not occur on single-threaded workloads, and happens more often when using many threads.
There are two kinds of errors I'm getting:
page_node::PageNode::index
get_bucket
returns Error valueBucketMissing
out of the blueSystem
Reproduction?
Using https://github.com/marvin-j97/rust-storage-bench, run with:
May need to run multiple times, it's very non-deterministic.
Stack trace
Panic
Not a panic, but a non-deterministic Err value (Bucket is definitely not missing, considering millions of reads before it did not fail):
The text was updated successfully, but these errors were encountered: