Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[R] head() hangs on CSV datasets > 600MB #18935

Closed
asfimport opened this issue Nov 10, 2021 · 9 comments
Closed

[R] head() hangs on CSV datasets > 600MB #18935

asfimport opened this issue Nov 10, 2021 · 9 comments

Comments

@asfimport
Copy link

I'm calling head() on a CSV dataset containing CSV files.  I'm doing this as I want to preview my dataset before I try to do anything with it that's going to be more expensive computationally.

library(arrow)
library(dplyr)
open_dataset("../../data/nyc-raw/", format = "csv") %>%
  head(1) %>%
  collect()

I have experimented with different combinations of files in the dataset folder, and it seems to work fine when my total file size is <~600Mb but hang if it's above that. This might not even be what that actual issue is but I'm struggling to narrow it down beyond add extra files to the equation.

I've tried running with with the C++ debugger attached, but again, it just hangs.

The files I'm using are the 2020-2021 Yellow Taxi trip records available from: https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page

A bit of investigation has shown me that I can load in different subsets of files in fine, but when using all of them, the session hangs.

Reporter: Nicola Crane / @thisisnic
Assignee: Nicola Crane / @thisisnic

PRs and other links:

Note: This issue was originally created as ARROW-14653. Please see the migration documentation for further details.

@asfimport
Copy link
Author

Neal Richardson / @nealrichardson:
cc @westonpace, I suspect this is a C++ issue.

@asfimport
Copy link
Author

Weston Pace / @westonpace:
I was not able to reproduce a hang (I tried my large CSV dataset split into 1 file, 5 files, 31 files, and 80 files) but I did notice that the call to head returns quickly but the actual scan seems to still be running in the background.  If I make many successive calls to head they start to slow down until my system is starved for resources.

@asfimport
Copy link
Author

Weston Pace / @westonpace:
Since you've got it running with the debugger can you do the following (these instructions are for gdb, I assume lldb has something similar):

  • Run it with the debugger

  • Get it into a hang state (let it sit there long enough you're pretty sure it should be finished)

  • Press Ctrl-C to interrupt the debugger

  • Run the command "thread apply all bt"

    This will generate a ton of output (it prints a backtrace of every running thread) which would be helpful in diagnosing the hang.

@asfimport
Copy link
Author

Nicola Crane / @thisisnic:
Thanks Weston, here's the output.

> open_dataset("data/nyc-raw-test/2", format = "csv") %>% head(1) %>% collect()
[New Thread 0x7fffe6ffe700 (LWP 99242)]
[New Thread 0x7fffe61ff700 (LWP 99243)]
[New Thread 0x7fffe59fe700 (LWP 99244)]
[New Thread 0x7fffe4bff700 (LWP 99245)]
[New Thread 0x7fffcffff700 (LWP 99246)]
[New Thread 0x7fffcf1ff700 (LWP 99247)]
[New Thread 0x7fffc75ff700 (LWP 99248)]
[New Thread 0x7fffc6dfe700 (LWP 99249)]
[New Thread 0x7fffc61ff700 (LWP 99250)]
[New Thread 0x7fffc53ff700 (LWP 99251)]
[New Thread 0x7fffb3fff700 (LWP 99252)]
[New Thread 0x7fffb37fe700 (LWP 99253)]
[New Thread 0x7fffb2ffd700 (LWP 99254)]
[New Thread 0x7fffb27fc700 (LWP 99255)]
[New Thread 0x7fffb1ffb700 (LWP 99256)]
[New Thread 0x7fffb0dff700 (LWP 99257)]
[New Thread 0x7fffa77ff700 (LWP 99258)]
[New Thread 0x7fffa6d7e700 (LWP 99259)]
[New Thread 0x7fffa657d700 (LWP 99260)]
^C
Thread 1 "R" received signal SIGINT, Interrupt.
futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x55555b272320) at ../sysdeps/nptl/futex-internal.h:183
183	../sysdeps/nptl/futex-internal.h: No such file or directory.
(gdb) thread apply all bt

