-
Notifications
You must be signed in to change notification settings - Fork 95
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
Invalid state in GC manifest seen #827
Comments
Customer ticket zd://7336 |
complementary to #827, this commit prevents Manifest's delete_block_remaining being undefined, after init/1 returns. Before prepare/2 very rarely but there could be a message that interrupts and moves to some invalid state. This also reduces number of states about delete_block_remaining being undefined or not.
complementary to #827, this commit prevents Manifest's delete_block_remaining being undefined, after init/1 returns. Before prepare/2 very rarely but there could be a message that interrupts and moves to some invalid state. This also reduces number of states about delete_block_remaining being undefined or not. Conflicts: src/riak_cs_delete_fsm.erl
This also happened for 1.5.0, upgraded from 1.4. See zd://8612 |
memo:
|
See #827 Logged information includes: - Key in GC bucket - UUID (in manifest) - CS bucket and key (also in manifest) It's noteworthy that if riak_cs_delete_fsm replies ok with the same total blocks and deleted blocks to riak_cs_gc_worker, then the worker attempt to delete manifest entry in twop_set. Doing it before deleting manfiests and blocks completely poses orphan manifests/blocks. In this PR, riak_cs_delete_fsm replies with total blocks = 1 and deleted_blocks = 0.
See #827 Logged information includes: - Key in GC bucket - UUID (in manifest) - CS bucket and key (also in manifest) It's noteworthy that if riak_cs_delete_fsm replies ok with the same total blocks and deleted blocks to riak_cs_gc_worker, then the worker attempt to delete manifest entry in twop_set. Doing it before deleting manfiests and blocks completely poses orphan manifests/blocks. In this PR, riak_cs_delete_fsm replies with total blocks = 1 and deleted_blocks = 0. Conflicts: src/riak_cs_delete_fsm.erl Add GC riak_test for invalid state manifet in GC bucket
The code to skip invalid state manifests and output warning logs was merged at #964 . |
This was observed twice at customer sites. I'm not sure how it got there, but a manifest in the GC bucket did not have the state expected. The following patch was applied to avoid the daemon crashing so that GC could continue:
1c1c6f4
The text was updated successfully, but these errors were encountered: