]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
src/test: fix unordered manifest-unset op
authormyoungwon oh <omwmw@sk.com>
Sun, 21 Oct 2018 06:29:09 +0000 (15:29 +0900)
committermyoungwon oh <omwmw@sk.com>
Sun, 21 Oct 2018 09:05:40 +0000 (18:05 +0900)
commit10993596d91877f56ff5c7c5d2fa097ea6ff65e1
tree5d0c4142f0207ae2332b0568118f2a806303317b
parentd4766462fee0f42bdc4c891fc474c295f81e4605
src/test: fix unordered manifest-unset op

- 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 <omwmw@sk.com>
src/test/librados/tier.cc