2025-07-22 00:53 CEST

View Revisions: Issue #5557

Summary 0005557: test_ThreadPool hangs in test "parallel"
Revision 2017-05-14 18:24 by abma
Description 52 minutes runtime and still running:

test/test_ThreadPool
Running 13 test cases...
Warning: for_mt
[ThreadPool::SetThreadCount][1] wanted=8 current=1 maximum=8
[ThreadPool::SetThreadCount][2] workers=7
Warning: for_mt with stepSize
Warning: parallel


 4372 abma 20 0 20,000t 23732 4756 R 101,2 0,1 52:02.21 test_ThreadPool


(gdb) bt
#0 0x000000000047ee65 in load (__m=std::memory_order_relaxed, this=0x60b00000a400) at /usr/include/c++/4.9/bits/atomic_base.h:500
#1 moodycamel::ConcurrentQueue<ITaskGroup*, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::size_approx (this=0x60b00000a3e0)
    at rts/System/ConcurrentQueue.h:1646
#2 0x000000000047ddd9 in moodycamel::ConcurrentQueue<ITaskGroup*, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<ITaskGroup*> (
    this=0x4fd940 <taskQueues>, item=@0x7ffd208279a0: 0x0) at rts/System/ConcurrentQueue.h:1041
0000003 0x0000000000475cb7 in ThreadPool::DoTask (tid=0, async=false) at rts/System/Threading/ThreadPool.cpp:152
0000004 0x0000000000476f13 in ThreadPool::WaitForFinished(std::shared_ptr<ITaskGroup>&&) (
    taskGroup=<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64ccd, DIE 0x8f8b3>) at rts/System/Threading/ThreadPool.cpp:280
0000005 0x000000000045065c in ThreadPool::WaitForFinished<Parallel2TaskGroup<testParallel::test_method()::<lambda()> > >(std::shared_ptr<Parallel2TaskGroup<testParallel::test_method()::<lambda()> > > &) (taskGroup=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<Parallel2TaskGroup<testParallel::test_method()::{lambda()#1}>*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<Parallel2TaskGroup<testParallel::test_method()::{lambda()#1}>*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 3, weak 0) 0x60700001f5f0) at rts/System/Threading/ThreadPool.h:175
#6 0x000000000044e22f in parallel<testParallel::test_method()::<lambda()> >(<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64e, DIE 0x43e1c>) (f=<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64e, DIE 0x43e1c>) at rts/System/Threading/ThreadPool.h:573
#7 0x0000000000449cba in testParallel::test_method (this=0x7ffd20827da0) at test/engine/System/testThreadPool.cpp:86
#8 0x0000000000449620 in testParallel_invoker () at test/engine/System/testThreadPool.cpp:76
#9 0x0000000000474b31 in boost::unit_test::ut_detail::invoker<boost::unit_test::ut_detail::unused>::invoke<void (*)()> (this=0x7ffd20827e5f,
    f=@0x60200000ee58: 0x4495a1 <testParallel_invoker()>) at /usr/include/boost/test/utils/callback.hpp:56
0000010 0x0000000000474244 in boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused, void (*)()>::invoke (this=0x60200000ee50)
    at /usr/include/boost/test/utils/callback.hpp:89
#11 0x00007fe401c648f1 in ?? () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000012 0x00007fe401c3b6de in boost::execution_monitor::catch_signals(boost::unit_test::callback0<int> const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000013 0x00007fe401c3bf33 in boost::execution_monitor::execute(boost::unit_test::callback0<int> const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000014 0x00007fe401c64a05 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::unit_test::test_case const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#15 0x00007fe401c4b4af in boost::unit_test::framework_impl::visit(boost::unit_test::test_case const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#16 0x00007fe401c7fa33 in boost::unit_test::traverse_test_tree(boost::unit_test::test_suite const&, boost::unit_test::test_tree_visitor&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#17 0x00007fe401c469fa in boost::unit_test::framework::run(unsigned long, bool) () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#18 0x00007fe401c62697 in boost::unit_test::unit_test_main(bool (*)(), int, char**) () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#19 0x0000000000447a4f in main (argc=1, argv=0x7ffd20828c88) at /usr/include/boost/test/unit_test.hpp:59


it was much faster on the same machine some time ago -> regression bug
Revision 2017-05-14 18:23 by abma
Description
52 minutes runtime and still running:

test/test_ThreadPool
Running 13 test cases...
Warning: for_mt
[ThreadPool::SetThreadCount][1] wanted=8 current=1 maximum=8
[ThreadPool::SetThreadCount][2] workers=7
Warning: for_mt with stepSize
Warning: parallel


 4372 abma 20 0 20,000t 23732 4756 R 101,2 0,1 52:02.21 test_ThreadPool


(gdb) bt
#0 0x000000000047ee65 in load (__m=std::memory_order_relaxed, this=0x60b00000a400) at /usr/include/c++/4.9/bits/atomic_base.h:500
#1 moodycamel::ConcurrentQueue<ITaskGroup*, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::size_approx (this=0x60b00000a3e0)
    at rts/System/ConcurrentQueue.h:1646
#2 0x000000000047ddd9 in moodycamel::ConcurrentQueue<ITaskGroup*, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<ITaskGroup*> (
    this=0x4fd940 <taskQueues>, item=@0x7ffd208279a0: 0x0) at rts/System/ConcurrentQueue.h:1041
