Open jeking3 opened 6 years ago
Here's a more detailed stack trace using commit 601ca9d0f61c2b45498a127368e4c4d471105d70, Boost Docker Development Environment, libubsan1-dbg, rbreak ^__ubsan_handle_
, dis 2, run:
Breakpoint 1, 0x0000555555784800 in __ubsan_handle_type_mismatch_v1_abort@plt ()
(gdb) bt
#0 0x0000555555784800 in __ubsan_handle_type_mismatch_v1_abort@plt ()
#1 0x0000555555791815 in boost::void_ptr_iterator<std::_List_iterator<void*>, int>::operator* (this=0x7fffffffc9a8)
at ../../boost/ptr_container/detail/void_ptr_iterator.hpp:68
#2 0x0000555555790e4c in boost::ptr_container_detail::sequence_config<boost::nullable<int>, std::__cxx11::list<void*, std::allocator<void*> > >::get_const_pointer<boost::void_ptr_iterator<std::_List_iterator<void*>, int> > (i=...) at ../../boost/ptr_container/ptr_sequence_adapter.hpp:111
#3 0x000055555578fa00 in boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<boost::nullable<int>, std::__cxx11::list<void*, std::allocator<void*> > >, boost::heap_clone_allocator>::remove<boost::void_ptr_iterator<std::_List_iterator<void*>, int> > (
this=0x7fffffffcaf0, i=...) at ../../boost/ptr_container/detail/reversible_ptr_container.hpp:237
#4 0x000055555578dd41 in boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<boost::nullable<int>, std::__cxx11::list<void*, std::allocator<void*> > >, boost::heap_clone_allocator>::remove<boost::void_ptr_iterator<std::_List_iterator<void*>, int> > (
this=0x7fffffffcaf0, first=..., last=...) at ../../boost/ptr_container/detail/reversible_ptr_container.hpp:244
#5 0x000055555578be98 in boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<boost::nullable<int>, std::__cxx11::list<void*, std::allocator<void*> > >, boost::heap_clone_allocator>::remove_all (this=0x7fffffffcaf0)
at ../../boost/ptr_container/detail/reversible_ptr_container.hpp:205
#6 0x0000555555789e29 in boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<boost::nullable<int>, std::__cxx11::list<void*, std::allocator<void*> > >, boost::heap_clone_allocator>::~reversible_ptr_container (this=0x7fffffffcaf0, __in_chrg=<optimized out>)
at ../../boost/ptr_container/detail/reversible_ptr_container.hpp:499
#7 0x000055555578792d in boost::ptr_sequence_adapter<boost::nullable<int>, std::__cxx11::list<void*, std::allocator<void*> >, boost::heap_clone_allocator>::~ptr_sequence_adapter (this=0x7fffffffcaf0, __in_chrg=<optimized out>) at ../../boost/ptr_container/ptr_sequence_adapter.hpp:135
#8 0x00005555557879b5 in boost::ptr_list<boost::nullable<int>, boost::heap_clone_allocator, std::allocator<void*> >::~ptr_list (this=0x7fffffffcaf0,
__in_chrg=<optimized out>) at ../../boost/ptr_container/ptr_list.hpp:37
#9 0x0000555555788514 in test_ptr_inserter_helper<boost::ptr_list<boost::nullable<int>, boost::heap_clone_allocator, std::allocator<void*> > > ()
at test/ptr_inserter.cpp:43
#10 0x000055555578553e in test_ptr_inserter () at test/ptr_inserter.cpp:73
#11 0x000055555578f5b2 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke (function_ptr=...)
at ../../boost/function/function_template.hpp:117
#12 0x0000555555936fc1 in boost::function0<void>::operator() (this=0x555555bf6398) at ../../boost/function/function_template.hpp:763
#13 0x00005555559a810d in boost::detail::forward::operator() (this=0x7fffffffd918) at ../../boost/test/impl/execution_monitor.ipp:1368
#14 0x00005555559b0aae in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke (function_obj_ptr=...)
at ../../boost/function/function_template.hpp:137
#15 0x00005555559ad427 in boost::function0<int>::operator() (this=0x7fffffffd910) at ../../boost/function/function_template.hpp:763
#16 0x00005555559aa3ac in boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()> >(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) (tr=..., F=...) at ../../boost/test/impl/execution_monitor.ipp:290
#17 0x00005555559a0017 in boost::execution_monitor::catch_signals(boost::function<int ()> const&) (
this=0x555555bdb9c0 <boost::unit_test::unit_test_monitor_t::instance()::the_inst>, F=...) at ../../boost/test/impl/execution_monitor.ipp:879
#18 0x00005555559a0556 in boost::execution_monitor::execute(boost::function<int ()> const&) (
this=0x555555bdb9c0 <boost::unit_test::unit_test_monitor_t::instance()::the_inst>, F=...) at ../../boost/test/impl/execution_monitor.ipp:1277
#19 0x00005555559a2ed9 in boost::execution_monitor::vexecute(boost::function<void ()> const&) (
this=0x555555bdb9c0 <boost::unit_test::unit_test_monitor_t::instance()::the_inst>, F=...) at ../../boost/test/impl/execution_monitor.ipp:1377
#20 0x000055555598ea1a in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) (
this=0x555555bdb9c0 <boost::unit_test::unit_test_monitor_t::instance()::the_inst>, func=..., timeout_microseconds=0)
at ../../boost/test/impl/unit_test_monitor.ipp:49
#21 0x00005555559335c5 in boost::unit_test::framework::state::execute_test_tree (
this=0x555555bdb700 <boost::unit_test::framework::impl::(anonymous namespace)::s_frk_state()::the_inst>, tu_id=65536, timeout_microseconds=0,
p_random_generator=0x7fffffffdcd8) at ../../boost/test/impl/framework.ipp:823
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x0000555555931435 in boost::unit_test::framework::state::execute_test_tree (
this=0x555555bdb700 <boost::unit_test::framework::impl::(anonymous namespace)::s_frk_state()::the_inst>, tu_id=2, timeout_microseconds=0,
p_random_generator=0x7fffffffdfb8) at ../../boost/test/impl/framework.ipp:744
#23 0x0000555555931435 in boost::unit_test::framework::state::execute_test_tree (
this=0x555555bdb700 <boost::unit_test::framework::impl::(anonymous namespace)::s_frk_state()::the_inst>, tu_id=1, timeout_microseconds=0,
p_random_generator=0x0) at ../../boost/test/impl/framework.ipp:744
#24 0x000055555591998d in boost::unit_test::framework::run (id=1, continue_test=true) at ../../boost/test/impl/framework.ipp:1688
#25 0x0000555555804838 in boost::unit_test::unit_test_main (init_func=0x555555785546 <init_unit_test_suite(int, char**)>, argc=1, argv=0x7fffffffe628)
at ../../boost/test/impl/unit_test_main.ipp:248
#26 0x000055555580586e in main (argc=1, argv=0x7fffffffe628) at ../../boost/test/impl/unit_test_main.ipp:304
(gdb) f 10
#10 0x000055555578553e in test_ptr_inserter () at test/ptr_inserter.cpp:73
73 test_ptr_inserter_helper< boost::ptr_list< boost::nullable<int> > >();
(gdb) l
68 }
69
70
71 void test_ptr_inserter()
72 {
73 test_ptr_inserter_helper< boost::ptr_list< boost::nullable<int> > >();
74 test_ptr_inserter_helper< boost::ptr_deque< boost::nullable<int> > >();
75
76
77 }
(gdb) c
Continuing.
../../boost/ptr_container/detail/void_ptr_iterator.hpp:68:49: runtime error: reference binding to null pointer of type 'int'
[Inferior 1 (process 82) exited with code 01]
These issues are still present in 1.79 and in develop. I am going to leave the sanitizer builds in the mix and let them fail until someone can fix it. I added a suppression for the serializer one we see all over. It's been reported to the serialization project (years ago).
See: https://github.com/boostorg/ptr_container/actions/runs/2217432462
At line boost/ptr_container/ptr_sequence_adapter.hpp:111 there is &*i
and if i is nullable that is invalid.
Three issues found so disabling the UBSAN build job for now.