From: Sage Weil Date: Tue, 14 Aug 2018 13:58:31 +0000 (-0500) Subject: ceph_test_objectstore: queue split on parent pg sequencer X-Git-Tag: v14.0.1~520^2~8^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=de747b0dc1ec63e134e4839e420a66c2ec6b845b;p=ceph.git ceph_test_objectstore: queue split on parent pg sequencer This matches the OSD. It also ensure that we drain transactions that precede the split, which will include any finish_write calls that might otherwise attach the Buffer to the wrong cache shard: _txc_finish() calls finish_write and passes the cache shard without the cache shard lock held, but may block waiting for split_cache() which then changes the destination collection's shard. Once it gets the lock and proceeds it would operate on the wrong cache shard, leading to a failed assert later when the sharedblob is trimmed. Fixes: http://tracker.ceph.com/issues/24439 Signed-off-by: Sage Weil --- diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 50595a01147ef..c5456b3bc6b0b 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -5129,10 +5129,10 @@ void colsplittest( ObjectStore::Transaction t; t.create_collection(tid, common_suffix_size + 1); t.split_collection(cid, common_suffix_size+1, 1<flush(); + ch->flush(); ObjectStore::Transaction t; vector objects;