0000003 0x0000000000475cb7 in ThreadPool::DoTask (tid=0, async=false) at rts/System/Threading/ThreadPool.cpp:152
0000004 0x0000000000476f13 in ThreadPool::WaitForFinished(std::shared_ptr<ITaskGroup>&&) (
    taskGroup=<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64ccd, DIE 0x8f8b3>) at rts/System/Threading/ThreadPool.cpp:280
0000005 0x000000000045065c in ThreadPool::WaitForFinished<Parallel2TaskGroup<testParallel::test_method()::<lambda()> > >(std::shared_ptr<Parallel2TaskGroup<testParallel::test_method()::<lambda()> > > &) (taskGroup=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<Parallel2TaskGroup<testParallel::test_method()::{lambda()#1}>*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<Parallel2TaskGroup<testParallel::test_method()::{lambda()#1}>*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 3, weak 0) 0x60700001f5f0) at rts/System/Threading/ThreadPool.h:175
#6 0x000000000044e22f in parallel<testParallel::test_method()::<lambda()> >(<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64e, DIE 0x43e1c>) (f=<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64e, DIE 0x43e1c>) at rts/System/Threading/ThreadPool.h:573
#7 0x0000000000449cba in testParallel::test_method (this=0x7ffd20827da0) at test/engine/System/testThreadPool.cpp:86
#8 0x0000000000449620 in testParallel_invoker () at test/engine/System/testThreadPool.cpp:76
#9 0x0000000000474b31 in boost::unit_test::ut_detail::invoker<boost::unit_test::ut_detail::unused>::invoke<void (*)()> (this=0x7ffd20827e5f,
    f=@0x60200000ee58: 0x4495a1 <testParallel_invoker()>) at /usr/include/boost/test/utils/callback.hpp:56
0000010 0x0000000000474244 in boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused, void (*)()>::invoke (this=0x60200000ee50)
    at /usr/include/boost/test/utils/callback.hpp:89
#11 0x00007fe401c648f1 in ?? () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000012 0x00007fe401c3b6de in boost::execution_monitor::catch_signals(boost::unit_test::callback0<int> const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000013 0x00007fe401c3bf33 in boost::execution_monitor::execute(boost::unit_test::callback0<int> const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000014 0x00007fe401c64a05 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::unit_test::test_case const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#15 0x00007fe401c4b4af in boost::unit_test::framework_impl::visit(boost::unit_test::test_case const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#16 0x00007fe401c7fa33 in boost::unit_test::traverse_test_tree(boost::unit_test::test_suite const&, boost::unit_test::test_tree_visitor&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#17 0x00007fe401c469fa in boost::unit_test::framework::run(unsigned long, bool) () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#18 0x00007fe401c62697 in boost::unit_test::unit_test_main(bool (*)(), int, char**) () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#19 0x0000000000447a4f in main (argc=1, argv=0x7ffd20828c88) at /usr/include/boost/test/unit_test.hpp:59


it was much faster on the same machine some time ago -> regression bug
Revision 2017-05-14 18:22 by abma
Description

52 minutes runtime and still running:

test/test_ThreadPool
Running 13 test cases...
Warning: for_mt
[ThreadPool::SetThreadCount][1] wanted=8 current=1 maximum=8
[ThreadPool::SetThreadCount][2] workers=7
Warning: for_mt with stepSize
Warning: parallel


 4372 abma 20 0 20,000t 23732 4756 R 101,2 0,1 52:02.21 test_ThreadPool


(gdb) bt
#0 0x000000000047ee65 in load (__m=std::memory_order_relaxed, this=0x60b00000a400) at /usr/include/c++/4.9/bits/atomic_base.h:500
#1 moodycamel::ConcurrentQueue<ITaskGroup*, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::size_approx (this=0x60b00000a3e0)
    at rts/System/ConcurrentQueue.h:1646
#2 0x000000000047ddd9 in moodycamel::ConcurrentQueue<ITaskGroup*, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<ITaskGroup*> (
    this=0x4fd940 <taskQueues>, item=@0x7ffd208279a0: 0x0) at rts/System/ConcurrentQueue.h:1041