Thread 22 (Thread 0x7fffa657d700 (LWP 99260)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fff900029b8) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fff900029b8) at /usr/include/c++/9/thread:244
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fff900029b8) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x7fff900029b0) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 21 (Thread 0x7fffa6d7e700 (LWP 99259)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
--Type <RET> for more, q to quit, c to continue without paging--
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fffa00029b8) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fffa00029b8) at /usr/include/c++/9/thread:244
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fffa00029b8) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x7fffa00029b0) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 20 (Thread 0x7fffa77ff700 (LWP 99258)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fffa80029b8) at /home/nic2/arrow/cpp/src/arrow/util/thread_poo--Type <RET> for more, q to quit, c to continue without paging--
l.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fffa80029b8) at /usr/include/c++/9/thread:244
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fffa80029b8) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x7fffa80029b0) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 19 (Thread 0x7fffb0dff700 (LWP 99257)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fffd0003748) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
--Type <RET> for more, q to quit, c to continue without paging--
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fffd0003748) at /usr/include/c++/9/thread:244
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fffd0003748) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x7fffd0003740) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 18 (Thread 0x7fffb1ffb700 (LWP 99256)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fffb80029b8) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fffb80029b8) at /usr/include/c++/9/thread:244
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fffb80029b8) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(--Type <RET> for more, q to quit, c to continue without paging--
void) (this=0x7fffb80029b0) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 17 (Thread 0x7fffb27fc700 (LWP 99255)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fff900035b8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fff90003568, cond=0x7fff90003590) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fff90003590, mutex=0x7fff90003568) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fff90003590, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fff90003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fff90003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffb27fb5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffb27fb5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fff90002550) at /home/nic2/arrow/cpp/src/arrow/util/async_generator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fff90002550) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fff90002a40) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fff90002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fff90002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fff900034d0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
--Type <RET> for more, q to quit, c to continue without paging--
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fff900034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fff900034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fff90003500) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffb27fbad0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffb27fbad0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffb27fba30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffb27fbb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x55555a753638) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x55555a753630) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x555559cf7e58) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x555559cf7e48) at /home/nic2/arrow/cpp/src/arrow/util/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x555559cf7e40) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffb27fbd00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x555558a96c48) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
--Type <RET> for more, q to quit, c to continue without paging--
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x555558a96c48) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x555558a96c48) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x555558a96c40) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 16 (Thread 0x7fffb2ffd700 (LWP 99254)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffa00035b8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffa0003568, cond=0x7fffa0003590) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffa0003590, mutex=0x7fffa0003568) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fffa0003590, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fffa0003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fffa0003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffb2ffc5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffb2ffc5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa0002550) at /home/nic2/arrow/cpp/src/arrow/util/async_generator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fffa000--Type <RET> for more, q to quit, c to continue without paging--
2550) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa0002a40) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffa0002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffa0002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa00034d0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffa00034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffa00034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa0003500) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffb2ffcad0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffb2ffcad0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffb2ffca30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffb2ffcb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x55555766cab8) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x55555766cab0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x555559bf77e8) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x555559bf77d8) at /home/nic2/arrow/cpp/src/arrow/util--Type <RET> for more, q to quit, c to continue without paging--
/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x555559bf77d0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffb2ffcd00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x55555a113f08) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x55555a113f08) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x55555a113f08) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x55555a113f00) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 15 (Thread 0x7fffb37fe700 (LWP 99253)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Pytho--Type <RET> for more, q to quit, c to continue without paging--
n Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fffb40029b8) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fffb40029b8) at /usr/include/c++/9/thread:244
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fffb40029b8) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x7fffb40029b0) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 14 (Thread 0x7fffb3fff700 (LWP 99252)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffa80035b8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffa8003568, cond=0x7fffa8003590) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffa8003590, mutex=0x7fffa8003568) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fffa8003590, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fffa8003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fffa8003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffb3ffe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffb3ffe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:--Type <RET> for more, q to quit, c to continue without paging--
405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa8002550) at /home/nic2/arrow/cpp/src/arrow/util/async_generator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fffa8002550) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa8002a40) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffa8002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffa8002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa80034d0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffa80034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffa80034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffa8003500) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffb3ffead0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffb3ffead0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffb3ffea30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffb3ffeb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x55555a81aac8) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
--Type <RET> for more, q to quit, c to continue without paging--
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x55555a81aac0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x555559d13e48) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x555559d13e38) at /home/nic2/arrow/cpp/src/arrow/util/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x555559d13e30) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffb3ffed00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x55555a1c4fd8) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x55555a1c4fd8) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x55555a1c4fd8) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x55555a1c4fd0) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 13 (Thread 0x7fffc53ff700 (LWP 99251)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffac0033c8) at ../sysdeps/nptl/futex-internal.h:183
--Type <RET> for more, q to quit, c to continue without paging--
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffac003378, cond=0x7fffac0033a0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffac0033a0, mutex=0x7fffac003378) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fffac0033a0, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fffac003330) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fffac003330) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffc53fe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffc53fe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffac002aa0) at /home/nic2/arrow/cpp/src/arrow/util/async_generator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fffac002aa0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffac002a40) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffac002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffac002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffac003310) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffac0032f0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffac0032f0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffac002560) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
--Type <RET> for more, q to quit, c to continue without paging--
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffc53fead0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffc53fead0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffc53fea30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffc53feb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x55555a374ef8) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x55555a374ef0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x55555a374f48) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x55555a374f38) at /home/nic2/arrow/cpp/src/arrow/util/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x55555a374f30) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffc53fed00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x55555a097008) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x55555a097008) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x55555a097--Type <RET> for more, q to quit, c to continue without paging--
008) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x55555a097000) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 12 (Thread 0x7fffc61ff700 (LWP 99250)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffb80035b8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffb8003568, cond=0x7fffb8003590) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffb8003590, mutex=0x7fffb8003568) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fffb8003590, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fffb8003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fffb8003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffc61fe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffc61fe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb8002550) at /home/nic2/arrow/cpp/src/arrow/util/async_generator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fffb8002550) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb8002a40) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffb8002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::sh--Type <RET> for more, q to quit, c to continue without paging--
ared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffb8002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb80034d0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffb80034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffb80034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb8003500) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffc61fead0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffc61fead0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffc61fea30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffc61feb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x55555a623318) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x55555a623310) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x55555a623368) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x55555a623358) at /home/nic2/arrow/cpp/src/arrow/util/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x55555a623350) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffc61fed00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
--Type <RET> for more, q to quit, c to continue without paging--
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x55555a57d5e8) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x55555a57d5e8) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x55555a57d5e8) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x55555a57d5e0) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7fffc6dfe700 (LWP 99249)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffb40035b8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffb4003568, cond=0x7fffb4003590) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffb4003590, mutex=0x7fffb4003568) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fffb4003590, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fffb4003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fffb4003520) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffc6dfd5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffc6dfd5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb4002550) at /home/nic2/arrow/cpp/src/arrow/util/async_gene--Type <RET> for more, q to quit, c to continue without paging--
rator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fffb4002550) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb4002a40) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffb4002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffb4002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb40034d0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffb40034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffb40034b0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffb4003500) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffc6dfdad0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffc6dfdad0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffc6dfda30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffc6dfdb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x555558c5cab8) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x555558c5cab0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
--Type <RET> for more, q to quit, c to continue without paging--
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x555559bb32c8) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x555559bb32b8) at /home/nic2/arrow/cpp/src/arrow/util/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x555559bb32b0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffc6dfdd00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x555557677d98) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x555557677d98) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x555557677d98) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x555557677d90) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fffc75ff700 (LWP 99248)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffbc0033c8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffbc003378, cond=0x7fffbc0033a0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffbc0033a0, mutex=0x7fffbc003378) at pthread_cond_wait.c:638
--Type <RET> for more, q to quit, c to continue without paging--
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fffbc0033a0, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fffbc003330) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fffbc003330) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffc75fe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffc75fe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffbc002aa0) at /home/nic2/arrow/cpp/src/arrow/util/async_generator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fffbc002aa0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffbc002a40) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffbc002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffbc002a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffbc003310) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffbc0032f0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffbc0032f0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffbc002560) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffc75fead0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
--Type <RET> for more, q to quit, c to continue without paging--
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffc75fead0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffc75fea30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffc75feb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x55555a304108) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x55555a304100) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x555559af48e8) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x555559af48d8) at /home/nic2/arrow/cpp/src/arrow/util/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x555559af48d0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffc75fed00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x555559f7d568) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x555559f7d568) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x555559f7d568) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(--Type <RET> for more, q to quit, c to continue without paging--
void) (this=0x555559f7d560) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fffcf1ff700 (LWP 99247)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffe7e0a860) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffe7e0a8a8, cond=0x7fffe7e0a838) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffe7e0a838, mutex=0x7fffe7e0a8a8) at pthread_cond_wait.c:638
#3  0x00007fffec1b1a1c in background_thread_sleep (tsdn=<optimised out>, interval=<optimised out>, info=<optimised out>) at src/background_thread.c:232
#4  background_work_sleep_once (ind=<optimised out>, info=<optimised out>, tsdn=<optimised out>) at src/background_thread.c:307
#5  background_work (ind=<optimised out>, tsd=<optimised out>) at src/background_thread.c:497
#6  background_thread_entry (ind_arg=<optimised out>) at src/background_thread.c:522
#7  0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#8  0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7fffcffff700 (LWP 99246)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffc8009da8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffc8009d58, cond=0x7fffc8009d80) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffc8009d80, mutex=0x7fffc8009d58) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeaaf06de in std::condition_variable::wait<arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}>(std::unique_lock<std::mutex>&, arrow::ConcreteFutureImpl::DoWait()::{lambda()#1}) (this=0x7fffc8009d80, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffeaaef7a7 in arrow::ConcreteFutureImpl::DoWait (this=0x7fffc8009d10) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:334
#6  0x00007fffeaaebf3e in arrow::FutureImpl::Wait (this=0x7fffc8009d10) at /home/nic2/arrow/cpp/src/arrow/util/future.cc:379
#7  0x00007fffee08989e in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::Wait (this=0x7fffcfffe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:435
#8  0x00007fffee088b88 in arrow::Future<std::shared_ptr<arrow::RecordBatch> >::result() const & (this=0x7fffcfffe5d0) at /home/nic2/arrow/cpp/src/arrow/util/future.h:405
#9  0x00007fffee17c9e5 in arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffc800f5f0) at /home/nic2/arrow/cpp/src/arrow/util/async_gene--Type <RET> for more, q to quit, c to continue without paging--
rator.h:1597
#10 0x00007fffee17a235 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::GeneratorIterator<std::shared_ptr<arrow::RecordBatch> > > (ptr=0x7fffc800f5f0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#11 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffc8010a20) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#12 0x00007fffee10d5b5 in arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffc8010a00) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#13 0x00007fffee1020d6 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::FilterRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffc8010a00) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#14 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffc80104e0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#15 0x00007fffee10d86f in arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> >::Next() (this=0x7fffc80104c0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:428
#16 0x00007fffee102206 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next<arrow::MapIterator<arrow::dataset::ProjectRecordBatch(arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >, arrow::compute::Expression, std::shared_ptr<arrow::dataset::ScanOptions> const&)::{lambda(std::shared_ptr<arrow::RecordBatch>)#1}, std::shared_ptr<arrow::RecordBatch>, std::shared_ptr<arrow::RecordBatch> > >(void*) (ptr=0x7fffc80104c0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#17 0x00007fffedfffc4d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::Next (this=0x7fffc800ed30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#18 0x00007fffee0f74e2 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::Next (this=0x7fffcfffead0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:165
#19 0x00007fffee0f733d in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::RangeIterator::RangeIterator (this=0x7fffcfffead0, i=...) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:141
#20 0x00007fffee0eb2c9 in arrow::Iterator<std::shared_ptr<arrow::RecordBatch> >::begin (this=0x7fffcfffea30) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:172
#21 0x00007fffee0b8c40 in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffcfffeb70) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:273
#22 0x00007fffee0b90dc in arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>::operator()(void) const (__closure=0x55555a0b68e8) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:278
#23 0x00007fffee0dd52d in arrow::internal::FnOnce<arrow::Status()>::FnImpl<arrow::dataset::(anonymous namespace)::ScanBatchesState::PushScanTask()::<lambda()> >::invoke(void) (this=0x55555a0b68e0) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
--Type <RET> for more, q to quit, c to continue without paging--
#24 0x00007fffeab2e606 in arrow::internal::FnOnce<arrow::Status ()>::operator()() && (this=0x55555a030b88) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#25 0x00007fffeab2cb73 in arrow::internal::(anonymous namespace)::ThreadedTaskGroup::Callable::operator() (this=0x55555a030b78) at /home/nic2/arrow/cpp/src/arrow/util/task_group.cc:112
#26 0x00007fffeab2e3c4 in arrow::internal::FnOnce<void()>::FnImpl<arrow::internal::(anonymous namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status()>)::Callable>::invoke(void) (this=0x55555a030b70) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:152
#27 0x00007fffeab3efed in arrow::internal::FnOnce<void ()>::operator()() && (this=0x7fffcfffed00) at /home/nic2/arrow/cpp/src/arrow/util/functional.h:140
#28 0x00007fffeab3aea3 in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:177
#29 0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fffd0002568) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#30 0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#31 0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#32 0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fffd0002568) at /usr/include/c++/9/thread:244
#33 0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fffd0002568) at /usr/include/c++/9/thread:251
#34 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x7fffd0002560) at /usr/include/c++/9/thread:195
#35 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#37 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fffe4bff700 (LWP 99245)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffe7e0a794) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffe7e0a7d8, cond=0x7fffe7e0a768) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffe7e0a768, mutex=0x7fffe7e0a7d8) at pthread_cond_wait.c:638
--Type <RET> for more, q to quit, c to continue without paging--
#3  0x00007fffec1b1a1c in background_thread_sleep (tsdn=<optimised out>, interval=<optimised out>, info=<optimised out>) at src/background_thread.c:232
#4  background_work_sleep_once (ind=<optimised out>, info=<optimised out>, tsdn=<optimised out>) at src/background_thread.c:307
#5  background_work (ind=<optimised out>, tsd=<optimised out>) at src/background_thread.c:497
#6  background_thread_entry (ind_arg=<optimised out>) at src/background_thread.c:522
#7  0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#8  0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fffe59fe700 (LWP 99244)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x7fffd8003508) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7fffd8003508) at /usr/include/c++/9/thread:244
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x7fffd8003508) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x7fffd8003500) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
--Type <RET> for more, q to quit, c to continue without paging--
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fffe61ff700 (LWP 99243)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffe7e0a6c0) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffe7e0a708, cond=0x7fffe7e0a698) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffe7e0a698, mutex=0x7fffe7e0a708) at pthread_cond_wait.c:638
#3  0x00007fffec1b1a1c in background_thread_sleep (tsdn=<optimised out>, interval=<optimised out>, info=<optimised out>) at src/background_thread.c:232
#4  background_work_sleep_once (ind=<optimised out>, info=<optimised out>, tsdn=<optimised out>) at src/background_thread.c:307
#5  background_work (ind=<optimised out>, tsd=<optimised out>) at src/background_thread.c:497
#6  background_thread_entry (ind_arg=<optimised out>) at src/background_thread.c:522
#7  0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#8  0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fffe6ffe700 (LWP 99242)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x555559ea92e4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559ea9290, cond=0x555559ea92b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555559ea92b8, mutex=0x555559ea9290) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeab3afcb in arrow::internal::WorkerLoop (state=std::shared_ptr<struct arrow::internal::ThreadPool::State> (use count 17, weak count 0) = {...}, it=Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer': 
) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:195
#5  0x00007fffeab3bc72 in arrow::internal::ThreadPool::<lambda()>::operator()(void) const (__closure=0x55555a2b4008) at /home/nic2/arrow/cpp/src/arrow/util/thread_pool.cc:344
#6  0x00007fffeab3e767 in std::__invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(std::__invoke_other, arrow::internal::ThreadPool::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7  0x00007fffeab3e708 in std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> >(arrow::internal::ThreadPool::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8  0x00007fffeab3e6a6 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x55555a2b4008) at /usr/include/c++/9/thread:244
--Type <RET> for more, q to quit, c to continue without paging--
#9  0x00007fffeab3e667 in std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > >::operator()(void) (this=0x55555a2b4008) at /usr/include/c++/9/thread:251
#10 0x00007fffeab3e63c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > > >::_M_run(void) (this=0x55555a2b4000) at /usr/include/c++/9/thread:195
#11 0x00007ffff54aade4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#13 0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fffe77ff700 (LWP 99238)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x7fffe7e0a5f0) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fffe7e0a638, cond=0x7fffe7e0a5c8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fffe7e0a5c8, mutex=0x7fffe7e0a638) at pthread_cond_wait.c:638
#3  0x00007fffec1b23e5 in background_thread_sleep (tsdn=<optimised out>, interval=<optimised out>, info=<optimised out>) at src/background_thread.c:232
#4  background_work_sleep_once (ind=0, info=<optimised out>, tsdn=<optimised out>) at src/background_thread.c:307
#5  background_thread0_work (tsd=<optimised out>) at src/background_thread.c:452
#6  background_work (ind=<optimised out>, tsd=<optimised out>) at src/background_thread.c:490
#7  background_thread_entry (ind_arg=<optimised out>) at src/background_thread.c:522
#8  0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#9  0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7ffff326d700 (LWP 99231)):
#0  0x00007ffff79cf3bf in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7ffff3995450 <cli.tick_ts>, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1  0x00007ffff79d5047 in __GI___nanosleep (requested_time=requested_time@entry=0x7ffff3995450 <cli.tick_ts>, remaining=remaining@entry=0x0) at nanosleep.c:27
#2  0x00007ffff397c812 in clic_thread_func (arg=<optimised out>) at thread.c:33
#3  clic_thread_func (arg=<optimised out>) at thread.c:19
#4  0x00007ffff70b0609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#5  0x00007ffff7a11293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95











