[ 
https://issues.apache.org/jira/browse/ARROW-15361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17523621#comment-17523621
 ] 

Antoine Pitrou commented on ARROW-15361:
----------------------------------------

Another similar crash here:
https://github.com/apache/arrow/runs/6052762470?check_suite_focus=true#step:6:3167

{code}
Running arrow-compute-hash-join-node-test, redirecting output into 
/build/cpp/build/test-logs/arrow-compute-hash-join-node-test.txt (attempt 1/1)
/arrow/cpp/build-support/run-test.sh: line 88: 20664 Segmentation fault      
(core dumped) $TEST_EXECUTABLE "$@" > $LOGFILE.raw 2>&1
Running main() from 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest_main.cc
[==========] Running 27 tests from 4 test suites.
[----------] Global test environment set-up.
[----------] 8 tests from HashJoin
[ RUN      ] HashJoin.Suffix
[       OK ] HashJoin.Suffix (12 ms)
[ RUN      ] HashJoin.Random
Found core dump, printing backtrace:

warning: core file may not match specified executable file.
[New LWP 20668]
[New LWP 20669]
[New LWP 20666]
[New LWP 20667]
[New LWP 20717]
[New LWP 20664]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/build/cpp/debug/arrow-compute-hash-join-node-test'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000000011435 in ?? ()
[Current thread is 1 (Thread 0x7f946eb7d700 (LWP 20668))]

Thread 6 (Thread 0x7f9471776100 (LWP 20664)):
#0  0x00007f9474a1ab7c in std::_Destroy<arrow::compute::(anonymous 
namespace)::BufferPreallocation*, arrow::compute::(anonymous 
namespace)::BufferPreallocation> (__first=0x0, __last=0x0) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/alloc_traits.h:738
#1  0x00007f9474a1a033 in std::vector<arrow::compute::(anonymous 
namespace)::BufferPreallocation, std::allocator<arrow::compute::(anonymous 
namespace)::BufferPreallocation> >::~vector (this=0x563c30ef5cb0, 
__in_chrg=<optimized out>) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/stl_vector.h:680
#2  0x00007f9474a17fae in arrow::compute::detail::(anonymous 
namespace)::KernelExecutorImpl<arrow::compute::VectorKernel>::~KernelExecutorImpl
 (this=0x563c30ef5c70, __in_chrg=<optimized out>) at 
/arrow/cpp/src/arrow/compute/exec.cc:562
#3  0x00007f9474a1a28c in arrow::compute::detail::(anonymous 
namespace)::VectorExecutor::~VectorExecutor (this=0x563c30ef5c70, 
__in_chrg=<optimized out>) at /arrow/cpp/src/arrow/compute/exec.cc:848
#4  0x00007f9474a1a2a8 in arrow::compute::detail::(anonymous 
namespace)::VectorExecutor::~VectorExecutor (this=0x563c30ef5c70, 
__in_chrg=<optimized out>) at /arrow/cpp/src/arrow/compute/exec.cc:848
#5  0x00007f9474a6a79c in 
std::default_delete<arrow::compute::detail::KernelExecutor>::operator() 
(this=0x7ffdc8df9370, __ptr=0x563c30ef5c70) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/unique_ptr.h:85
#6  0x00007f9474a64c28 in 
std::unique_ptr<arrow::compute::detail::KernelExecutor, 
std::default_delete<arrow::compute::detail::KernelExecutor> >::~unique_ptr 
(this=0x7ffdc8df9370, __in_chrg=<optimized out>) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/unique_ptr.h:361
#7  0x00007f9474b80fca in arrow::compute::Function::Execute 
(this=0x563c30eb41b0, args=..., options=0x7ffdc8df9bb0, ctx=0x7ffdc8df9960) at 
/arrow/cpp/src/arrow/compute/function.cc:242
#8  0x00007f9474a15222 in arrow::compute::CallFunction (func_name=..., 
args=..., options=0x7ffdc8df9bb0, ctx=0x7ffdc8df9960) at 
/arrow/cpp/src/arrow/compute/exec.cc:1078
#9  0x00007f94757dea45 in arrow::compute::internal::(anonymous 
namespace)::TakeAA (values=..., indices=..., options=..., ctx=0x7ffdc8df9960) 
at /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:1997
#10 0x00007f94757e0767 in arrow::compute::internal::(anonymous 
namespace)::TakeMetaFunction::ExecuteImpl (this=0x563c30eb58e0, args=..., 
options=0x7ffdc8df9bb0, ctx=0x7ffdc8df9960) at 
/arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:2128
#11 0x00007f9474b82536 in arrow::compute::MetaFunction::Execute 
(this=0x563c30eb58e0, args=..., options=0x7ffdc8df9bb0, ctx=0x7ffdc8df9960) at 
/arrow/cpp/src/arrow/compute/function.cc:388
#12 0x00007f9474a15222 in arrow::compute::CallFunction (func_name=..., 
args=..., options=0x7ffdc8df9bb0, ctx=0x7ffdc8df9960) at 
/arrow/cpp/src/arrow/compute/exec.cc:1078
#13 0x00007f9474a150f3 in arrow::compute::CallFunction (func_name=..., 
args=..., options=0x7ffdc8df9bb0, ctx=0x0) at 
/arrow/cpp/src/arrow/compute/exec.cc:1074
#14 0x00007f94749e4a34 in arrow::compute::Take (values=..., filter=..., 
options=..., ctx=0x0) at /arrow/cpp/src/arrow/compute/api_vector.cc:305
#15 0x0000563c2f45a7a5 in arrow::compute::TakeUsingVector (ctx=0x563c30dfce50, 
input=..., indices=..., result=0x7ffdc8df9d50) at 
/arrow/cpp/src/arrow/compute/exec/hash_join_node_test.cc:441
#16 0x0000563c2f45ca00 in arrow::compute::GenRandomJoinTables 
(ctx=0x563c30dfce50, rng=..., num_rows_l=1140, num_rows_r=973, 
num_keys_common=263, num_keys_left=341, num_keys_right=401, key_types=..., 
payload_left_types=..., payload_right_types=..., key_id_l=0x7ffdc8dfa1a0, 
key_id_r=0x7ffdc8dfa1b8, left=0x7ffdc8dfa1d0, right=0x7ffdc8dfa1e8) at 
/arrow/cpp/src/arrow/compute/exec/hash_join_node_test.cc:599
#17 0x0000563c2f464d23 in arrow::compute::HashJoin_Random_Test::TestBody 
(this=0x563c30efd680) at 
/arrow/cpp/src/arrow/compute/exec/hash_join_node_test.cc:1084
#18 0x00007f9476e564dd in 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> 
(object=0x563c30efd680, method=&virtual testing::Test::TestBody(), 
location=0x7f9476e6ae1b "the test body") at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607
#19 0x00007f9476e4d90d in 
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> 
(object=0x563c30efd680, method=&virtual testing::Test::TestBody(), 
location=0x7f9476e6ae1b "the test body") at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643
#20 0x00007f9476e28cdd in testing::Test::Run (this=0x563c30efd680) at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2682
#21 0x00007f9476e296ff in testing::TestInfo::Run (this=0x563c30df51f0) at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2861
#22 0x00007f9476e2a0be in testing::TestSuite::Run (this=0x563c30df5040) at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:3015
#23 0x00007f9476e3a1dc in testing::internal::UnitTestImpl::RunAllTests 
(this=0x563c30df46b0) at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5855
#24 0x00007f9476e57498 in 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool> (object=0x563c30df46b0, method=(bool 
(testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 
0x7f9476e39d9a <testing::internal::UnitTestImpl::RunAllTests()>, 
location=0x7f9476e6b908 "auxiliary test code (environments or event 
listeners)") at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607
#25 0x00007f9476e4eafa in 
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool> (object=0x563c30df46b0, method=(bool 
(testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 
0x7f9476e39d9a <testing::internal::UnitTestImpl::RunAllTests()>, 
location=0x7f9476e6b908 "auxiliary test code (environments or event 
listeners)") at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643
#26 0x00007f9476e386a9 in testing::UnitTest::Run (this=0x7f9476e94260 
<testing::UnitTest::GetInstance()::instance>) at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5438
#27 0x00007f9476e95919 in RUN_ALL_TESTS () at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/include/gtest/gtest.h:2490
#28 0x00007f9476e9595c in main (argc=1, argv=0x7ffdc8dfa9b8) at 
/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest_main.cc:52
#29 0x00007f9473934c87 in __libc_start_main (main=0x7f9476e9591b <main(int, 
char**)>, argc=1, argv=0x7ffdc8dfa9b8, init=<optimized out>, fini=<optimized 
out>, rtld_fini=<optimized out>, stack_end=0x7ffdc8dfa9a8) at 
../csu/libc-start.c:310
#30 0x0000563c2f44ee59 in _start ()

