]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
src/test: fix creating two different objects for testing chunked object 27667/head
authormyoungwon oh <omwmw@sk.com>
Thu, 18 Apr 2019 05:27:23 +0000 (14:27 +0900)
committermyoungwon oh <omwmw@sk.com>
Mon, 27 May 2019 05:49:13 +0000 (14:49 +0900)
commit6239c6736794843193b4639fcf335362d27c7997
treeae073373670c9a976e89231ddc800d4e0d8deb0d
parenta6d45216dd3550f5283bc4faedf152284b328261
src/test: fix creating two different objects for testing chunked object

Below is the test flow of ceph_test_rados (only for chunked object test)

1. WriteOp for create test objects
2. CopyOp (copy the object to the different pool)
3. Set-chunk (make the link between two objects that are created from WriteOp and CopyOp)
4. Run mixed ops

At a corner case, WriteOp could not be finished after CopyOp was started. So, CopyOp makes
incompleted objects, for example oid 1's size is 1MB (WriteOp) but oid 2's size is 500KB (CopyOp).
In this case, even through SetchunkOp set the chunk info (offset, length) based on
object 1's size (1MB), the object (oid 2) that exists on another pool has different contents.
As a result, oid 2 recevices a wrong read request from oid 1. So, EIO wil be returned.

This commit would make ceph_test_rados to wait for the completion of WriteOp before starting CopyOp.

Fixes: http://tracker.ceph.com/issues/39282
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
src/test/osd/TestRados.cc