--Type <RET> for more, q to quit, c to continue without paging--
Thread 1 (Thread 0x7ffff53b27c0 (LWP 99226)):
#0  futex_wait_cancelable (private=<optimised out>, expected=0, futex_word=0x55555b272320) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55555b2722d0, cond=0x55555b2722f8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55555b2722f8, mutex=0x55555b2722d0) at pthread_cond_wait.c:638
#3  0x00007ffff54a4e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffee0cb04a in std::condition_variable::wait<arrow::dataset::(anonymous namespace)::ScanBatchesState::Pop()::<lambda()> >(std::unique_lock<std::mutex> &, arrow::dataset::(anonymous namespace)::ScanBatchesState::<lambda()>) (this=0x55555b2722f8, __lock=..., __p=...) at /usr/include/c++/9/condition_variable:101
#5  0x00007fffee0b96f8 in arrow::dataset::(anonymous namespace)::ScanBatchesState::Pop (this=0x55555b2722c0) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:285
#6  0x00007fffee0b9d64 in arrow::dataset::(anonymous namespace)::SyncScanner::<lambda()>::operator()(void) const (__closure=0x55555a099a60) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:368
#7  0x00007fffee0d1376 in arrow::FunctionIterator<arrow::dataset::(anonymous namespace)::SyncScanner::ScanBatches(arrow::dataset::ScanTaskIterator)::<lambda()>, arrow::dataset::TaggedRecordBatch>::Next(void) (this=0x55555a099a60) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:346
#8  0x00007fffee0cf73f in arrow::Iterator<arrow::dataset::TaggedRecordBatch>::Next<arrow::FunctionIterator<arrow::dataset::(anonymous namespace)::SyncScanner::ScanBatches(arrow::dataset::ScanTaskIterator)::<lambda()>, arrow::dataset::TaggedRecordBatch> >(void *) (ptr=0x55555a099a60) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:200
#9  0x00007fffee0ea4ab in arrow::Iterator<arrow::dataset::TaggedRecordBatch>::Next (this=0x7ffffffe8be0) at /home/nic2/arrow/cpp/src/arrow/util/iterator.h:110
#10 0x00007fffee0c6ce0 in arrow::dataset::Scanner::Head (this=0x55555a4e4d00, num_rows=1) at /home/nic2/arrow/cpp/src/arrow/dataset/scanner.cc:1131
#11 0x00007fffee4546e0 in dataset___Scanner__head (scanner=std::shared_ptr<class arrow::dataset::Scanner> (use count 1, weak count 0) = {...}, n=<optimised out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1020
#12 0x00007fffee406484 in _arrow_dataset___Scanner__head (scanner_sexp=<optimised out>, n_sexp=<optimised out>) at ././arrow_cpp11.h:214
#13 0x00007ffff7bd83fc in ?? () from /lib/libR.so
#14 0x00007ffff7c1b20a in ?? () from /lib/libR.so
#15 0x00007ffff7c2e808 in Rf_eval () from /lib/libR.so
#16 0x00007ffff7c306cf in ?? () from /lib/libR.so
#17 0x00007ffff7c315c2 in Rf_applyClosure () from /lib/libR.so
#18 0x00007ffff7c1c156 in ?? () from /lib/libR.so
#19 0x00007ffff7c2e808 in Rf_eval () from /lib/libR.so
#20 0x00007ffff7c306cf in ?? () from /lib/libR.so
#21 0x00007ffff7c315c2 in Rf_applyClosure () from /lib/libR.so
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x00007ffff7c75304 in ?? () from /lib/libR.so
#23 0x00007ffff7c75740 in ?? () from /lib/libR.so
#24 0x00007ffff7c75b07 in ?? () from /lib/libR.so
#25 0x00007ffff7c13851 in ?? () from /lib/libR.so
#26 0x00007ffff7c2e808 in Rf_eval () from /lib/libR.so
#27 0x00007ffff7c306cf in ?? () from /lib/libR.so
#28 0x00007ffff7c315c2 in Rf_applyClosure () from /lib/libR.so
#29 0x00007ffff7c1c156 in ?? () from /lib/libR.so
#30 0x00007ffff7c2e808 in Rf_eval () from /lib/libR.so
#31 0x00007ffff7c306cf in ?? () from /lib/libR.so
#32 0x00007ffff7c315c2 in Rf_applyClosure () from /lib/libR.so
#33 0x00007ffff7c75304 in ?? () from /lib/libR.so
#34 0x00007ffff7c755ff in ?? () from /lib/libR.so
#35 0x00007ffff7c75b07 in ?? () from /lib/libR.so
#36 0x00007ffff7c13851 in ?? () from /lib/libR.so
#37 0x00007ffff7c2e808 in Rf_eval () from /lib/libR.so
#38 0x00007ffff7c306cf in ?? () from /lib/libR.so
#39 0x00007ffff7c315c2 in Rf_applyClosure () from /lib/libR.so
#40 0x00007ffff7c2ea2f in Rf_eval () from /lib/libR.so
#41 0x00007ffff7c2f29c in ?? () from /lib/libR.so
#42 0x00007ffff7c2eb1f in Rf_eval () from /lib/libR.so
#43 0x00007ffff7c2f29c in ?? () from /lib/libR.so
#44 0x00007ffff7c2ed78 in Rf_eval () from /lib/libR.so
#45 0x00007ffff7c75d58 in ?? () from /lib/libR.so
#46 0x00007ffff7c13851 in ?? () from /lib/libR.so
#47 0x00007ffff7c2e808 in Rf_eval () from /lib/libR.so
#48 0x00007ffff7c306cf in ?? () from /lib/libR.so
#49 0x00007ffff7c315c2 in Rf_applyClosure () from /lib/libR.so
#50 0x00007ffff7c2ea2f in Rf_eval () from /lib/libR.so
--Type <RET> for more, q to quit, c to continue without paging--
#51 0x00007ffff3fdbec0 in eval_pipe_lazy (env=0x5555555aa0e8, exprs=<optimised out>) at pipe.c:183
#52 magrittr_pipe (call=<optimised out>, op=<optimised out>, args=<optimised out>, rho=<optimised out>) at pipe.c:105
#53 0x00007ffff7bd68d0 in ?? () from /lib/libR.so
#54 0x00007ffff7c13a61 in ?? () from /lib/libR.so
#55 0x00007ffff7c2e808 in Rf_eval () from /lib/libR.so
#56 0x00007ffff7c306cf in ?? () from /lib/libR.so
#57 0x00007ffff7c315c2 in Rf_applyClosure () from /lib/libR.so
#58 0x00007ffff7c2ea2f in Rf_eval () from /lib/libR.so
#59 0x00007ffff7c62d12 in Rf_ReplIteration () from /lib/libR.so
#60 0x00007ffff7c630b0 in ?? () from /lib/libR.so
#61 0x00007ffff7c63170 in run_Rmainloop () from /lib/libR.so
#62 0x000055555555509f in main ()
#63 0x00007ffff79160b3 in __libc_start_main (main=0x555555555080 <main>, argc=1, argv=0x7fffffffdb48, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffffffdb38) at ../csu/libc-start.c:308
#64 0x00005555555550de in _start ()
(gdb) 

@asfimport
Copy link
Author

Weston Pace / @westonpace:
Thanks for this information.  This is a nested deadlock issue.  The 8 CPU threads are inappropriately blocked.  The easiest workaround is that we should be using the asynchronous scanner here.  I thought we had worked out some delicate ways to avoid this kind of thing in the synchronous scanner but it seems those don't work for Head.

 

We could either fix the synchronous scanner to handle this correctly, return an error if the synchronous scanner is used with head, or silently switch use_threads to false when this situation is encountered.

 

However, I'd rather not do too much here.  The synchronous scanner should be going away (soon) and so any fix will be throwaway.

@asfimport
Copy link
Author

Nicola Crane / @thisisnic:
@westonpace Given it was me that found this when playing around with demo examples, and what you've said above about it likely getting resolved anyway, how about we just leave this as it is unless we find we have actual users affected by it? (Or if the proposed update to use the asynchronous scanner makes sense, do that.  Sorry - I don't fully understand!)

@asfimport
Copy link
Author

Neal Richardson / @nealrichardson:
Can we just switch to use_async = true in the scanner in R? Or does that cause other issues?

@asfimport
Copy link
Author

Nicola Crane / @thisisnic:
It looks like using the async scanner is going to be the default in the C++ soon anyway (in ARROW-13338), so I'm assuming from that that it's the best option anyway, and so have submitted a PR.

@asfimport
Copy link
Author

Nicola Crane / @thisisnic:
Issue resolved by pull request 11992
#11992

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

No branches or pull requests

2 participants