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
os/bluestore: drop unreferenced spanning blobs #11212
Conversation
Otherwise we can "leak" these and keep them around indefinitely. Signed-off-by: Sage Weil <sage@redhat.com>
8f40caf
to
5daca12
Compare
Thanks will try... |
@liewegas it is not fixed. I did some digging and found it is never satisfying the if condition above. |
Hmm, that doesn't make sense to me. FWIW I see this triggering in my
workload (ceph_test_objectstore --gtest_filter=*Synthetic/2).
Do you have a log capture for a case where the ref_map doesn't become
empty?
Also, if b->id == -1 then it's not a spanning blob, so it won't be in that
map at all..
|
Hmm..I can collect logs but before that let me move to latest master to be in sync with you. |
For the non-spanning case, the Extent goes away and drops the BlobRef
and it's deallocated. We only need to handle the spanning case explicitly
because the spanning_blob_map has a ref to the Blob too.
|
Yeah, that's what I thought too , but, I added some log to print b->nref after extent delete in the _wctx_finish loop , it was printing non zero ref. |
Most of the time nref will be > 0.. it's only when the last extent is
dropped that it goes to 0 (or 1, if it's spanning).
What is your workload? Maybe i can reproduce
|
Or can you generate a log?
|
I created 400G image (without exclusive lock etc.) , preconditioned with 1M SW. |
Yeah, 20/20. I'll try to reproduce it too. Thanks!
|
@liewegas debug_bluestore = 20/20 log is in the below location. Log I started capturing only when I started 4K RW IO after preconditioning. Let me know if you are having difficulties on accessing it. https://drive.google.com/file/d/0B7W-S0z_ymMJR08yOUxiNkh5LW8/view?usp=sharing |
Otherwise we can "leak" these and keep them around indefinitely.
Signed-off-by: Sage Weil sage@redhat.com