-
Notifications
You must be signed in to change notification settings - Fork 472
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
github.com/cockroachdb/pebble/internal/metamorphic: TestMeta failed #3556
Comments
Weird. In addition to the actual cause of the failure, it looks like there's an issue with the metamorphic test where the |
Thanks, this will be interesting. I remember noticing that the meta logger only logs on |
Could not repro locally after ~3hrs. |
#3559 fixed the test to error during execution. |
github.com/cockroachdb/pebble/internal/metamorphic.TestMeta failed with artifacts on refs/heads/master @ ef5c43072862:
HelpTo reproduce, try: go test -tags 'invariants' -exec 'stress -p 1' -timeout 0 -test.v -run 'TestMeta$' ./internal/metamorphic -seed 1714205731804912259 -ops "uniform:5000-10000" |
I suspect this is somehow related to the refactor of the level checker and levelIter. The offset is 17179869180 again, trying to read from another small block—maybe a range deletion block? |
We now panic in invariants mode. This might help debug cockroachdb#3556.
A stack trace might help: #3562 |
The error is generated in It's possible we may be using a value after we are supposed to (after the iterator that produced it moved along). |
Trying to reproduce the run above: |
17179869180 is 2^34 - 4, and 4 is the indexEntryLen. So blockNum must be 2^32-1, which is probably an |
github.com/cockroachdb/pebble/internal/metamorphic.TestMeta failed with artifacts on refs/heads/master @ ef5c43072862:
HelpTo reproduce, try: go test -tags 'invariants' -exec 'stress -p 1' -timeout 0 -test.v -run 'TestMeta$' ./internal/metamorphic -seed 1714280491385529514 -ops "uniform:5000-10000" |
We now panic in invariants mode. This might help debug #3556.
github.com/cockroachdb/pebble/internal/metamorphic.TestMeta failed with artifacts on refs/heads/master @ 5d4c28502e75:
HelpTo reproduce, try: go test -tags 'invariants' -exec 'stress -p 1' -timeout 0 -test.v -run 'TestMeta$' ./internal/metamorphic -seed 1714363917024013813 -ops "uniform:5000-10000" |
Got a stack trace:
|
|
A bunch of |
github.com/cockroachdb/pebble/internal/metamorphic.TestMeta failed with artifacts on refs/heads/master @ 3a03bff01359:
HelpTo reproduce, try: go test -tags 'invariants' -exec 'stress -p 1' -timeout 0 -test.v -run 'TestMeta$' ./internal/metamorphic -seed 1714461342677962892 -ops "uniform:5000-10000" |
It seems suspicious that the level checker clones the key but not the value:
but I'm not actually seeing the sequence where |
I can't find a sequence either.. we never Next a levelIter without updating the heap.. I'm trying to repro with |
github.com/cockroachdb/pebble/internal/metamorphic.TestMeta failed with artifacts on refs/heads/master @ 8225791375fe:
HelpTo reproduce, try: go test -tags 'invariants' -exec 'stress -p 1' -timeout 0 -test.v -run 'TestMeta$' ./internal/metamorphic -seed 1714721010699391338 -ops "uniform:5000-10000" |
Recent refactors made it possible for the level checker to visit a point key twice if the point key's levelIter interleaved a boundary sentinel key. The corresponding level's simpleMergingIterItem's key and value were not updated, leaving the old point key on the heap. When the point key remained at the top of the heap, but the underlying levelIter had moved on, it was possible to access freed memory associated with the old point key's value. Fix cockroachdb#3556.
Recent refactors made it possible for the level checker to visit a point key twice if the point key's levelIter interleaved a boundary sentinel key. The corresponding level's simpleMergingIterItem's key and value were not updated, leaving the old point key on the heap. When the point key remained at the top of the heap, but the underlying levelIter had moved on, it was possible to access freed memory associated with the old point key's value. Fix cockroachdb#3556.
Recent refactors made it possible for the level checker to visit a point key twice if the point key's levelIter interleaved a boundary sentinel key. The corresponding level's simpleMergingIterItem's key and value were not updated, leaving the old point key on the heap. When the point key remained at the top of the heap, but the underlying levelIter had moved on, it was possible to access freed memory associated with the old point key's value. Fix cockroachdb#3556.
Recent refactors made it possible for the level checker to visit a point key twice if the point key's levelIter interleaved a boundary sentinel key. The corresponding level's simpleMergingIterItem's key and value were not updated, leaving the old point key on the heap. When the point key remained at the top of the heap, but the underlying levelIter had moved on, it was possible to access freed memory associated with the old point key's value. Fix #3556.
github.com/cockroachdb/pebble/internal/metamorphic.TestMeta failed with artifacts on refs/heads/master @ 282f0c3b0396:
Help
This test on roachdash | Improve this report!
The text was updated successfully, but these errors were encountered: