jorisvandenbossche commented on issue #38770:
URL: https://github.com/apache/arrow/issues/38770#issuecomment-1824014803

   @nph thanks for the report, can confirm the crash.
   
   GDB back trace:
   
   ```
   #0  0x00007ffff7c7800b in raise () from /lib/x86_64-linux-gnu/libc.so.6
   #1  0x00007ffff7c57859 in abort () from /lib/x86_64-linux-gnu/libc.so.6
   #2  0x00007fffb5e36026 in __gnu_cxx::__verbose_terminate_handler () at 
../../../../libstdc++-v3/libsupc++/vterminate.cc:95
   #3  0x00007fffb5e34514 in __cxxabiv1::__terminate (handler=<optimized out>) 
at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
   #4  0x00007fffb5e34566 in std::terminate () at 
../../../../libstdc++-v3/libsupc++/eh_terminate.cc:58
   #5  0x00007fffb5e34758 in __cxxabiv1::__cxa_throw (obj=0x555556343740, 
tinfo=tinfo@entry=0x7fffb7836e48 <typeinfo for std::bad_variant_access>, 
       dest=dest@entry=0x7fffb649cdd0 
<std::bad_variant_access::~bad_variant_access()>) at 
../../../../libstdc++-v3/libsupc++/eh_throw.cc:98
   #6  0x00007fffb614197d in std::__throw_bad_variant_access 
(__what=0x7fffb74b9898 "std::get: wrong index for variant", 
__what@entry=0x7fffb5f38000 "\177ELF\002\001\001\003")
       at 
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/variant:1284
   #7  0x00007fffb614199b in std::__throw_bad_variant_access 
(__valueless=__valueless@entry=false) at 
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/variant:1292
   #8  0x00007fffb6180aca in std::get<2ul, arrow::Datum::Empty, 
std::shared_ptr<arrow::Scalar>, std::shared_ptr<arrow::ArrayData>, 
std::shared_ptr<arrow::ChunkedArray>, std::shared_ptr<arrow::RecordBatch>, 
std::shared_ptr<arrow::Table> > (__v=...) at 
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/variant:1688
   #9  std::get<std::shared_ptr<arrow::ArrayData>, arrow::Datum::Empty, 
std::shared_ptr<arrow::Scalar>, std::shared_ptr<arrow::ArrayData>, 
std::shared_ptr<arrow::ChunkedArray>, std::shared_ptr<arrow::RecordBatch>, 
std::shared_ptr<arrow::Table> > (__v=...) at 
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/variant:1111
   #10 arrow::Datum::array (this=<optimized out>) at 
/home/joris/scipy/repos/arrow/cpp/src/arrow/datum.h:196
   #11 arrow::compute::internal::(anonymous namespace)::FilterRecordBatch 
(ctx=0x7fffffffb780, options=0x555556207c20, filter=..., batch=...)
       at 
/home/joris/scipy/repos/arrow/cpp/src/arrow/compute/kernels/vector_selection_filter_internal.cc:904
   ```
   
   I think we seem to simply assume that `filter` is an array for the 
`FilterRecordbatch` case, and do not guard for that. At least we should raise a 
proper error that filtering with a chunked array is not support for RecordBatch.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to