Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
test/librados: fix unordered manifest-unset op #24687
Current unit test(ManifestUnset) send "chunk_read" command (to bar-chunk)
Reference count model of dedup/tiering is based on false-positive (#24230).
So, the solution of this commit is just re-send unset op, and then
- manifest unset op to foo-chunk object - remove manifest flag - commit - send an ack to a client - send decrement mesages ("chunk_put") to old chunks (bar-chunk) Current unit test(ManifestUnset) send "chunk_read" command (to bar-chunk) in order to see whether chunk's reference count is decreased. But, as described above, "chunk_read" event can be triggered after a client (test application) receives an ack. Therefore, there is a corner case such as bar-chunk (in chunk pool) receives "chunk_read" first instead of "chunk_put" Reference count model of dedup/tiering is based on false-positive (#24230). So decreasing reference count is not guaranteed. If reference mismatch occur, chunk-scrub (this is WIP) will fix it. One guaranteed thing is that existing manifest flag is removed. So, the solution of this commit is just re-send unset op, and then chenk that return value is -EOPNOTSUPP (this means manifest flags is removed). Fixes: http://tracker.ceph.com/issues/24485 Signed-off-by: Myoungwon Oh <email@example.com>