Actions
Bug #58005
closedrelease-built osd failed to mkfs
Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:
0%
Source:
Community (dev)
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Description
It seems that when "seastar::need_preempt" is true, "crimson::do_for_each" will turn into a long recursive function. And since we are letting crimson-osd use full disk space, the number of segments can be very large, which can make the program stack overflow by the recursive "crimson::do_for_each". May need to re-implement "crimson::do_for_each/repeat"
#4 0x0000000001820560 in FatalSignal::signaled(int, siginfo_t const&) () #5 0x00000000018212db in FatalSignal::signal_entry(int, siginfo_t*, void*) () #6 <signal handler called> #7 0x00000000020cfe3b in crimson::os::seastore::segment_manager::block::BlockSegmentManager::read(crimson::os::seastore::paddr_t, unsigned long, ceph::buffer::v15_2_0::ptr&) () #8 0x000000000254d533 in crimson::os::seastore::Device::read(crimson::os::seastore::paddr_t, unsigned long) () #9 0x00000000025415ae in crimson::os::seastore::SegmentManagerGroup::read_segment_header(crimson::os::seastore::segment_id_t) () #10 0x000000000219cbba in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #11 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #12 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #13 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #14 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #15 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #16 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #17 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #18 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #19 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #20 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #21 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #22 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #23 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #24 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #25 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #26 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #27 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #28 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #29 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #30 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #31 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #32 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #33 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #34 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #35 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #36 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #37 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #38 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) () #39 0x000000000219d3df in auto crimson::do_for_each<crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}>(crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::segment_map_t<crimson::os::seastore::segment_info_t>::iterator<true>, crimson::os::seastore::SegmentCleaner::mount()::{lambda(auto:1&)#1}) ()
Updated by Yingxin Cheng over 1 year ago
- Status changed from New to Resolved
Should be fixed by https://github.com/ceph/ceph/pull/48932
Actions