If batcher crashes in the middle of processing blobs, it could leave blob state stale, i.e. blobs in DISPERSING state may never get processed.
This PR adds a RecoverState method that triggers at batcher initialization and updates all blobs in DISPERSING state into PROCESSING, so that they can be retried.
Checks
[ ] I've made sure the lint is passing in this PR.
[ ] I've made sure the tests are passing. Note that there might be a few flaky tests, in that case, please comment that they are not relevant.
Why are these changes needed?
If batcher crashes in the middle of processing blobs, it could leave blob state stale, i.e. blobs in
DISPERSING
state may never get processed. This PR adds aRecoverState
method that triggers at batcher initialization and updates all blobs inDISPERSING
state intoPROCESSING
, so that they can be retried.Checks