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


Reply via email to