From de747b0dc1ec63e134e4839e420a66c2ec6b845b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 14 Aug 2018 08:58:31 -0500 Subject: [PATCH] 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 --- src/test/objectstore/store_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 2.39.5