]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/seastore: fix assert in read_extent 41606/head
authorchunmei-liu <chunmei.liu@intel.com>
Tue, 1 Jun 2021 05:54:55 +0000 (22:54 -0700)
committerchunmei-liu <chunmei.liu@intel.com>
Tue, 1 Jun 2021 05:59:31 +0000 (22:59 -0700)
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 <chunmei.liu@intel.com>
src/crimson/os/seastore/segment_manager/block.cc

index 68af27e06f03d4d6097db099678c0c0f4225a5f2..7cf71a4e4c9e21a419105b8a7a0cf3c52050dd52 100644 (file)
@@ -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(