Thread 5 (Thread 0x7f945fdff700 (LWP 20717)):
#0  0x00007f9473364065 in futex_abstimed_wait_cancelable (private=<optimized 
out>, abstime=0x7f945fdfd3d0, expected=0, futex_word=0x7f947140a790) at 
../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  __pthread_cond_wait_common (abstime=0x7f945fdfd3d0, mutex=0x7f947140a7d8, 
cond=0x7f947140a768) at pthread_cond_wait.c:539
#2  __pthread_cond_timedwait (cond=0x7f947140a768, mutex=0x7f947140a7d8, 
abstime=0x7f945fdfd3d0) at pthread_cond_wait.c:667
#3  0x00007f9475d0ee2d in background_thread_sleep 
(info=info@entry=0x7f947140a760, interval=140275240391632, 
interval@entry=1000000000, tsdn=<optimized out>) at src/background_thread.c:255
#4  0x00007f9475d0fdb7 in background_work_sleep_once (ind=2, info=<optimized 
out>, tsdn=<optimized out>) at src/background_thread.c:307
#5  background_work (ind=<optimized out>, tsd=<optimized out>) at 
src/background_thread.c:497
#6  background_thread_entry () at src/background_thread.c:522
#7  0x00007f947335d6db in start_thread (arg=0x7f945fdff700) at 
pthread_create.c:463
#8  0x00007f9473a3461f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f946fb7e700 (LWP 20667)):
#0  0x00007f9473363ad3 in futex_wait_cancelable (private=<optimized out>, 
expected=0, futex_word=0x563c30eb73a0) at 
../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x563c30eb7350, 
cond=0x563c30eb7378) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x563c30eb7378, mutex=0x563c30eb7350) at 
pthread_cond_wait.c:655
#3  0x00007f9473dcc4d1 in __gthread_cond_wait (__mutex=<error reading variable: 
dwarf2_find_location_expression: Corrupted DWARF expression.>, 
__cond=<optimized out>) at 
/home/conda/feedstock_root/build_artifacts/gcc_compilers_1647306965841/work/build/x86_64-conda-linux-gnu/libstdc++-v3/src/c++11/condition_variable.cc:865
#4  std::__condvar::wait (__m=<error reading variable: 
dwarf2_find_location_expression: Corrupted DWARF expression.>, this=<optimized 
out>) at ../../../../../libstdc++-v3/src/c++11/gthr-default.h:155
#5  std::condition_variable::wait (this=<optimized out>, __lock=...) at 
../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#6  0x00007f94747ac6bd in arrow::internal::WorkerLoop (state=..., it=...) at 
/arrow/cpp/src/arrow/util/thread_pool.cc:265
#7  0x00007f94747ad4c8 in operator() (__closure=0x563c30ff1ea8) at 
/arrow/cpp/src/arrow/util/thread_pool.cc:418
#8  0x00007f94747b4926 in std::__invoke_impl<void, 
arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> 
>(std::__invoke_other, struct {...} &&) (__f=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:60
#9  0x00007f94747b48db in 
std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 >(struct {...} &&) (__fn=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:95
#10 0x00007f94747b4888 in 
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x563c30ff1ea8) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/thread:264
#11 0x00007f94747b4748 in 
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 > >::operator()(void) (this=0x563c30ff1ea8) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/thread:271
#12 0x00007f94747b46ac in 
std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 > > >::_M_run(void) (this=0x563c30ff1ea0) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/thread:215
#13 0x00007f9473dd09d4 in std::execute_native_thread_routine (__p=<optimized 
out>) at 
/home/conda/feedstock_root/build_artifacts/gcc_compilers_1647306965841/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:82
#14 0x00007f947335d6db in start_thread (arg=0x7f946fb7e700) at 
pthread_create.c:463
#15 0x00007f9473a3461f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f9470dff700 (LWP 20666)):
#0  0x00007f9473364065 in futex_abstimed_wait_cancelable (private=<optimized 
out>, abstime=0x7f9470dfd3c0, expected=0, futex_word=0x7f947140a5f0) at 
../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  __pthread_cond_wait_common (abstime=0x7f9470dfd3c0, mutex=0x7f947140a638, 
cond=0x7f947140a5c8) at pthread_cond_wait.c:539
#2  __pthread_cond_timedwait (cond=0x7f947140a5c8, mutex=0x7f947140a638, 
abstime=0x7f9470dfd3c0) at pthread_cond_wait.c:667
#3  0x00007f9475d0ee2d in background_thread_sleep 
(info=info@entry=0x7f947140a5c0, interval=140275525604288, 
interval@entry=437500000, tsdn=<optimized out>) at src/background_thread.c:255
#4  0x00007f9475d10281 in background_work_sleep_once (ind=0, 
info=0x7f947140a5c0, tsdn=<optimized out>) at src/background_thread.c:307
#5  background_thread0_work (tsd=<optimized out>) at src/background_thread.c:452
#6  background_work (ind=<optimized out>, tsd=<optimized out>) at 
src/background_thread.c:490
#7  background_thread_entry () at src/background_thread.c:522
#8  0x00007f947335d6db in start_thread (arg=0x7f9470dff700) at 
pthread_create.c:463
#9  0x00007f9473a3461f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f946d5ff700 (LWP 20669)):
#0  0x00007f9473364065 in futex_abstimed_wait_cancelable (private=<optimized 
out>, abstime=0x7f946d5fd3d0, expected=0, futex_word=0x7f947140a6c4) at 
../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  __pthread_cond_wait_common (abstime=0x7f946d5fd3d0, mutex=0x7f947140a708, 
cond=0x7f947140a698) at pthread_cond_wait.c:539
#2  __pthread_cond_timedwait (cond=0x7f947140a698, mutex=0x7f947140a708, 
abstime=0x7f946d5fd3d0) at pthread_cond_wait.c:667
#3  0x00007f9475d0ee2d in background_thread_sleep 
(info=info@entry=0x7f947140a690, interval=140275466884048, 
interval@entry=1000000000, tsdn=<optimized out>) at src/background_thread.c:255
#4  0x00007f9475d0fdb7 in background_work_sleep_once (ind=1, info=<optimized 
out>, tsdn=<optimized out>) at src/background_thread.c:307
#5  background_work (ind=<optimized out>, tsd=<optimized out>) at 
src/background_thread.c:497
#6  background_thread_entry () at src/background_thread.c:522
#7  0x00007f947335d6db in start_thread (arg=0x7f946d5ff700) at 
pthread_create.c:463
#8  0x00007f9473a3461f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f946eb7d700 (LWP 20668)):
#0  0x0000000000011435 in ?? ()
#1  0x00007f9474b29ac5 in arrow::compute::TaskSchedulerImpl::ScheduleMore 
(this=0x563c30efb290, thread_id=0, num_tasks_finished=0) at 
/arrow/cpp/src/arrow/compute/exec/task_util.cc:326
#2  0x00007f9474b2896b in arrow::compute::TaskSchedulerImpl::StartTaskGroup 
(this=0x563c30efb290, thread_id=0, group_id=1, total_num_tasks=0) at 
/arrow/cpp/src/arrow/compute/exec/task_util.cc:153
#3  0x00007f9474a84d27 in arrow::compute::HashJoinBasicImpl::ProbeQueuedBatches 
(this=0x7f94681a7140, thread_index=0) at 
/arrow/cpp/src/arrow/compute/exec/hash_join.cc:727
#4  0x00007f9474a84523 in 
arrow::compute::HashJoinBasicImpl::BuildHashTable_on_finished 
(this=0x7f94681a7140, thread_index=0) at 
/arrow/cpp/src/arrow/compute/exec/hash_join.cc:664
#5  0x00007f9474a846c1 in 
arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
long)#2}::operator()(unsigned long) const (__closure=0x563c3102e110, 
thread_index=0) at /arrow/cpp/src/arrow/compute/exec/hash_join.cc:675
#6  0x00007f9474a8ba45 in std::__invoke_impl<arrow::Status, 
arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
long)#2}&, unsigned long>(std::__invoke_other, 
arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
long)#2}&, unsigned long&&) (__f=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:60
#7  0x00007f9474a8a6a5 in std::__invoke_r<arrow::Status, 
arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
long)#2}&, unsigned long>(arrow::Status&&, 
(arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
long)#2}&)...) (__fn=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:115
#8  0x00007f9474a88c92 in std::_Function_handler<arrow::Status (unsigned long), 
arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
long)#2}>::_M_invoke(std::_Any_data const&, unsigned long&&) (__functor=..., 
__args#0=@0x7f946eb7b078: 0) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/std_function.h:292
#9  0x00007f9474aae9d3 in std::function<arrow::Status (unsigned 
long)>::operator()(unsigned long) const (this=0x563c3102e110, __args#0=0) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/std_function.h:622
#10 0x00007f9474b29044 in 
arrow::compute::TaskSchedulerImpl::OnTaskGroupFinished (this=0x563c30efb290, 
thread_id=0, group_id=0, all_task_groups_finished=0x7f946eb7b170) at 
/arrow/cpp/src/arrow/compute/exec/task_util.cc:244
#11 0x00007f9474b29918 in operator() (__closure=0x563c30ef5ae0, thread_id=0) at 
/arrow/cpp/src/arrow/compute/exec/task_util.cc:349
#12 0x00007f9474b2c5c1 in std::__invoke_impl<arrow::Status, 
arrow::compute::TaskSchedulerImpl::ScheduleMore(size_t, 
int)::<lambda(size_t)>&, long unsigned int>(std::__invoke_other, struct {...} 
&) (__f=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:60
#13 0x00007f9474b2bf25 in std::__invoke_r<arrow::Status, 
arrow::compute::TaskSchedulerImpl::ScheduleMore(size_t, 
int)::<lambda(size_t)>&, long unsigned int>(struct {...} &) (__fn=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:115
#14 0x00007f9474b2b463 in std::_Function_handler<arrow::Status(long unsigned 
int), arrow::compute::TaskSchedulerImpl::ScheduleMore(size_t, 
int)::<lambda(size_t)> >::_M_invoke(const std::_Any_data &, unsigned long &&) 
(__functor=..., __args#0=@0x7f946eb7b298: 0) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/std_function.h:292
#15 0x00007f9474aae9d3 in std::function<arrow::Status (unsigned 
long)>::operator()(unsigned long) const (this=0x563c30dfbdf0, __args#0=0) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/std_function.h:622
#16 0x00007f9474aac208 in 
arrow::compute::HashJoinNode::ScheduleTaskCallback(std::function<arrow::Status 
(unsigned long)>)::{lambda()#1}::operator()() const (__closure=0x563c30dfbde8) 
at /arrow/cpp/src/arrow/compute/exec/hash_join_node.cc:634
#17 0x00007f9474abc938 in arrow::internal::FnOnce<void 
()>::FnImpl<arrow::compute::HashJoinNode::ScheduleTaskCallback(std::function<arrow::Status
 (unsigned long)>)::{lambda()#1}>::invoke() (this=0x563c30dfbde0) at 
/arrow/cpp/src/arrow/util/functional.h:152
#18 0x00007f94747ae4f5 in arrow::internal::FnOnce<void ()>::operator()() && 
(this=0x7f946eb7b3d0) at /arrow/cpp/src/arrow/util/functional.h:140
#19 0x00007f94747ac593 in arrow::internal::WorkerLoop (state=..., it=...) at 
/arrow/cpp/src/arrow/util/thread_pool.cc:247
#20 0x00007f94747ad4c8 in operator() (__closure=0x563c30ff0df8) at 
/arrow/cpp/src/arrow/util/thread_pool.cc:418
#21 0x00007f94747b4926 in std::__invoke_impl<void, 
arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> 
>(std::__invoke_other, struct {...} &&) (__f=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:60
#22 0x00007f94747b48db in 
std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 >(struct {...} &&) (__fn=...) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/bits/invoke.h:95
#23 0x00007f94747b4888 in 
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x563c30ff0df8) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/thread:264
#24 0x00007f94747b4748 in 
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 > >::operator()(void) (this=0x563c30ff0df8) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/thread:271
#25 0x00007f94747b46ac in 
std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
 > > >::_M_run(void) (this=0x563c30ff0df0) at 
/opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/10.3.0/thread:215
#26 0x00007f9473dd09d4 in std::execute_native_thread_routine (__p=<optimized 
out>) at 
/home/conda/feedstock_root/build_artifacts/gcc_compilers_1647306965841/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:82
#27 0x00007f947335d6db in start_thread (arg=0x7f946eb7d700) at 
pthread_create.c:463
#28 0x00007f9473a3461f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
/build/cpp/src/arrow/compute/exec
{code}

> [C++][CI] Crash in arrow-compute-hash-join-node-test
> ----------------------------------------------------
>
>                 Key: ARROW-15361
>                 URL: https://issues.apache.org/jira/browse/ARROW-15361
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++, Continuous Integration
>            Reporter: Antoine Pitrou
>            Assignee: Weston Pace
>            Priority: Major
>
> This is a sporadic crash, but this time we're lucky at least to have a 
> full-blown traceback for all threads:
> https://github.com/pitrou/arrow/runs/4856592859?check_suite_focus=true#step:6:3099
> {code}
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0  0x00000000000117bb in ?? ()
> [Current thread is 1 (Thread 0x7f66d7b7d700 (LWP 20461))]
> Thread 6 (Thread 0x7f66c7fff700 (LWP 20463)):
> #0  0x00007f66dc0ec065 in futex_abstimed_wait_cancelable (private=<optimized 
> out>, abstime=0x7f66c7ffd4a0, expected=0, futex_word=0x7f66da40a794) at 
> ../sysdeps/unix/sysv/linux/futex-internal.h:205
> #1  __pthread_cond_wait_common (abstime=0x7f66c7ffd4a0, mutex=0x7f66da40a7d8, 
> cond=0x7f66da40a768) at pthread_cond_wait.c:539
> #2  __pthread_cond_timedwait (cond=0x7f66da40a768, mutex=0x7f66da40a7d8, 
> abstime=0x7f66c7ffd4a0) at pthread_cond_wait.c:667
> #3  0x00007f66df325f26 in background_thread_sleep (tsdn=<optimized out>, 
> interval=<optimized out>, info=0x7f66da40a760) at src/background_thread.c:255
> #4  background_work_sleep_once (ind=<optimized out>, info=<optimized out>, 
> tsdn=<optimized out>) at src/background_thread.c:307
> #5  background_work (ind=<optimized out>, tsd=<optimized out>) at 
> src/background_thread.c:497
> #6  background_thread_entry () at src/background_thread.c:522
> #7  0x00007f66dc0e56db in start_thread (arg=0x7f66c7fff700) at 
> pthread_create.c:463
> #8  0x00007f66dc7bc71f in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 5 (Thread 0x7f66da69e0c0 (LWP 20458)):
> #0  0x00007f66dd95b8db in arrow::bit_util::SetBitTo (bits=0x7f66d4e1e380 
> "\367\323\373\335\377\335\377\332\337\347\367\337\033\327\372\375\375\317\274\376\377\375\376\263m\367\356\276\377\377\377\365\377\067\067\377\377\267o\177\377\331\373>\177\276_\277\377\377\337\372\377y\373o\277\001",
>  i=457, bit_is_set=false) at /arrow/cpp/src/arrow/util/bit_util.h:317
> #1  0x00007f66dd95ca4f in arrow::TypedBufferBuilder<bool, void>::UnsafeAppend 
> (this=0x7ffc6aee8e10, value=false) at 
> /arrow/cpp/src/arrow/buffer_builder.h:336
> #2  0x00007f66dee66716 in arrow::compute::internal::(anonymous 
> namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, 
> arrow::BinaryType>::VisitTake<unsigned int, 
> arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<Type>::GenerateOutput() [with Adapter = 
> arrow::compute::internal::(anonymous 
> namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, 
> arrow::BinaryType>::TakeAdapter<unsigned int>; Type = 
> arrow::BinaryType]::<lambda(int64_t)>, arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<Type>::GenerateOutput() [with Adapter = 
> arrow::compute::internal::(anonymous 
> namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, 
> arrow::BinaryType>::TakeAdapter<unsigned int>; Type = 
> arrow::BinaryType]::<lambda()> >(arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>::<lambda(int64_t)> &&, 
> arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>::<lambda()> &&) 
> (this=0x7ffc6aee8dd0, visit_valid=..., visit_null=...) at 
> /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:1292
> #3  0x00007f66dee5b668 in arrow::compute::internal::(anonymous 
> namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, 
> arrow::BinaryType>::TakeAdapter<unsigned 
> int>::Generate<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<Type>::GenerateOutput() [with Adapter = 
> arrow::compute::internal::(anonymous 
> namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, 
> arrow::BinaryType>::TakeAdapter<unsigned int>; Type = 
> arrow::BinaryType]::<lambda(int64_t)>, arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<Type>::GenerateOutput() [with Adapter = 
> arrow::compute::internal::(anonymous 
> namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, 
> arrow::BinaryType>::TakeAdapter<unsigned int>; Type = 
> arrow::BinaryType]::<lambda()> >(arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>::<lambda(int64_t)> &&, 
> arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>::<lambda()> &&) 
> (this=0x7ffc6aee8c70, visit_valid=..., visit_null=...) at 
> /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:1222
> #4  0x00007f66dee4fd3e in arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>::GenerateOutput<arrow::compute::internal::(anonymous
>  namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, 
> arrow::BinaryType>::TakeAdapter<unsigned int> > (this=0x7ffc6aee8dd0) at 
> /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:1535
> #5  0x00007f66dee45a4b in arrow::compute::internal::(anonymous 
> namespace)::Selection<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType>, arrow::BinaryType>::ExecTake 
> (this=0x7ffc6aee8dd0) at 
> /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:1453
> #6  0x00007f66dee37241 in arrow::compute::internal::(anonymous 
> namespace)::TakeExec<arrow::compute::internal::(anonymous 
> namespace)::VarBinaryImpl<arrow::BinaryType> > (ctx=0x7ffc6aee91d0, 
> batch=..., out=0x7ffc6aee9020) at 
> /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:2324
> #7  0x00007f66de3843d8 in std::_Function_handler<arrow::Status 
> (arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, 
> arrow::Datum*), arrow::Status (*)(arrow::compute::KernelContext*, 
> arrow::compute::ExecBatch const&, arrow::Datum*)>::_M_invoke(std::_Any_data 
> const&, arrow::compute::KernelContext*&&, arrow::compute::ExecBatch const&, 
> arrow::Datum*&&) (__functor=..., __args#0=@0x7ffc6aee8f78: 0x7ffc6aee91d0, 
> __args#1=..., __args#2=@0x7ffc6aee8f68: 0x7ffc6aee9020) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/std_function.h:286
> #8  0x00007f66de1b08cf in std::function<arrow::Status 
> (arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, 
> arrow::Datum*)>::operator()(arrow::compute::KernelContext*, 
> arrow::compute::ExecBatch const&, arrow::Datum*) const (this=0x562769ba2768, 
> __args#0=0x7ffc6aee91d0, __args#1=..., __args#2=0x7ffc6aee9020) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/std_function.h:688
> #9  0x00007f66de1ad5d1 in arrow::compute::detail::(anonymous 
> namespace)::VectorExecutor::ExecuteBatch (this=0x562769bdb400, batch=..., 
> listener=0x7ffc6aee9260) at /arrow/cpp/src/arrow/compute/exec.cc:880
> #10 0x00007f66de1acfc6 in arrow::compute::detail::(anonymous 
> namespace)::VectorExecutor::Execute (this=0x562769bdb400, args=..., 
> listener=0x7ffc6aee9260) at /arrow/cpp/src/arrow/compute/exec.cc:846
> #11 0x00007f66de2cdab3 in arrow::compute::Function::Execute 
> (this=0x562769ba19c0, args=..., options=0x7ffc6aee9aa0, ctx=0x7ffc6aee9800) 
> at /arrow/cpp/src/arrow/compute/function.cc:248
> #12 0x00007f66de1af599 in arrow::compute::CallFunction (func_name=..., 
> args=..., options=0x7ffc6aee9aa0, ctx=0x7ffc6aee9800) at 
> /arrow/cpp/src/arrow/compute/exec.cc:1065
> #13 0x00007f66dee21dac in arrow::compute::internal::(anonymous 
> namespace)::TakeAA (values=..., indices=..., options=..., ctx=0x7ffc6aee9800) 
> at /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:1997
> #14 0x00007f66dee23e81 in arrow::compute::internal::(anonymous 
> namespace)::TakeMetaFunction::ExecuteImpl (this=0x562769ba30f0, args=..., 
> options=0x7ffc6aee9aa0, ctx=0x7ffc6aee9800) at 
> /arrow/cpp/src/arrow/compute/kernels/vector_selection.cc:2128
> #15 0x00007f66de2cf3c9 in arrow::compute::MetaFunction::Execute 
> (this=0x562769ba30f0, args=..., options=0x7ffc6aee9aa0, ctx=0x7ffc6aee9800) 
> at /arrow/cpp/src/arrow/compute/function.cc:382
> #16 0x00007f66de1af599 in arrow::compute::CallFunction (func_name=..., 
> args=..., options=0x7ffc6aee9aa0, ctx=0x7ffc6aee9800) at 
> /arrow/cpp/src/arrow/compute/exec.cc:1065
> #17 0x00007f66de1af3fe in arrow::compute::CallFunction (func_name=..., 
> args=..., options=0x7ffc6aee9aa0, ctx=0x0) at 
> /arrow/cpp/src/arrow/compute/exec.cc:1061
> #18 0x00007f66de17af3d in arrow::compute::Take (values=..., filter=..., 
> options=..., ctx=0x0) at /arrow/cpp/src/arrow/compute/api_vector.cc:305
> #19 0x00005627694e0ae5 in arrow::compute::TakeUsingVector 
> (ctx=0x562769c04260, input=..., indices=..., result=0x7ffc6aee9c60) at 
> /arrow/cpp/src/arrow/compute/exec/hash_join_node_test.cc:456
> #20 0x00005627694e2e1e in arrow::compute::GenRandomJoinTables 
> (ctx=0x562769c04260, rng=..., num_rows_l=1140, num_rows_r=973, 
> num_keys_common=263, num_keys_left=341, num_keys_right=401, key_types=..., 
> payload_left_types=..., payload_right_types=..., key_id_l=0x7ffc6aeea090, 
> key_id_r=0x7ffc6aeea0a8, left=0x7ffc6aeea0c0, right=0x7ffc6aeea0d8) at 
> /arrow/cpp/src/arrow/compute/exec/hash_join_node_test.cc:615
> #21 0x00005627694e7c72 in arrow::compute::HashJoin_Random_Test::TestBody 
> (this=0x562769afb1b0) at 
> /arrow/cpp/src/arrow/compute/exec/hash_join_node_test.cc:1032
> #22 0x00007f66e0598c9c in 
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, 
> void> (object=0x562769afb1b0, method=&virtual testing::Test::TestBody(), 
> location=0x7f66e05ad97b "the test body") at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607
> #23 0x00007f66e058fdd2 in 
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> 
> (object=0x562769afb1b0, method=&virtual testing::Test::TestBody(), 
> location=0x7f66e05ad97b "the test body") at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643
> #24 0x00007f66e056ac03 in testing::Test::Run (this=0x562769afb1b0) at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2682
> #25 0x00007f66e056b63b in testing::TestInfo::Run (this=0x562769af7a00) at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2861
> #26 0x00007f66e056c010 in testing::TestSuite::Run (this=0x562769af7b20) at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:3015
> #27 0x00007f66e057c31c in testing::internal::UnitTestImpl::RunAllTests 
> (this=0x562769af7190) at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5855
> #28 0x00007f66e0599ce8 in 
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
>  bool> (object=0x562769af7190, method=(bool 
> (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * 
> const)) 0x7f66e057bed8 <testing::internal::UnitTestImpl::RunAllTests()>, 
> location=0x7f66e05ae468 "auxiliary test code (environments or event 
> listeners)") at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607
> #29 0x00007f66e0591064 in 
> testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
>  bool> (object=0x562769af7190, method=(bool 
> (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * 
> const)) 0x7f66e057bed8 <testing::internal::UnitTestImpl::RunAllTests()>, 
> location=0x7f66e05ae468 "auxiliary test code (environments or event 
> listeners)") at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643
> #30 0x00007f66e057a7b7 in testing::UnitTest::Run (this=0x7f66e05da260 
> <testing::UnitTest::GetInstance()::instance>) at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5438
> #31 0x00007f66e05db919 in RUN_ALL_TESTS () at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/include/gtest/gtest.h:2490
> #32 0x00007f66e05db95c in main (argc=1, argv=0x7ffc6aeea8a8) at 
> /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest_main.cc:52
> #33 0x00007f66dc6bcbf7 in __libc_start_main (main=0x7f66e05db91b <main(int, 
> char**)>, argc=1, argv=0x7ffc6aeea8a8, init=<optimized out>, fini=<optimized 
> out>, rtld_fini=<optimized out>, stack_end=0x7ffc6aeea898) at 
> ../csu/libc-start.c:310
> #34 0x00005627694d4f29 in _start ()
> Thread 4 (Thread 0x7f66d65ff700 (LWP 20462)):
> #0  0x00007f66dc0ec065 in futex_abstimed_wait_cancelable (private=<optimized 
> out>, abstime=0x7f66d65fd4a0, expected=0, futex_word=0x7f66da40a6c0) at 
> ../sysdeps/unix/sysv/linux/futex-internal.h:205
> #1  __pthread_cond_wait_common (abstime=0x7f66d65fd4a0, mutex=0x7f66da40a708, 
> cond=0x7f66da40a698) at pthread_cond_wait.c:539
> #2  __pthread_cond_timedwait (cond=0x7f66da40a698, mutex=0x7f66da40a708, 
> abstime=0x7f66d65fd4a0) at pthread_cond_wait.c:667
> #3  0x00007f66df325f26 in background_thread_sleep (tsdn=<optimized out>, 
> interval=<optimized out>, info=0x7f66da40a690) at src/background_thread.c:255
> #4  background_work_sleep_once (ind=<optimized out>, info=<optimized out>, 
> tsdn=<optimized out>) at src/background_thread.c:307
> #5  background_work (ind=<optimized out>, tsd=<optimized out>) at 
> src/background_thread.c:497
> #6  background_thread_entry () at src/background_thread.c:522
> #7  0x00007f66dc0e56db in start_thread (arg=0x7f66d65ff700) at 
> pthread_create.c:463
> #8  0x00007f66dc7bc71f in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 3 (Thread 0x7f66d8b7e700 (LWP 20460)):
> #0  0x00007f66dc0ebad3 in futex_wait_cancelable (private=<optimized out>, 
> expected=0, futex_word=0x562769be4780) at 
> ../sysdeps/unix/sysv/linux/futex-internal.h:88
> #1  __pthread_cond_wait_common (abstime=0x0, mutex=0x562769be4730, 
> cond=0x562769be4758) at pthread_cond_wait.c:502
> #2  __pthread_cond_wait (cond=0x562769be4758, mutex=0x562769be4730) at 
> pthread_cond_wait.c:655
> #3  0x00007f66dcb544d1 in __gthread_cond_wait (__mutex=<error reading 
> variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, 
> __cond=<optimized out>) at 
> /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/src/c++11/condition_variable.cc:865
> #4  std::__condvar::wait (__m=<error reading variable: 
> dwarf2_find_location_expression: Corrupted DWARF expression.>, 
> this=<optimized out>) at 
> ../../../../../libstdc++-v3/src/c++11/gthr-default.h:155
> #5  std::condition_variable::wait (this=<optimized out>, __lock=...) at 
> ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
> #6  0x00007f66ddf376af in arrow::internal::WorkerLoop (state=..., it=...) at 
> /arrow/cpp/src/arrow/util/thread_pool.cc:195
> #7  0x00007f66ddf38458 in 
> arrow::internal::ThreadPool::<lambda()>::operator()(void) const 
> (__closure=0x562769cd8b98) at /arrow/cpp/src/arrow/util/thread_pool.cc:344
> #8  0x00007f66ddf3ef90 in std::__invoke_impl<void, 
> arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> 
> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) 
> at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:60
> #9  0x00007f66ddf3ef30 in 
> std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:95
> #10 0x00007f66ddf3eece in 
> std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x562769cd8b98) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:244
> #11 0x00007f66ddf3ed8b in 
> std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  > >::operator()(void) (this=0x562769cd8b98) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:251
> #12 0x00007f66ddf3ecdc in 
> std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  > > >::_M_run(void) (this=0x562769cd8b90) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:195
> #13 0x00007f66dcb589d4 in std::execute_native_thread_routine (__p=<optimized 
> out>) at 
> /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:82
> #14 0x00007f66dc0e56db in start_thread (arg=0x7f66d8b7e700) at 
> pthread_create.c:463
> #15 0x00007f66dc7bc71f in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 2 (Thread 0x7f66d9dff700 (LWP 20459)):
> #0  0x00007f66dc0ec065 in futex_abstimed_wait_cancelable (private=<optimized 
> out>, abstime=0x7f66d9dfd4a0, expected=0, futex_word=0x7f66da40a5f4) at 
> ../sysdeps/unix/sysv/linux/futex-internal.h:205
> #1  __pthread_cond_wait_common (abstime=0x7f66d9dfd4a0, mutex=0x7f66da40a638, 
> cond=0x7f66da40a5c8) at pthread_cond_wait.c:539
> #2  __pthread_cond_timedwait (cond=0x7f66da40a5c8, mutex=0x7f66da40a638, 
> abstime=0x7f66d9dfd4a0) at pthread_cond_wait.c:667
> #3  0x00007f66df326656 in background_thread_sleep (tsdn=<optimized out>, 
> interval=<optimized out>, info=<optimized out>) at src/background_thread.c:255
> #4  background_work_sleep_once (ind=0, info=<optimized out>, tsdn=<optimized 
> out>) at src/background_thread.c:307
> #5  background_thread0_work (tsd=<optimized out>) at 
> src/background_thread.c:452
> #6  background_work (ind=<optimized out>, tsd=<optimized out>) at 
> src/background_thread.c:490
> #7  background_thread_entry () at src/background_thread.c:522
> #8  0x00007f66dc0e56db in start_thread (arg=0x7f66d9dff700) at 
> pthread_create.c:463
> #9  0x00007f66dc7bc71f in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 1 (Thread 0x7f66d7b7d700 (LWP 20461)):
> #0  0x00000000000117bb in ?? ()
> #1  0x00007f66de2c3083 in arrow::compute::TaskSchedulerImpl::ScheduleMore 
> (this=0x7f66c801ee20, thread_id=0, num_tasks_finished=0) at 
> /arrow/cpp/src/arrow/compute/exec/task_util.cc:326
> #2  0x00007f66de2c1eec in arrow::compute::TaskSchedulerImpl::StartTaskGroup 
> (this=0x7f66c801ee20, thread_id=0, group_id=1, total_num_tasks=0) at 
> /arrow/cpp/src/arrow/compute/exec/task_util.cc:153
> #3  0x00007f66de2213b4 in 
> arrow::compute::HashJoinBasicImpl::ProbeQueuedBatches (this=0x7f66d004acb0, 
> thread_index=0) at /arrow/cpp/src/arrow/compute/exec/hash_join.cc:716
> #4  0x00007f66de220b9d in 
> arrow::compute::HashJoinBasicImpl::BuildHashTable_on_finished 
> (this=0x7f66d004acb0, thread_index=0) at 
> /arrow/cpp/src/arrow/compute/exec/hash_join.cc:653
> #5  0x00007f66de220d3d in 
> arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
> long)#2}::operator()(unsigned long) const (__closure=0x562769d5d7c0, 
> thread_index=0) at /arrow/cpp/src/arrow/compute/exec/hash_join.cc:664
> #6  0x00007f66de225b76 in std::_Function_handler<arrow::Status (unsigned 
> long), 
> arrow::compute::HashJoinBasicImpl::RegisterBuildHashTable()::{lambda(unsigned 
> long)#2}>::_M_invoke(std::_Any_data const&, unsigned long&&) (__functor=..., 
> __args#0=@0x7f66d7b7b138: 0) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/std_function.h:286
> #7  0x00007f66de24e28a in std::function<arrow::Status (unsigned 
> long)>::operator()(unsigned long) const (this=0x562769d5d7c0, __args#0=0) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/std_function.h:688
> #8  0x00007f66de2c25e1 in 
> arrow::compute::TaskSchedulerImpl::OnTaskGroupFinished (this=0x7f66c801ee20, 
> thread_id=0, group_id=0, all_task_groups_finished=0x7f66d7b7b230) at 
> /arrow/cpp/src/arrow/compute/exec/task_util.cc:244
> #9  0x00007f66de2c2ed4 in 
> arrow::compute::TaskSchedulerImpl::<lambda(size_t)>::operator()(size_t) const 
> (__closure=0x562769bdb540, thread_id=0) at 
> /arrow/cpp/src/arrow/compute/exec/task_util.cc:349
> #10 0x00007f66de2c4acf in std::_Function_handler<arrow::Status(long unsigned 
> int), arrow::compute::TaskSchedulerImpl::ScheduleMore(size_t, 
> int)::<lambda(size_t)> >::_M_invoke(const std::_Any_data &, unsigned long &&) 
> (__functor=..., __args#0=@0x7f66d7b7b2b8: 0) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/std_function.h:286
> #11 0x00007f66de24e28a in std::function<arrow::Status (unsigned 
> long)>::operator()(unsigned long) const (this=0x562769d65ed0, __args#0=0) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/std_function.h:688
> #12 0x00007f66de24b9f8 in 
> arrow::compute::HashJoinNode::ScheduleTaskCallback(std::function<arrow::Status
>  (unsigned long)>)::{lambda()#1}::operator()() const 
> (__closure=0x562769d65ec8) at 
> /arrow/cpp/src/arrow/compute/exec/hash_join_node.cc:590
> #13 0x00007f66de25cda7 in arrow::internal::FnOnce<void 
> ()>::FnImpl<arrow::compute::HashJoinNode::ScheduleTaskCallback(std::function<arrow::Status
>  (unsigned long)>)::{lambda()#1}>::invoke() (this=0x562769d65ec0) at 
> /arrow/cpp/src/arrow/util/functional.h:152
> #14 0x00007f66ddf395d6 in arrow::internal::FnOnce<void ()>::operator()() && 
> (this=0x7f66d7b7b3f0) at /arrow/cpp/src/arrow/util/functional.h:140
> #15 0x00007f66ddf3757f in arrow::internal::WorkerLoop (state=..., it=...) at 
> /arrow/cpp/src/arrow/util/thread_pool.cc:177
> #16 0x00007f66ddf38458 in 
> arrow::internal::ThreadPool::<lambda()>::operator()(void) const 
> (__closure=0x562769c445b8) at /arrow/cpp/src/arrow/util/thread_pool.cc:344
> #17 0x00007f66ddf3ef90 in std::__invoke_impl<void, 
> arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> 
> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) 
> at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:60
> #18 0x00007f66ddf3ef30 in 
> std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:95
> #19 0x00007f66ddf3eece in 
> std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x562769c445b8) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:244
> #20 0x00007f66ddf3ed8b in 
> std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  > >::operator()(void) (this=0x562769c445b8) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:251
> #21 0x00007f66ddf3ecdc in 
> std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
>  > > >::_M_run(void) (this=0x562769c445b0) at 
> /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:195
> #22 0x00007f66dcb589d4 in std::execute_native_thread_routine (__p=<optimized 
> out>) at 
> /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:82
> #23 0x00007f66dc0e56db in start_thread (arg=0x7f66d7b7d700) at 
> pthread_create.c:463
> #24 0x00007f66dc7bc71f in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> /build/cpp/src/arrow/compute/exec
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to