0000003 0x0000000000475cb7 in ThreadPool::DoTask (tid=0, async=false) at rts/System/Threading/ThreadPool.cpp:152
0000004 0x0000000000476f13 in ThreadPool::WaitForFinished(std::shared_ptr<ITaskGroup>&&) (
    taskGroup=<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64ccd, DIE 0x8f8b3>) at rts/System/Threading/ThreadPool.cpp:280
0000005 0x000000000045065c in ThreadPool::WaitForFinished<Parallel2TaskGroup<testParallel::test_method()::<lambda()> > >(std::shared_ptr<Parallel2TaskGroup<testParallel::test_method()::<lambda()> > > &) (taskGroup=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<Parallel2TaskGroup<testParallel::test_method()::{lambda()#1}>*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<Parallel2TaskGroup<testParallel::test_method()::{lambda()#1}>*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 3, weak 0) 0x60700001f5f0) at rts/System/Threading/ThreadPool.h:175
#6 0x000000000044e22f in parallel<testParallel::test_method()::<lambda()> >(<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64e, DIE 0x43e1c>) (f=<unknown type in /mnt/tmp/home/dev/spring/develop/test/test_ThreadPool, CU 0x64e, DIE 0x43e1c>) at rts/System/Threading/ThreadPool.h:573
#7 0x0000000000449cba in testParallel::test_method (this=0x7ffd20827da0) at test/engine/System/testThreadPool.cpp:86
#8 0x0000000000449620 in testParallel_invoker () at test/engine/System/testThreadPool.cpp:76
#9 0x0000000000474b31 in boost::unit_test::ut_detail::invoker<boost::unit_test::ut_detail::unused>::invoke<void (*)()> (this=0x7ffd20827e5f,
    f=@0x60200000ee58: 0x4495a1 <testParallel_invoker()>) at /usr/include/boost/test/utils/callback.hpp:56
0000010 0x0000000000474244 in boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused, void (*)()>::invoke (this=0x60200000ee50)
    at /usr/include/boost/test/utils/callback.hpp:89
#11 0x00007fe401c648f1 in ?? () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000012 0x00007fe401c3b6de in boost::execution_monitor::catch_signals(boost::unit_test::callback0<int> const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000013 0x00007fe401c3bf33 in boost::execution_monitor::execute(boost::unit_test::callback0<int> const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
0000014 0x00007fe401c64a05 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::unit_test::test_case const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#15 0x00007fe401c4b4af in boost::unit_test::framework_impl::visit(boost::unit_test::test_case const&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#16 0x00007fe401c7fa33 in boost::unit_test::traverse_test_tree(boost::unit_test::test_suite const&, boost::unit_test::test_tree_visitor&) ()
   from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#17 0x00007fe401c469fa in boost::unit_test::framework::run(unsigned long, bool) () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#18 0x00007fe401c62697 in boost::unit_test::unit_test_main(bool (*)(), int, char**) () from /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0
#19 0x0000000000447a4f in main (argc=1, argv=0x7ffd20828c88) at /usr/include/boost/test/unit_test.hpp:59


it was much faster on the same machine some time ago -> regression bug