From b127fa3cdd405c71cf09875f61f107c23af6b8cf Mon Sep 17 00:00:00 2001 From: chunmei-liu Date: Mon, 31 May 2021 22:54:55 -0700 Subject: [PATCH] crimson/seastore: fix assert in read_extent lba btree root leaf is empty after osd reboot, because SegmentStateTracker's states are wrong. and that is caused by tracker->do_write not finished then seastore closed. in transaction manager read_extent, can't read extent. ceph_assert(0 == "Should be impossible"); Signed-off-by: chunmei-liu --- src/crimson/os/seastore/segment_manager/block.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/crimson/os/seastore/segment_manager/block.cc b/src/crimson/os/seastore/segment_manager/block.cc index 68af27e06f0..7cf71a4e4c9 100644 --- a/src/crimson/os/seastore/segment_manager/block.cc +++ b/src/crimson/os/seastore/segment_manager/block.cc @@ -275,8 +275,7 @@ segment_off_t BlockSegment::get_write_capacity() const Segment::close_ertr::future<> BlockSegment::close() { - manager.segment_close(id); - return close_ertr::now(); + return manager.segment_close(id); } Segment::write_ertr::future<> BlockSegment::write( -- 2.39.5