Emilio Pozuelo Monfort wrote... > The following tests FAILED: > 46 - base-base_timer/invoke (OTHER_FAULT) > 47 - base-base_timer/scope (OTHER_FAULT) > Errors while running CTest > Makefile:130: recipe for target 'test' failed > make[1]: *** [test] Error 8 > make[1]: Leaving directory '/«PKGBUILDDIR»/obj-arm-linux-gnueabihf' > dh_auto_test: make -j1 test ARGS+=-j1 returned exit code 2 > debian/rules:23: recipe for target 'build-arch' failed > make: *** [build-arch] Error 2
Trying to get this fixed I re-compiled icinga2 on my CubieTruck (takes more than six hours), and could otherwise easily reproduce the issue. The backtrace as attached exceeds my debugging skills. I'm dropping it here in case somebody who is more experienced in boost can take a look. Christoph [/tmp/icinga/icinga2-2.5.4/obj-arm-linux-gnueabihf] $ gdb --args /tmp/icinga/icinga2-2.5.4/obj-arm-linux-gnueabihf/Bin/None/boosttest-test-base --run_test=base_timer/invoke --catch_system_error=yes GNU gdb (Debian 7.11.1-2) 7.11.1 (...) Reading symbols from /tmp/icinga/icinga2-2.5.4/obj-arm-linux-gnueabihf/Bin/None/boosttest-test-base...done. (gdb) run Starting program: /tmp/icinga/icinga2-2.5.4/obj-arm-linux-gnueabihf/Bin/None/boosttest-test-base --run_test=base_timer/invoke --catch_system_error=yes [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". (gdb) [New Thread 0xb4480450 (LWP 147957)] [New Thread 0xb3c80450 (LWP 147958)] [New Thread 0xb32ff450 (LWP 147959)] [New Thread 0xb28ff450 (LWP 147960)] [New Thread 0xb20ff450 (LWP 147961)] [New Thread 0xb18ff450 (LWP 147962)] Running 1 test case... Thread 3 "boosttest-test-" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb3c80450 (LWP 147958)] 0xb6fff958 in ?? () (gdb) bt #0 0xb6fff958 in ?? () #1 0xb681f85a in boost::function1<void, boost::intrusive_ptr<icinga::Timer> const&>::operator() (a0=..., this=<optimized out>) at /usr/include/boost/function/function_template.hpp:771 #2 boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::m_invoke<boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)>, 0u, boost::intrusive_ptr<icinga::Timer> const&>(boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)>&, boost::signals2::detail::unsigned_meta_array<0u>, std::tuple<boost::intrusive_ptr<icinga::Timer> const&> const&, boost::enable_if<boost::is_void<boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)>::result_type>, void>::type*) const (this=<optimized out>, args=std::tuple containing = {...}, func=...) at /usr/include/boost/signals2/detail/variadic_slot_invoker.hpp:105 #3 boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::operator()<boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)>, boost::intrusive_ptr<icinga::Timer> const&, 1u>(boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)>&, std::tuple<boost::intrusive_ptr<icinga::Timer> const&> const&, mpl_::size_t<1u>) const (this=<optimized out>, args=std::tuple containing = {...}, func=...) at /usr/include/boost/signals2/detail/variadic_slot_invoker.hpp:90 #4 boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > const&) const (connectionBody=..., this=0xb3c7f954) at /usr/include/boost/signals2/detail/variadic_slot_invoker.hpp:133 #5 boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> >::dereference() const (this=0xb3c7f85c) at /usr/include/boost/signals2/detail/slot_call_iterator.hpp:109 #6 boost::iterators::iterator_core_access::dereference<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > const&) (f=...) at /usr/include/boost/iterator/iterator_facade.hpp:549 #7 boost::iterators::detail::iterator_facade_base<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> >, boost::signals2::detail::void_type, boost::iterators::single_pass_traversal_tag, boost::signals2::detail::void_type&, int, false, false>::operator*() const (this=0xb3c7f85c) at /usr/include/boost/iterator/iterator_facade.hpp:655 #8 boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> >) const (this=<optimized out>, first=..., last=...) at /usr/include/boost/signals2/optional_last_value.hpp:55 #9 boost::signals2::detail::combiner_invoker<void>::operator()<boost::signals2::optional_last_value<void>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >(boost::signals2::optional_last_value<void>&, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, boost::intrusive_ptr<icinga::Timer> const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (boost::intrusive_ptr<icinga::Timer> const&), boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)> >, boost::signals2::mutex> >) const (this=<optimized out>, combiner=..., first=..., last=...) at /usr/include/boost/signals2/detail/result_type_wrapper.hpp:64 #10 boost::signals2::detail::signal_impl<void (boost::intrusive_ptr<icinga::Timer> const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)>, boost::function<void (boost::signals2::connection const&, boost::intrusive_ptr<icinga::Timer> const&)>, boost::signals2::mutex>::operator()(boost::intrusive_ptr<icinga::Timer> const&) (this=0xce0c0, args#0=...) at /usr/include/boost/signals2/detail/signal_template.hpp:247 #11 0xb681c646 in boost::signals2::signal<void (boost::intrusive_ptr<icinga::Timer> const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (boost::intrusive_ptr<icinga::Timer> const&)>, boost::function<void (boost::signals2::connection const&, boost::intrusive_ptr<icinga::Timer> const&)>, boost::signals2::mutex>::operator()(boost::intrusive_ptr<icinga::Timer> const&) (args#0=..., this=0xe317c) at /usr/include/boost/signals2/detail/signal_template.hpp:723 #12 icinga::Timer::Call (this=0xe3170) at ./lib/base/timer.cpp:94 #13 0xb6818ff2 in boost::function0<void>::operator() (this=0xb3c7fa08) at /usr/include/boost/function/function_template.hpp:771 #14 icinga::ThreadPool::WorkerThread::ThreadProc (this=0xb68c6ac0 <icinga::Application::GetTP()::tp+1360>, queue=...) at ./lib/base/threadpool.cpp:138 #15 0xb64ba6f8 in ?? () from /usr/lib/arm-linux-gnueabihf/libboost_thread.so.1.61.0 #16 0xb630c5e4 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0 #17 0xb6102412 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
signature.asc
Description: Digital signature