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: v13.2.2~51^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=67aba92ddea06f6a63df05336186f1dbb220d7cb;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 (cherry picked from commit de747b0dc1ec63e134e4839e420a66c2ec6b845b) --- diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 031214a87264..49221af10f57 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -5128,10 +5128,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;