lidavidm edited a comment on pull request #12099: URL: https://github.com/apache/arrow/pull/12099#issuecomment-1007667064
Surprisingly it is the I/O thread pool: ``` (gdb) info thread Id Target Id Frame * 1 Thread 0x7f8856a04740 (LWP 27248) "python" 0x00007f88565f5ad3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5622ee0e97e8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 ...snip... 29 Thread 0x7f879e7fc700 (LWP 27276) "Io-7" 0x00007f88565f5ad3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f87900051e0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 30 Thread 0x7f879d3ff700 (LWP 27277) "jemalloc_bg_thd" 0x00007f88565f5ad3 in futex_wait_cancelable ( private=<optimized out>, expected=0, futex_word=0x7f87cd40a794) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 31 Thread 0x7f878ffff700 (LWP 27278) "jemalloc_bg_thd" 0x00007f88565f5ad3 in futex_wait_cancelable ( private=<optimized out>, expected=0, futex_word=0x7f87cd40a864) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 (gdb) t 29 [Switching to thread 29 (Thread 0x7f879e7fc700 (LWP 27276))] #0 0x00007f88565f5ad3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f87900051e0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 88 in ../sysdeps/unix/sysv/linux/futex-internal.h (gdb) bt (gdb) bt #0 0x00007f88565f5ad3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f87900051e0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 #1 __pthread_cond_wait_common (abstime=0x0, mutex=0x7f8790005190, cond=0x7f87900051b8) at pthread_cond_wait.c:502 #2 __pthread_cond_wait (cond=0x7f87900051b8, mutex=0x7f8790005190) at pthread_cond_wait.c:655 #3 0x00007f87cdd374ad 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_1628138005912/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 0x00007f87d1420c11 in std::condition_variable::wait<arrow::fs::(anonymous namespace)::ObjectOutputStream::Flush()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::fs::(anonymous namespace)::ObjectOutputStream::Flush()::{lambda()#1}) ( this=0x7f87900051b8, __lock=..., __p=...) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/condition_variable:99 #7 0x00007f87d141ba1e in arrow::fs::(anonymous namespace)::ObjectOutputStream::Flush (this=0x7f879000add0) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/filesystem/s3fs.cc:1301 #8 0x00007f87d141bfe0 in arrow::fs::(anonymous namespace)::ObjectOutputStream::Close (this=0x7f879000add0) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/filesystem/s3fs.cc:1218 #9 0x00007f87d141c66d in virtual thunk to arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() () at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/hashtable.h:492 #10 0x00007f87c7d7d907 in arrow::dataset::FileWriter::Finish (this=0x7f8788007d80) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/dataset/file_base.cc:322 #11 0x00007f87c7d59040 in arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoFinish ( this=0x7f87b000b5f0) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/dataset/dataset_writer.cc:221 #12 0x00007f87c7d58ee6 in arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoDestroy()::{lambda()#1}::operator()() const (this=0x7f87b00088c8) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/dataset/dataset_writer.cc:196 #13 0x00007f87c7d58e80 in arrow::detail::ContinueFuture::operator()<arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoDestroy()::{lambda()#1}, , arrow::Status, arrow::Future<arrow::internal::Empty> > ( this=0x7f879e7fb268, next=..., f=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:148 #14 0x00007f87c7d58d42 in arrow::detail::ContinueFuture::IgnoringArgsIf<arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoDestroy()::{lambda()#1}, arrow::Future<arrow::internal::Empty>, arrow::internal const&>(std::integral_constant<bool, true>, arrow::Future<arrow::internal::Empty>&&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoDestroy()::{lambda()#1}&&, arrow::internal const&) const (this=0x7f879e7fb268, next=..., f=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:186 #15 0x00007f87c7d58c3d in arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoDestroy()::{lambda()#1}, arrow::Future<arrow::internal::Empty>::PassthruOnFailure<{lambda()#1}> >::operator()(arrow::Result<arrow::internal::Empty> const&) && (this=0x7f87b00088c8, result=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:599 #16 0x00007f87c7d58bb2 in arrow::Future<arrow::internal::Empty>::WrapResultyOnComplete::Callback<arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoDestroy()::{lambda()#1}, arrow::Future<arrow::internal::Empty>::PassthruOnFailure<{lambda()#1}> > >::operator()(arrow::FutureImpl const&) && (this=0x7f87b00088c8, impl=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:496 #17 0x00007f87c7d58b76 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::FnImpl<arrow::Future<arrow::internal::Empty>::WrapResultyOnComplete::Callback<arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DoDestroy()::{lambda()#1}, arrow::Future<arrow::internal::Empty>::PassthruOnFailure<{lambda()#1}> > > >::invoke(arrow::FutureImpl const&) (this=0x7f87b00088c0, a=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/functional.h:152 #18 0x00007f87d023220f in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && (this=0x7f87b00065e0, a=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/functional.h:140 #19 0x00007f87d0231b61 in arrow::ConcreteFutureImpl::RunOrScheduleCallback (self=..., callback_record=..., in_add_callback=false) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:298 #20 0x00007f87d023160f in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed (this=0x7f87b000ba60, state=arrow::FutureState::SUCCESS) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:327 #21 0x00007f87d022f9ca in arrow::ConcreteFutureImpl::DoMarkFinished (this=0x7f87b000ba60) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:231 #22 0x00007f87d022cc9d in arrow::FutureImpl::MarkFinished (this=0x7f87b000ba60) ---Type <return> to continue, or q <return> to quit--- at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:383 #23 0x00007f87d01ce812 in arrow::Future<arrow::internal::Empty>::DoMarkFinished (this=0x7f87b000b688, res=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:712 #24 0x00007f87d01ccfa4 in arrow::Future<arrow::internal::Empty>::MarkFinished<arrow::internal::Empty, void> ( this=0x7f87b000b688, s=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:463 #25 0x00007f87d01cb4ed in arrow::util::SerializedAsyncTaskGroup::ConsumeAsMuchAsPossibleUnlocked (this=0x7f87b000b688, guard=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/async_util.cc:143 #26 0x00007f87d01cc9c0 in arrow::util::SerializedAsyncTaskGroup::TryDrainUnlocked()::$_2::operator()() const::{lambda(arrow::Status const&)#1}::operator()(arrow::Status const&) const (this=0x7f8788009c38, st=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/async_util.cc:164 #27 0x00007f87d01cc92a in arrow::Future<arrow::internal::Empty>::WrapStatusyOnComplete::Callback<arrow::util::SerializedAsyncTaskGroup::TryDrainUnlocked()::$_2::operator()() const::{lambda(arrow::Status const&)#1}>::operator()(arrow::FutureImpl const&) && (this=0x7f8788009c38, impl=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:509 #28 0x00007f87d01cc8e6 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::FnImpl<arrow::Future<arrow::internal::Empty>::WrapStatusyOnComplete::Callback<arrow::util::SerializedAsyncTaskGroup::TryDrainUnlocked()::$_2::operator()() const::{lambda(arrow::Status const&)#1}> >::invoke(arrow::FutureImpl const&) (this=0x7f8788009c30, a=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/functional.h:152 #29 0x00007f87d023220f in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && (this=0x7f8788002610, a=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/functional.h:140 #30 0x00007f87d0231b61 in arrow::ConcreteFutureImpl::RunOrScheduleCallback (self=..., callback_record=..., in_add_callback=false) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:298 #31 0x00007f87d023160f in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed (this=0x7f8794019890, state=arrow::FutureState::SUCCESS) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:327 #32 0x00007f87d022f9ca in arrow::ConcreteFutureImpl::DoMarkFinished (this=0x7f8794019890) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:231 #33 0x00007f87d022cc9d in arrow::FutureImpl::MarkFinished (this=0x7f8794019890) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.cc:383 #34 0x00007f87d01ce812 in arrow::Future<arrow::internal::Empty>::DoMarkFinished (this=0x7f879e7fbac0, res=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:712 #35 0x00007f87d01ccfa4 in arrow::Future<arrow::internal::Empty>::MarkFinished<arrow::internal::Empty, void> ( this=0x7f879e7fbac0, s=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:463 #36 0x00007f87c7d5823d in _ZNK5arrow6detail14ContinueFutureclIRZNS_7dataset8internal12_GLOBAL__N_122DatasetWriterFileQueue9WriteNextESt10shared_ptrINS_11RecordBatchEEE9WriteTaskJENS_6StatusENS_6FutureINS_8internal5EmptyEEEEENSt9enable_ifIXaaaantsr3std7is_voidIT1_EE5valuentsr9is_futureISI_EE5valueoontsrT2_8is_emptysr3std7is_sameISI_SC_EE5valueEvE4typeESJ_OT_DpOT0_ (this=0x7f8788003fe8, next=..., f=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/future.h:148 #37 0x00007f87c7d581b3 in std::__invoke_impl<void, arrow::detail::ContinueFuture&, arrow::Future<arrow::internal::Empty>&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::WriteNext(std::shared_ptr<arrow::RecordBatch>)::WriteTask&>(std::__invoke_other, arrow::detail::ContinueFuture&, arrow::Future<arrow::internal::Empty>&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::WriteNext(std::shared_ptr<arrow::RecordBatch>)::WriteTask&) ( __f=..., __args=..., __args=...) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:60 #38 0x00007f87c7d580e7 in std::__invoke<arrow::detail::ContinueFuture&, arrow::Future<arrow::internal::Empty>&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::WriteNext(std::shared_ptr<arrow::RecordBatch>)::WriteTask&>(arrow::detail::ContinueFuture&, arrow::Future<arrow::internal::Empty>&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::WriteNext(std::shared_ptr<arrow::RecordBatch>)::WriteTask&) (__fn=..., __args=..., __args=...) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:95 #39 0x00007f87c7d58092 in std::_Bind<arrow::detail::ContinueFuture (arrow::Future<arrow::internal::Empty>, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::WriteNext(std::shared_ptr<arrow::RecordBatch>)::WriteTask)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) (this=0x7f8788003fe8, __args=...) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/functional:467 #40 0x00007f87c7d58026 in std::_Bind<arrow::detail::ContinueFuture (arrow::Future<arrow::internal::Empty>, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::WriteNext(std::shared_ptr<arrow::RecordBatch>)::WriteTask)>::operator()<, void>() (this=0x7f8788003fe8) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/functional:549 #41 0x00007f87c7d57ff1 in arrow::internal::FnOnce<void ()>::FnImpl<std::_Bind<arrow::detail::ContinueFuture (arrow::Future<arrow::internal::Empty>, arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::WriteNext(std::shared_ptr<arrow::RecordBatch>)::WriteTask)> >::invoke() (this=0x7f8788003fe0) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/functional.h:152 #42 0x00007f87d027e85a in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7f879e7fbd10) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/functional.h:140 ---Type <return> to continue, or q <return> to quit--- #43 0x00007f87d027e03f in arrow::internal::WorkerLoop (state=..., it=...) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/thread_pool.cc:185 #44 0x00007f87d027dce3 in arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3::operator()() const ( this=0x7f87a0011578) at /home/lidavidm/Code/upstream/arrow-15265/cpp/src/arrow/util/thread_pool.cc:363 #45 0x00007f87d027dc6d in _ZSt13__invoke_implIvZN5arrow8internal10ThreadPool21LaunchWorkersUnlockedEiE3$_3JEET_St14__invoke_otherOT0_DpOT1_ (__f=...) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:60 #46 0x00007f87d027dbfd in _ZSt8__invokeIZN5arrow8internal10ThreadPool21LaunchWorkersUnlockedEiE3$_3JEENSt15__invoke_resultIT_JDpT0_EE4typeEOS5_DpOS6_ (__fn=...) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:95 #47 0x00007f87d027dbd5 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3> >::_M_invoke<0ul> (this=0x7f87a0011578) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/thread:234 #48 0x00007f87d027dba5 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3> >::operator()() (this=0x7f87a0011578) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/thread:243 #49 0x00007f87d027da39 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3> > >::_M_run() (this=0x7f87a0011570) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/thread:186 #50 0x00007f87cdd3b9b0 in std::execute_native_thread_routine (__p=<optimized out>) at /home/conda/feedstock_root/build_artifacts/gcc_compilers_1628138005912/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:82 #51 0x00007f88565ef6db in start_thread (arg=0x7f879e7fc700) at pthread_create.c:463 #52 0x00007f885596b71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org