From afa2468ead859d62da1260568769d5ba32d3d21d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 24 Sep 2013 11:59:17 -0700 Subject: ceph_test_rados: order racing read wrt to the COPY_FROM 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 --- src/test/osd/RadosModel.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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) -- cgit v1.2.1