Hello,
I am seeing a deadlock when destructing an ObjectOutputStream. I have
attached the stack trace.
I did some debugging and found that the issue seems to be that the mutex in
question is already held by this thread (I checked the __owner field in the
pthread_mutex_t which points to the hanging thread)
Unfortunately the stack trace doesn’t show exactly which mutex it is trying
to lock. I wonder if someone more familiar with the IO code has some ideas
what might be the issue and where to dig deeper?
Appreciate the help,
Li
Thread 39 (Thread 0xe2199eee700 (LWP 1392) "python3.10"):
#0 __lll_lock_wait (futex=futex@entry=0xe2158016c60, private=0) at
lowlevellock.c:52
#1 0x00000e223fe14843 in __GI___pthread_mutex_lock (mutex=0xe2158016c60) at
../nptl/pthread_mutex_lock.c:80
#2 0x00000e223a4c7be3 in virtual thunk to arrow::fs::(anonymous
namespace)::ObjectOutputStream::Close() () at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/status.h:140
#3 0x00000e223993eaef in arrow::io::internal::CloseFromDestructor
(file=file@entry=0xe2158005c80) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/io/interfaces.cc:284
#4 0x00000e223a4b9250 in arrow::fs::(anonymous
namespace)::ObjectOutputStream::~ObjectOutputStream (this=0xe2158005b40,
__in_chrg=<optimized out>, __vtt_parm=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/filesystem/s3fs.cc:1398
#5 __gnu_cxx::new_allocator<arrow::fs::(anonymous
namespace)::ObjectOutputStream>::destroy<arrow::fs::(anonymous
namespace)::ObjectOutputStream> (__p=0xe2158005b40, this=0xe2158005b40) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/ext/new_allocator.h:168
#6 std::allocator_traits<std::allocator<arrow::fs::(anonymous
namespace)::ObjectOutputStream> >::destroy<arrow::fs::(anonymous
namespace)::ObjectOutputStream> (__p=0xe2158005b40, __a=...) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/alloc_traits.h:535
#7 std::_Sp_counted_ptr_inplace<arrow::fs::(anonymous
namespace)::ObjectOutputStream, std::allocator<arrow::fs::(anonymous
namespace)::ObjectOutputStream>, (__gnu_cxx::_Lock_policy)2>::_M_dispose
(this=0xe2158005b30) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:528
#8 0x00000e223c41ddda in
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release
(this=0xe2158005b30) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:168
#9 0x00000e223bbb62a8 in
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count
(this=0xe21580f2b40, __in_chrg=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:705
#10 std::__shared_ptr<arrow::io::OutputStream,
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0xe21580f2b38,
__in_chrg=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:1154
#11 std::shared_ptr<arrow::io::OutputStream>::~shared_ptr (this=0xe21580f2b38,
__in_chrg=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr.h:122
#12 arrow::dataset::FileWriter::~FileWriter (this=0xe21580f2b10,
__in_chrg=<optimized out>) at
/tmp/build/ts/arrow/dataset/c/src/arrow/dataset/file_base.h:378
#13 arrow::dataset::ParquetFileWriter::~ParquetFileWriter (this=0xe21580f2b10,
__in_chrg=<optimized out>) at
/tmp/build/ts/arrow/dataset/c/src/arrow/dataset/file_parquet.h:282
#14 arrow::dataset::ParquetFileWriter::~ParquetFileWriter (this=0xe21580f2b10,
__in_chrg=<optimized out>) at
/tmp/build/ts/arrow/dataset/c/src/arrow/dataset/file_parquet.h:282
#15 0x00000e223c41ddda in
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release
(this=0xe21580b9a10) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:168
#16 0x00000e223bae3f1c in
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count
(this=0x5b665b834690, __in_chrg=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:705
#17 std::__shared_ptr<arrow::dataset::FileWriter,
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x5b665b834688,
__in_chrg=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:1154
#18 std::shared_ptr<arrow::dataset::FileWriter>::~shared_ptr
(this=0x5b665b834688, __in_chrg=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr.h:122
#19 arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::~DatasetWriterFileQueue
(this=0x5b665b834670, __in_chrg=<optimized out>) at
/tmp/build/ts/arrow/dataset/c/src/arrow/dataset/dataset_writer.cc:140
#20 std::default_delete<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue>::operator() (__ptr=0x5b665b834670,
this=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/unique_ptr.h:85
#21 std::unique_ptr<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue,
std::default_delete<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue> >::~unique_ptr (this=0x5b665b833800,
__in_chrg=<optimized out>) at
/tmp/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/unique_ptr.h:361
#22 ~<lambda> (this=0x5b665b8337f8, __in_chrg=<optimized out>) at
/tmp/build/ts/arrow/dataset/c/src/arrow/dataset/dataset_writer.cc:364
#23
arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterDirectoryQueue::OpenFileQueue(const
string&)::<lambda()> >::~FnImpl (this=0x5b665b8337f0, __in_chrg=<optimized
out>) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/functional.h:150
#24
arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterDirectoryQueue::OpenFileQueue(const
string&)::<lambda()> >::~FnImpl(void) (this=0x5b665b8337f0,
__in_chrg=<optimized out>) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/functional.h:150
#25 0x00000e223995cd6e in
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release
(this=0x5b665b834970) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:168
#26 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count
(this=<optimized out>, __in_chrg=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:705
#27 std::__shared_ptr<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::State,
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=<optimized out>,
__in_chrg=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr_base.h:1154
#28 std::shared_ptr<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::State>::~shared_ptr (this=<optimized out>,
__in_chrg=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/shared_ptr.h:122
#29 ~<lambda> (this=<optimized out>, __in_chrg=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/async_util.cc:428
#30
arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task>)::WrapperTask::operator()()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task>)::WrapperTask::operator()()::<lambda()>
> >::operator() (result=..., this=0xe21800fa338) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.h:549
#31
arrow::Future<arrow::internal::Empty>::WrapResultOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task>)::WrapperTask::operator()()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task>)::WrapperTask::operator()()::<lambda()>
> > >::operator() (impl=..., this=0xe21800fa338) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.h:442
#32 arrow::internal::FnOnce<void(const
arrow::FutureImpl&)>::FnImpl<arrow::Future<>::WrapResultOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task>)::WrapperTask::operator()()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::util::(anonymous
namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task>)::WrapperTask::operator()()::<lambda()>
> > > >::invoke(const arrow::FutureImpl &) (this=0xe21800fa330, a#0=...) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/functional.h:152
#33 0x00000e22399a02a0 in arrow::internal::FnOnce<void (arrow::FutureImpl
const&)>::operator()(arrow::FutureImpl const&) && (a#0=..., this=0xe2180032070)
at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/unique_ptr.h:173
#34 arrow::ConcreteFutureImpl::RunOrScheduleCallback
(self=std::shared_ptr<arrow::FutureImpl> (use count 2, weak count 1) = {...},
callback_record=..., in_add_callback=in_add_callback@entry=false) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:110
#35 0x00000e22399a05dd in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed
(this=<optimized out>, state=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:148
#36 0x00000e223999d83a in arrow::ConcreteFutureImpl::DoMarkFailed
(this=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:41
#37 0x00000e223bedc0a5 in arrow::Future<arrow::internal::Empty>::DoMarkFinished
(res=..., this=0xe2199eed210) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:660
#38 arrow::Future<arrow::internal::Empty>::MarkFinished<arrow::internal::Empty,
void> (this=0xe2199eed210, s=...) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:409
#39 0x00000e223bae3395 in
arrow::detail::ContinueFuture::operator()<arrow::Future<>::PassthruOnFailure<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::DoFinish()::<lambda()> >, const
arrow::Status&> (this=<synthetic pointer>, f=..., next=...) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:167
#40
arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::DoFinish()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::DoFinish()::<lambda()> > >::operator()
(result=..., this=<optimized out>) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:550
#41
arrow::Future<arrow::internal::Empty>::WrapResultOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::DoFinish()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::DoFinish()::<lambda()> > > >::operator()
(impl=..., this=<optimized out>) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:442
#42 arrow::internal::FnOnce<void(const
arrow::FutureImpl&)>::FnImpl<arrow::Future<>::WrapResultOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::DoFinish()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::dataset::internal::(anonymous
namespace)::DatasetWriterFileQueue::DoFinish()::<lambda()> > > >
>::invoke(const arrow::FutureImpl &) (this=<optimized out>, a#0=...) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/functional.h:152
#43 0x00000e22399a02a0 in arrow::internal::FnOnce<void (arrow::FutureImpl
const&)>::operator()(arrow::FutureImpl const&) && (a#0=..., this=0xe21800fa0d0)
at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/unique_ptr.h:173
#44 arrow::ConcreteFutureImpl::RunOrScheduleCallback
(self=std::shared_ptr<arrow::FutureImpl> (use count 2, weak count 1) = {...},
callback_record=..., in_add_callback=in_add_callback@entry=false) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:110
#45 0x00000e22399a05dd in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed
(this=<optimized out>, state=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:148
#46 0x00000e223999d83a in arrow::ConcreteFutureImpl::DoMarkFailed
(this=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:41
#47 0x00000e223bedc0a5 in arrow::Future<arrow::internal::Empty>::DoMarkFinished
(res=..., this=0xe218010a448) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:660
#48 arrow::Future<arrow::internal::Empty>::MarkFinished<arrow::internal::Empty,
void> (this=0xe218010a448, s=...) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:409
#49 0x00000e223bae8492 in
arrow::detail::MarkNextFinished<arrow::Future<arrow::internal::Empty>,
arrow::Future<arrow::internal::Empty>, true, true>::operator()(arrow::Status
const&) && (status=..., this=0xe218010a448) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:93
#50
arrow::Future<arrow::internal::Empty>::WrapStatusyOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<arrow::internal::Empty>,
arrow::Future<arrow::internal::Empty>, true, true>
>::operator()(arrow::FutureImpl const&) && (impl=..., this=0xe218010a448) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:455
#51 arrow::internal::FnOnce<void (arrow::FutureImpl
const&)>::FnImpl<arrow::Future<arrow::internal::Empty>::WrapStatusyOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<arrow::internal::Empty>,
arrow::Future<arrow::internal::Empty>, true, true> >
>::invoke(arrow::FutureImpl const&) (this=0xe218010a440, a#0=...) at
/tmp/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/functional.h:152
#52 0x00000e22399a02a0 in arrow::internal::FnOnce<void (arrow::FutureImpl
const&)>::operator()(arrow::FutureImpl const&) && (a#0=..., this=0xe218010b230)
at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/unique_ptr.h:173
#53 arrow::ConcreteFutureImpl::RunOrScheduleCallback
(self=std::shared_ptr<arrow::FutureImpl> (use count 2, weak count 1) = {...},
callback_record=..., in_add_callback=in_add_callback@entry=false) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:110
#54 0x00000e22399a05dd in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed
(this=<optimized out>, state=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:148
#55 0x00000e223999d83a in arrow::ConcreteFutureImpl::DoMarkFailed
(this=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:41
#56 0x00000e223bedc0a5 in arrow::Future<arrow::internal::Empty>::DoMarkFinished
(res=..., this=0xe2199eed610) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:660
#57 arrow::Future<arrow::internal::Empty>::MarkFinished<arrow::internal::Empty,
void> (this=0xe2199eed610, s=...) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:409
#58 0x00000e223a4c7a61 in
arrow::detail::ContinueFuture::operator()<arrow::Future<>::PassthruOnFailure<arrow::fs::(anonymous
namespace)::ObjectOutputStream::CloseAsync()::<lambda()> >, const
arrow::Status&> (this=<synthetic pointer>, f=..., next=...) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.h:167
#59 arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::fs::(anonymous
namespace)::ObjectOutputStream::CloseAsync()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::fs::(anonymous
namespace)::ObjectOutputStream::CloseAsync()::<lambda()> > >::operator()
(result=..., this=0xe218010a038) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.h:550
#60
arrow::Future<arrow::internal::Empty>::WrapResultOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::fs::(anonymous
namespace)::ObjectOutputStream::CloseAsync()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::fs::(anonymous
namespace)::ObjectOutputStream::CloseAsync()::<lambda()> > > >::operator()
(impl=..., this=0xe218010a038) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.h:442
#61 arrow::internal::FnOnce<void(const
arrow::FutureImpl&)>::FnImpl<arrow::Future<>::WrapResultOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::fs::(anonymous
namespace)::ObjectOutputStream::CloseAsync()::<lambda()>,
arrow::Future<>::PassthruOnFailure<arrow::fs::(anonymous
namespace)::ObjectOutputStream::CloseAsync()::<lambda()> > > > >::invoke(const
arrow::FutureImpl &) (this=0xe218010a030, a#0=...) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/functional.h:152
#62 0x00000e22399a02a0 in arrow::internal::FnOnce<void (arrow::FutureImpl
const&)>::operator()(arrow::FutureImpl const&) && (a#0=..., this=0xe218010a810)
at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/unique_ptr.h:173
#63 arrow::ConcreteFutureImpl::RunOrScheduleCallback
(self=std::shared_ptr<arrow::FutureImpl> (use count 2, weak count 1) = {...},
callback_record=..., in_add_callback=in_add_callback@entry=false) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:110
#64 0x00000e22399a05dd in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed
(this=<optimized out>, state=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:148
#65 0x00000e223999d83a in arrow::ConcreteFutureImpl::DoMarkFailed
(this=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.cc:41
#66 0x00000e223bedc0a5 in arrow::Future<arrow::internal::Empty>::DoMarkFinished
(res=..., this=0xe2158016cb0) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:660
#67 arrow::Future<arrow::internal::Empty>::MarkFinished<arrow::internal::Empty,
void> (this=0xe2158016cb0, s=...) at
/build/build/ext/public/apache/arrow/15/0/0/dist/include/arrow/util/future.h:409
#68 0x00000e223a4ba9a3 in arrow::fs::(anonymous
namespace)::ObjectOutputStream::HandleUploadOutcome (result=..., req=...,
part_number=<optimized out>, state=...) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/filesystem/s3fs.cc:1687
#69 operator() (__closure=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/filesystem/s3fs.cc:1660
#70 0x00000e223a4babdc in
arrow::detail::ContinueFuture::operator()<arrow::fs::(anonymous
namespace)::ObjectOutputStream::UploadPart(void const*, int64_t,
std::shared_ptr<arrow::Buffer>)::<lambda()>&> (this=<optimized out>, f=...,
next=...) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/future.h:150
#71 std::__invoke_impl<void, arrow::detail::ContinueFuture&,
arrow::Future<arrow::internal::Empty>&, arrow::fs::(anonymous
namespace)::ObjectOutputStream::UploadPart(void const*, int64_t,
std::shared_ptr<arrow::Buffer>)::<lambda()>&> (__f=...) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/invoke.h:61
#72 std::__invoke<arrow::detail::ContinueFuture&,
arrow::Future<arrow::internal::Empty>&, arrow::fs::(anonymous
namespace)::ObjectOutputStream::UploadPart(void const*, int64_t,
std::shared_ptr<arrow::Buffer>)::<lambda()>&> (__fn=...) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/invoke.h:96
#73
std::_Bind<arrow::detail::ContinueFuture(arrow::Future<arrow::internal::Empty>,
arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadPart(void const*,
int64_t, std::shared_ptr<arrow::Buffer>)::<lambda()>)>::__call<void, 0, 1>
(__args=..., this=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/functional:420
#74
std::_Bind<arrow::detail::ContinueFuture(arrow::Future<arrow::internal::Empty>,
arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadPart(void const*,
int64_t, std::shared_ptr<arrow::Buffer>)::<lambda()>)>::operator()<>
(this=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/functional:503
#75
arrow::internal::FnOnce<void()>::FnImpl<std::_Bind<arrow::detail::ContinueFuture(arrow::Future<arrow::internal::Empty>,
arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadPart(void const*,
int64_t, std::shared_ptr<arrow::Buffer>)::<lambda()>)> >::invoke(void)
(this=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/functional.h:152
#76 0x00000e22399cfbec in arrow::internal::FnOnce<void ()>::operator()() &&
(this=0xe2199eede80) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/unique_ptr.h:173
#77 arrow::internal::WorkerLoop (it={_M_id = {_M_thread = 15537479280384}},
state=...) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/thread_pool.cc:457
#78 operator() (__closure=<optimized out>) at
/build/build/ext/public/apache/arrow/15/0/0/apache-arrow/cpp/src/arrow/util/thread_pool.cc:618
#79 std::__invoke_impl<void,
arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > (__f=...)
at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/invoke.h:61
#80
std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
> (__fn=...) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/invoke.h:96
#81
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
> >::_M_invoke<0> (this=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/std_thread.h:253
#82
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
> >::operator() (this=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/std_thread.h:260
#83
std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()>
> > >::_M_run(void) (this=<optimized out>) at
/build/build/ext/public/gpl3/gnu/gcc/11/dist/include/c++/11.3.0/bits/std_thread.h:211
#84 0x00000e2238ee74c4 in std::execute_native_thread_routine
(__p=0x5b665d38c7b0) at
/build/build/ext/public/gpl3/gnu/gcc/11/build/extract/gcc-11.3.0/libstdc++-v3/src/c++11/thread.cc:82
#85 0x00000e223fe11ea7 in start_thread (arg=<optimized out>) at
pthread_create.c:477
#86 0x00000e223ff27a6f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95