diff options
author | Sage Weil <sage@inktank.com> | 2013-09-24 11:59:17 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-09-24 12:48:09 -0700 |
commit | afa2468ead859d62da1260568769d5ba32d3d21d (patch) | |
tree | ce73a8353806634953472e16082945d8c5750493 /src/test/osd/RadosModel.h | |
parent | 3faf08f5f96ced6eecb3c2bc3a6b7bf4fc5a1b73 (diff) | |
download | ceph-wip-rworder.tar.gz |
ceph_test_rados: order racing read wrt to the COPY_FROMwip-rworder
The prevents:
- send COPY_FROM, blocks on recovering object
- send stat, procedes to return old object version
- COPY_FROM succeeds with new version
-> fail
Signed-off-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'src/test/osd/RadosModel.h')
-rw-r--r-- | src/test/osd/RadosModel.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/test/osd/RadosModel.h b/src/test/osd/RadosModel.h index ab0b13d73e4..7bda0fe9a56 100644 --- a/src/test/osd/RadosModel.h +++ b/src/test/osd/RadosModel.h @@ -1402,6 +1402,7 @@ public: string oid, oid_src; ObjectDesc src_value; librados::ObjectWriteOperation op; + librados::ObjectReadOperation rd_op; librados::AioCompletion *comp; librados::AioCompletion *comp_racing_read; int snap; @@ -1456,7 +1457,11 @@ public: new TestOp::CallbackInfo(1)); comp_racing_read = context->rados.aio_create_completion((void*) read_cb_arg, &write_callback, NULL); - context->io_ctx.aio_stat(context->prefix+oid, comp_racing_read, NULL, NULL); + rd_op.stat(NULL, NULL, NULL); + context->io_ctx.aio_operate(context->prefix+oid, comp_racing_read, &rd_op, + librados::SNAP_HEAD, + librados::OPERATION_ORDER_READS_WRITES, // order wrt previous write/update + NULL); } void _finish(CallbackInfo *info) |