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

ethdb/pebble: prevent shutdown-panic #27238

Merged
merged 4 commits into from
May 19, 2023

Conversation

holiman
Copy link
Contributor

@holiman holiman commented May 10, 2023

One difference between pebble and leveldb is that the latter returns error when performing Get on a closed database, the former does a panic. This may be triggered during shutdown:

#27237

This PR changes the pebble driver so we check that the db is not closed already.

Fixes #27237

@holiman holiman mentioned this pull request May 10, 2023
Copy link
Member

@MariusVanDerWijden MariusVanDerWijden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

holiman and others added 2 commits May 10, 2023 15:42
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
@holiman
Copy link
Contributor Author

holiman commented May 10, 2023

LGTM

I pushed a lot of changes right after you pushed that button tho ....

@holiman holiman added this to the 1.11.7 milestone May 12, 2023
@holiman holiman merged commit 99394ad into ethereum:master May 19, 2023
@holiman holiman deleted the fix_panic_shutdown branch October 11, 2023 07:27
devopsbo3 pushed a commit to HorizenOfficial/go-ethereum that referenced this pull request Nov 10, 2023
One difference between pebble and leveldb is that the latter returns error when performing Get on a closed database, the former does a panic. This may be triggered during shutdown (see ethereum#27237)

This PR changes the pebble driver so we check that the db is not closed already, for several operations. It also adds tests to the db test-suite, so the previously implicit assumption of "not panic:ing at ops on closed database" is covered by tests.
devopsbo3 added a commit to HorizenOfficial/go-ethereum that referenced this pull request Nov 10, 2023
devopsbo3 added a commit to HorizenOfficial/go-ethereum that referenced this pull request Nov 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash on shutdown
2 participants