-
Notifications
You must be signed in to change notification settings - Fork 642
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
Branch page items link to already released pages #402
Comments
@benbjohnson Can you give me some advices? |
The page 23 is freed, but it's still somehow referenced by page 29.
There must be something wrong when releasing a page (page 23 in this case). Will take a look later when I get free cycle. |
@shippomx do you have detailed steps or a program to reproduce this issue, and what's the bbolt version on which you reproduced this issue? |
Usually the difference between the two
|
I just use moby (docker). Some unpredictable complex situation may cause the db file broken. |
Can you answer my previous question? #402 (comment)
|
But i have no idea with how this local-kv.db file broken. |
Moby seems to use raw bbolt: It's interesting how this happened. I have no other idea than 7 rolled back transactions and 8th successful in scope of the same binary running. That might suggests rollback are not that safe... and maybe it's how the race on meta-page fixed recently (in 1.3.7) manifests. |
meta page will not be updated at all (accordingly txid will not increase) if the transaction fails. So it doesn't make sense. It can't explain #402 (comment) . |
@shippomx just to double confirm, till the point you ran into this issue, you did not modify the bolt's source code. Instead, you just added some debug info after seeing this issue. Could you confirm this? I also assume that you did not modify the db file manually or programmatically. Please kindly let me know if it isn't the case. |
****> Moby seems to use raw bbolt: https://github.com/moby/moby/blob/e068c38618ff94e3be9e572c568be3bed396c263/vendor.mod#L89
I'm sure it is because of power failure,here is a new broken db bolt version : github.com/boltdb/bolt fff57c1 on docker-ce17.03 |
@ningmingxiao thx for providing the corrupted db file. The bbolt version is too old. How was the broken db generated? Do you have a detailed steps to reproduce? Could you reproduce this issue with 1.3.7 or latest code on master branch? BTW, the steps to fix the corrupted db file are:
|
@ningmingxiao any update? thx I am also happy to jump into a zoom call to discuss this issue with you. |
I will update boltdb to new version.If it appears, I'll let you know
|
Thanks. Could you provide rough steps on how was the previous corrupted db generated, so that I can also try to reproduce it?
The |
@shippomx can you share more details on how was the corrupt db file generated? I couldn't reproduce this issue by intentionally killing the program (#490) or shutting down VM when the concurrent test is running. |
|
I use an old version of docker 17.03, and get this error mesage. And yet I add some logs to record this collapse.
and get this logs:
I have dumped the db file as follows.
local-kv.db.tar.gz
I know something may result the db broken, but is there some methods to avoid this?
The text was updated successfully, but these errors were encountered: