From: chunmei-liu Date: Tue, 1 Jun 2021 05:54:55 +0000 (-0700) Subject: crimson/seastore: fix assert in read_extent X-Git-Tag: v17.1.0~1786^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b127fa3cdd405c71cf09875f61f107c23af6b8cf;p=ceph.git 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 --- diff --git a/src/crimson/os/seastore/segment_manager/block.cc b/src/crimson/os/seastore/segment_manager/block.cc index 68af27e06f03d..7cf71a4e4c9e2 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(