-
Notifications
You must be signed in to change notification settings - Fork 214
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
storage: fix io error may let the chunk map bit always pending #601
Conversation
@kevinXYin , a new test job has been submitted. Please wait in patience. The test job url: https://tone.openanolis.cn/ws/nrh4nnio/test_result/13334 |
@kevinXYin , The CI test is completed, please check result:
Congratulations, your test job passed! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, it'd better for others to take another look.
storage/src/cache/cachedfile.rs
Outdated
.set_ready_and_clear_pending(chunk.as_base()) | ||
.unwrap_or_else(|e| error!("set stargz chunk ready failed, {}", e)); | ||
match Self::persist_chunk(&self.file, chunk.uncompress_offset(), &buf) { | ||
Ok(_) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems there's more fundamental issue here:
the chunkmap bits have not been marked as pending for stargz case:(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
emm, yeah , I think we need further check and test for the stargz case. But I do not have environment to test it. How about reverting the change for the stargz part, and maybe others can help for this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please help to open an issue for stargz and revert related change? So we could move on with non-stargz part.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes , this should be better
For now , when we get an io error in do_fetch_chunks, we just return without clearing the chunk map pending bit. This may cause the following io always wait for the pending bits. Signed-off-by: Xin Yin <[email protected]>
779cadb
to
d721c1e
Compare
@kevinXYin , the code has been updated, so a new test job has been submitted. Please wait in patience. The test job url: https://tone.openanolis.cn/ws/nrh4nnio/test_result/14180 |
/retest |
@hsiangkao , the test job has been submitted. Please wait in patience. The test job url: https://tone.openanolis.cn/ws/nrh4nnio/test_result/14199 |
@hsiangkao , The CI test is completed, please check result:
Congratulations, your test job passed! |
For now , when we get an io error in do_fetch_chunks, we just return
without clearing the chunk map pending bit. This may cause the following
io always wait for the pending bits.
Signed-off-by: Xin Yin [email protected]