Open ncopa opened 2 years ago
I get a segfault when running kyua test on alpine linux' abuild while building kernel at the same time. It only seems to happen when CPU is busy.
kyua test
I was able to generate a core dump with debugging symbols:
Reading symbols from /usr/bin/kyua... Reading symbols from /usr/lib/debug//usr/bin/kyua.debug... [New LWP 27290] Core was generated by `kyua test'. Program terminated with signal SIGSEGV, Segmentation fault. #0 std::_Rb_tree<utils::datetime::timestamp, std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > >, std::_Select1st<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > >, std::less<utils::datetime::timestamp>, std::allocator<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > > >::_M_mbegin (this=0x40) at /usr/include/c++/11.2.1/bits/stl_tree.h:734 734 _M_mbegin() const _GLIBCXX_NOEXCEPT (gdb) bt #0 std::_Rb_tree<utils::datetime::timestamp, std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > >, std::_Select1st<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > >, std::less<utils::datetime::timestamp>, std::allocator<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > > >::_M_mbegin (this=0x40) at /usr/include/c++/11.2.1/bits/stl_tree.h:734 #1 std::_Rb_tree<utils::datetime::timestamp, std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > >, std::_Select1st<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > >, std::less<utils::datetime::timestamp>, std::allocator<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > > >::_M_begin (this=0x40) at /usr/include/c++/11.2.1/bits/stl_tree.h:739 #2 std::_Rb_tree<utils::datetime::timestamp, std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > >, std::_Select1st<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > >, std::less<utils::datetime::timestamp>, std::allocator<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > > >::find (__k=..., this=0x40) at /usr/include/c++/11.2.1/bits/stl_tree.h:2523 #3 std::map<utils::datetime::timestamp, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> >, std::less<utils::datetime::timestamp>, std::allocator<std::pair<utils::datetime::timestamp const, std::set<utils::signals::timer*, std::less<utils::signals::timer*>, std::allocator<utils::signals::timer*> > > > >::find (__x=..., this=0x40) at /usr/include/c++/11.2.1/bits/stl_map.h:1170 #4 (anonymous namespace)::global_state::remove_from_all_timers (timer=0x7f5152f573a0, this=0x0) at utils/signals/timer.cpp:140 #5 (anonymous namespace)::global_state::unprogram (timer=0x7f5152f573a0, this=0x0) at utils/signals/timer.cpp:321 #6 utils::signals::timer::unprogram (this=0x7f5152f573a0) at utils/signals/timer.cpp:536 #7 0x000055c4d5646948 in utils::process::executor::executor_handle::impl::post_wait (this=this@entry=0x7f5152f793a0, original_pid=28725, status=...) at /usr/include/c++/11.2.1/bits/shared_ptr_base.h:1295 #8 0x000055c4d564542d in utils::process::executor::executor_handle::wait_any (this=this@entry=0x7f5152f63b68) at utils/process/executor.cpp:852 #9 0x000055c4d5616c43 in engine::scheduler::scheduler_handle::wait_any (this=this@entry=0x7ffc0160f6f8) at /usr/include/c++/11.2.1/bits/shared_ptr_base.h:1295 #10 0x000055c4d56077b3 in drivers::run_tests::drive (kyuafile_path=..., build_root=..., store_path=..., filters=..., user_config=..., hooks=...) at drivers/run_tests.cpp:315 #11 0x000055c4d5602065 in cli::cmd_test::run (this=<optimized out>, ui=0x7ffc01610090, cmdline=..., user_config=...) at cli/cmd_test.cpp:160 #12 0x000055c4d55f5c77 in utils::cmdline::base_command<utils::config::tree>::main (data=..., args=..., ui=0x7ffc01610090, this=0x7f515334a170) at ./utils/cmdline/base_command.ipp:96 #13 (anonymous namespace)::run_subcommand (user_config=..., args=..., command=0x7f515334a170, ui=0x7ffc01610090) at cli/main.cpp:139 #14 (anonymous namespace)::safe_main (mock_command=..., argv=0x55c4d5601eb0 <cli::cmd_test::run(utils::cmdline::ui*, utils::cmdline::parsed_cmdline const&, utils::config::tree const&)>, argc=0, ui=0x7ffc01610090) at cli/main.cpp:228 #15 cli::main (ui=ui@entry=0x7ffc01610090, argc=argc@entry=2, argv=argv@entry=0x7ffc016102a8, mock_command=...) at cli/main.cpp:280 #16 0x000055c4d55f5fbc in cli::main (argc=2, argv=0x7ffc016102a8) at cli/main.cpp:353 #17 0x00007f51532cfa22 in libc_start_main_stage2 (main=0x55c4d55f48e8 <main(int, char const* const*)>, argc=2, argv=0x7ffc016102a8) at src/env/__libc_start_main.c:95 #18 0x000055c4d55f6b83 in _start ()
I get a segfault when running
kyua test
on alpine linux' abuild while building kernel at the same time. It only seems to happen when CPU is busy.I was able to generate a core dump with debugging symbols: