Skip to content

test_context.global fails with UCX 1.17.0 and newer #1090

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
lahwaacz opened this issue Mar 8, 2025 · 0 comments
Open

test_context.global fails with UCX 1.17.0 and newer #1090

lahwaacz opened this issue Mar 8, 2025 · 0 comments

Comments

@lahwaacz
Copy link

lahwaacz commented Mar 8, 2025

The latest UCC release is 1.3.0 from April 2024, which corresponds to UCX 1.16.0 released in the same month. However, building this UCC version with any newer UCX version leads to failures in the test_context.global test.

With UCX 1.17.0:

[----------] 3 tests from test_context
[ RUN      ] test_context.create_destroy
[       OK ] test_context.create_destroy (7 ms)
[ RUN      ] test_context.init_multiple
[       OK ] test_context.init_multiple (57 ms)
[ RUN      ] test_context.global
[1741442882.410708] [8f557496d12a:31250:1]        mm_iface.c:821  UCX  ERROR mm_iface failed to allocate receive FIFO
[1741442882.411208] [8f557496d12a:31250:1]  tl_ucp_context.c:208  TL_UCP ERROR failed to create ucp worker, Out of memory
[8f557496d12a:31250:1:31273] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7c9a4c001)
==== backtrace (tid:  31273) ====
 0 0x000000000003dcd0 __sigaction()  ???:0
 1 0x00000000000365f4 ucs_config_release_string()  /ucx/src/ucs/config/parser.c:117
 2 0x000000000003ab8a ucs_config_release_array()  /ucx/src/ucs/config/parser.c:929
 3 0x000000000003bd3b ucs_config_parser_release_field()  /ucx/src/ucs/config/parser.c:1350
 4 0x0000000000020afc ucp_config_release()  /ucx/src/ucp/core/ucp_context.c:756
 5 0x00000000000097e5 ucc_tl_ucp_context_t_init()  /ucc/src/components/tl/ucp/tl_ucp_context.c:285
 6 0x0000000000008497 ucc_tl_ucp_context_t_new()  /ucc/src/components/tl/ucp/tl_ucp.c:240
 7 0x000000000000b829 ucc_create_tl_contexts()  /ucc/src/core/ucc_context.c:396
 8 0x000000000000b829 ucc_context_create_proc_info()  /ucc/src/core/ucc_context.c:631
 9 0x0000000000364315 proc_context_create()  /ucc/test/gtest/common/test_ucc.cc:417
10 0x000000000036d710 std::__invoke_impl<void, void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool>()  /usr/include/c++/14.2.1/bits/invoke.h:61
11 0x000000000036d710 std::__shared_ptr<UccProcess, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()  /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1525
12 0x000000000036d710 std::shared_ptr<UccProcess>::~shared_ptr()  /usr/include/c++/14.2.1/bits/shared_ptr.h:175
13 0x000000000036d710 std::__invoke_impl<void, void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool>()  /usr/include/c++/14.2.1/bits/invoke.h:61
14 0x000000000036d710 std::__invoke<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool>()  /usr/include/c++/14.2.1/bits/invoke.h:96
15 0x000000000036d710 std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>()  /usr/include/c++/14.2.1/bits/std_thread.h:301
16 0x000000000036d710 std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool> >::operator()()  /usr/include/c++/14.2.1/bits/std_thread.h:308
17 0x000000000036d710 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool> > >::_M_run()  /usr/include/c++/14.2.1/bits/std_thread.h:253
18 0x00000000000e1f74 execute_native_thread_routine()  /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104
19 0x00000000000e1f74 std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >::~unique_ptr()  /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:399
20 0x00000000000e1f74 execute_native_thread_routine()  /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:106
21 0x000000000009570a pthread_condattr_setpshared()  ???:0
22 0x0000000000119aac __clone()  ???:0
=================================
make[1]: *** [Makefile:1960: test] Segmentation fault (core dumped)
make[1]: Leaving directory '/ucc/test/gtest'
make: *** [Makefile:1002: gtest] Error 2

With UCX 1.18.0:

[----------] 3 tests from test_context
[ RUN      ] test_context.create_destroy
[       OK ] test_context.create_destroy (5 ms)
[ RUN      ] test_context.init_multiple
[       OK ] test_context.init_multiple (55 ms)
[ RUN      ] test_context.global
[cf8cd9ff6bd7:31297:1:31392]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:2:31393]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:3:31397]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:4:31395]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:5:31399]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:6:31401]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:7:31403]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:8:31405]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:9:31407]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:10:31412]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:11:31409]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:12:31411]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:13:31417]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:14:31413]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:15:31420]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed
[cf8cd9ff6bd7:31297:16:31421]  ucp_worker.c:3029 Assertion `ucs_async_check_owner_thread(&(worker)->async)' failed

/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);


/ucx/src/ucp/core/ucp_worker.c: [ ucp_worker_progress() ]
      ...
     3026     /* worker->inprogress is used only for assertion check.
     3027      * coverity[assert_side_effect]
     3028      */
==>  3029     UCP_WORKER_THREAD_CS_ENTER_CONDITIONAL(worker);
     3030
     3031     /* check that ucp_worker_progress is not called from within ucp_worker_progress */
     3032     ucs_assert(worker->inprogress++ == 0);

==== backtrace (tid:  31421) ====
 0 0x000000000005d681 ucp_worker_progress()  /ucx/src/ucp/core/ucp_worker.c:3029
 1 0x0000000000009003 ucc_tl_ucp_context_barrier()  /ucc/src/components/tl/ucp/tl_ucp_context.c:316
 2 0x0000000000009003 ucc_tl_ucp_context_t_cleanup()  /ucc/src/components/tl/ucp/tl_ucp_context.c:400
 3 0x0000000000063706 ucs_class_call_cleanup_chain()  /ucx/src/ucs/type/class.c:56
 4 0x0000000000008315 ucc_tl_ucp_context_t_delete()  /ucc/src/components/tl/ucp/tl_ucp.c:244
 5 0x000000000000ac79 ucc_context_destroy()  /ucc/src/core/ucc_context.c:908
 6 0x0000000000369132 UccProcess::~UccProcess()  /ucc/test/gtest/common/test_ucc.cc:43
 7 0x0000000000363c31 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()  /usr/include/c++/14.2.1/bits/shared_ptr_base.h:346
 8 0x0000000000363c31 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()  /usr/include/c++/14.2.1/bits/shared_ptr_base.h:317
 9 0x0000000000363c31 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()  /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1069
10 0x0000000000363c31 std::__shared_ptr<UccProcess, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()  /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1525
11 0x0000000000363c31 std::__shared_ptr<UccProcess, (__gnu_cxx::_Lock_policy)2>::operator=()  /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1621
12 0x0000000000363c31 std::shared_ptr<UccProcess>::operator=()  /usr/include/c++/14.2.1/bits/shared_ptr.h:439
13 0x0000000000363c31 thread_proc_destruct()  /ucc/test/gtest/common/test_ucc.cc:494
14 0x00000000000e1f74 execute_native_thread_routine()  /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104
15 0x00000000000e1f74 std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >::~unique_ptr()  /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:399
16 0x00000000000e1f74 execute_native_thread_routine()  /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:106
17 0x000000000009570a pthread_condattr_setpshared()  ???:0
18 0x0000000000119aac __clone()  ???:0
=================================
make[1]: *** [Makefile:1960: test] Aborted (core dumped)
make[1]: Leaving directory '/ucc/test/gtest'
make: *** [Makefile:1002: gtest] Error 2

With UCX master (openucx/ucx@52026fd):

[----------] 3 tests from test_context
[ RUN      ] test_context.create_destroy
[       OK ] test_context.create_destroy (6 ms)
[ RUN      ] test_context.init_multiple
[       OK ] test_context.init_multiple (59 ms)
[ RUN      ] test_context.global
[3b069416314b:31407:1:31431]     uct_mem.c:471  Assertion `mem.memh != UCT_MEM_HANDLE_NULL' failed
[3b069416314b:31407:2:31426]     uct_mem.c:471  Assertion `mem.memh != UCT_MEM_HANDLE_NULL' failed

/ucx/src/uct/base/uct_mem.c: [ uct_iface_mp_chunk_alloc_inner() ]
      ...
      468         return status;
      469     }
      470
==>   471     ucs_assert(mem.memh != UCT_MEM_HANDLE_NULL);
      472     ucs_assert(mem.md == iface->md);
      473
      474     hdr         = mem.address;

/ucx/src/uct/base/uct_mem.c: [ uct_iface_mp_chunk_alloc_inner() ]

      ...
      468         return status;
      469     }
      470
==>   471     ucs_assert(mem.memh != UCT_MEM_HANDLE_NULL);
      472     ucs_assert(mem.md == iface->md);
      473
      474     hdr         = mem.address;

==== backtrace (tid:  31431) ====
 0 0x0000000000012d20 uct_iface_mp_chunk_alloc_inner()  /ucx/src/uct/base/uct_mem.c:471
 1 0x0000000000012d20 uct_iface_mp_chunk_alloc()  /ucx/src/uct/base/uct_mem.c:451
 2 0x00000000000419ad ucs_mpool_grow()  /ucx/src/ucs/datastruct/mpool.c:266
 3 0x0000000000041bfd ucs_mpool_get_grow()  /ucx/src/ucs/datastruct/mpool.c:312
 4 0x0000000000019a99 uct_mm_iface_t_init()  /ucx/src/uct/sm/mm/base/mm_iface.c:850
 5 0x000000000001a019 uct_mm_iface_t_init()  /ucx/src/uct/sm/mm/base/mm_iface.c:747
 6 0x0000000000010893 uct_iface_open()  /ucx/src/uct/base/uct_md.c:250
 7 0x000000000005a156 ucp_worker_iface_open()  /ucx/src/ucp/core/ucp_worker.c:1407
 8 0x000000000005c38d ucp_worker_add_resource_ifaces()  /ucx/src/ucp/core/ucp_worker.c:1118
 9 0x000000000005c38d ucp_worker_create()  /ucx/src/ucp/core/ucp_worker.c:2596
10 0x000000000000989a ucc_tl_ucp_context_t_init()  /ucc/src/components/tl/ucp/tl_ucp_context.c:208
11 0x0000000000008497 ucc_tl_ucp_context_t_new()  /ucc/src/components/tl/ucp/tl_ucp.c:240
12 0x000000000000b829 ucc_create_tl_contexts()  /ucc/src/core/ucc_context.c:396
13 0x000000000000b829 ucc_context_create_proc_info()  /ucc/src/core/ucc_context.c:631
14 0x0000000000364315 proc_context_create()  /ucc/test/gtest/common/test_ucc.cc:417
15 0x000000000036d710 std::__invoke_impl<void, void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool>()  /usr/include/c++/14.2.1/bits/invoke.h:61
16 0x000000000036d710 std::__shared_ptr<UccProcess, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()  /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1525
17 0x000000000036d710 std::shared_ptr<UccProcess>::~shared_ptr()  /usr/include/c++/14.2.1/bits/shared_ptr.h:175
18 0x000000000036d710 std::__invoke_impl<void, void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool>()  /usr/include/c++/14.2.1/bits/invoke.h:61
19 0x000000000036d710 std::__invoke<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool>()  /usr/include/c++/14.2.1/bits/invoke.h:96
20 0x000000000036d710 std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>()  /usr/include/c++/14.2.1/bits/std_thread.h:301
21 0x000000000036d710 std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool> >::operator()()  /usr/include/c++/14.2.1/bits/std_thread.h:308
22 0x000000000036d710 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool), std::shared_ptr<UccProcess>, int, ThreadAllgather*, bool> > >::_M_run()  /usr/include/c++/14.2.1/bits/std_thread.h:253
23 0x00000000000e1f74 execute_native_thread_routine()  /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104
24 0x00000000000e1f74 std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >::~unique_ptr()  /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:399
25 0x00000000000e1f74 execute_native_thread_routine()  /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:106
26 0x000000000009570a pthread_condattr_setpshared()  ???:0
27 0x0000000000119aac __clone()  ???:0
=================================
==== backtrace (tid:  31426) ====
 0 0x0000000000012d20 uct_iface_mp_chunk_alloc_inner()  /ucx/src/uct/base/uct_mem.c:471
make[1]: *** [Makefile:1960: test] Aborted (core dumped)
make[1]: Leaving directory '/ucc/test/gtest'
make: *** [Makefile:1002: gtest] Error 2

I also tried UCC master with UCX master but there is still the same failure.

I'm attaching a script to reproduce the error in a podman/docker container. Run it with on of the following:

  • podman run --rm -it --userns nomap -v ./build.sh:/build.sh quay.io/archlinux/archlinux:base /build.sh
  • podman run --rm -it --userns nomap -v ./build.sh:/build.sh ubuntu:24.04 /build.sh
  • podman run --rm -it --userns nomap -v ./build.sh:/build.sh gcc:14 /build.sh

build.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant