jorisvandenbossche commented on issue #37669:
URL: https://github.com/apache/arrow/issues/37669#issuecomment-1748626220
Thanks for the report!
The actual failure is in the cast that happens under the hood in
`from_arrays` to align the arrays with the schema, so the example can be
simplified to:
```
>>> import pyarrow as pa
>>> tensor_type = pa.fixed_shape_tensor(pa.float32(), [2, 3])
>>> inner = pa.array([float(x) for x in range(1, 7)] + [None] * 12,
pa.float32())
>>> storage = pa.FixedSizeListArray.from_arrays(inner, 6)
>>> storage.cast(tensor_type)
Segmentation fault (core dumped)
```
Without further investigating, but just posting the gdb backtrace:
<details>
```
Thread 1 "python" received signal SIGSEGV, Segmentation fault.
arrow::FixedSizeListArray::SetData (this=0x5555561b1e70, data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/array/array_nested.cc:472
472 ARROW_CHECK_EQ(list_type()->value_type()->id(),
data->child_data[0]->type->id());
(gdb) bt
#0 arrow::FixedSizeListArray::SetData (this=0x5555561b1e70, data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/array/array_nested.cc:472
#1 0x00007ffff556a99c in arrow::FixedSizeListArray::FixedSizeListArray
(this=0x5555561b1e70, data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/array/array_nested.cc:455
#2 0x00007ffff5607e8f in
__gnu_cxx::new_allocator<arrow::FixedSizeListArray>::construct<arrow::FixedSizeListArray,
std::shared_ptr<arrow::ArrayData> const&> (__p=0x5555561b1e70, this=<optimized
out>)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/new:175
#3 std::allocator_traits<std::allocator<arrow::FixedSizeListArray>
>::construct<arrow::FixedSizeListArray, std::shared_ptr<arrow::ArrayData>
const&> (__p=0x5555561b1e70, __a=...)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/alloc_traits.h:512
#4 std::_Sp_counted_ptr_inplace<arrow::FixedSizeListArray,
std::allocator<arrow::FixedSizeListArray>,
(__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::shared_ptr<arrow::ArrayData>
const&> (__a=...,
this=0x5555561b1e60) at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr_base.h:551
#5
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<arrow::FixedSizeListArray,
std::allocator<arrow::FixedSizeListArray>, std::shared_ptr<arrow::ArrayData>
const&> (__a=...,
__p=<optimized out>, this=<optimized out>) at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr_base.h:682
#6 std::__shared_ptr<arrow::FixedSizeListArray,
(__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<arrow::FixedSizeListArray>,
std::shared_ptr<arrow::ArrayData> const&> (__tag=..., this=<optimized out>)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr_base.h:1376
#7
std::shared_ptr<arrow::FixedSizeListArray>::shared_ptr<std::allocator<arrow::FixedSizeListArray>,
std::shared_ptr<arrow::ArrayData> const&> (__tag=..., this=<optimized out>)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr.h:408
#8 std::allocate_shared<arrow::FixedSizeListArray,
std::allocator<arrow::FixedSizeListArray>, std::shared_ptr<arrow::ArrayData>
const&> (__a=...)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr.h:862
#9 std::make_shared<arrow::FixedSizeListArray,
std::shared_ptr<arrow::ArrayData> const&> () at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr.h:878
#10 arrow::(anonymous
namespace)::ArrayDataWrapper::Visit<arrow::FixedSizeListType> (this=<synthetic
pointer>) at /home/joris/scipy/repos/arrow/cpp/src/arrow/array/util.cc:65
#11 arrow::VisitTypeInline<arrow::(anonymous namespace)::ArrayDataWrapper>
(visitor=<synthetic pointer>, type=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/visit_type_inline.h:54
#12 arrow::MakeArray (data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/array/util.cc:318
#13 0x00007ffff574e790 in arrow::ExtensionArray::SetData
(this=0x5555561bd390, data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/extension_type.cc:94
#14 0x00007ffff574eae4 in arrow::ExtensionArray::ExtensionArray
(this=0x5555561bd390, data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/extension_type.cc:75
#15 0x00007ffff66524d8 in
__gnu_cxx::new_allocator<arrow::ExtensionArray>::construct<arrow::ExtensionArray,
std::shared_ptr<arrow::ArrayData>&> (__p=0x5555561bd390, this=<optimized out>)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/new:175
#16 std::allocator_traits<std::allocator<arrow::ExtensionArray>
>::construct<arrow::ExtensionArray, std::shared_ptr<arrow::ArrayData>&>
(__p=0x5555561bd390, __a=...)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/alloc_traits.h:512
#17 std::_Sp_counted_ptr_inplace<arrow::ExtensionArray,
std::allocator<arrow::ExtensionArray>,
(__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::shared_ptr<arrow::ArrayData>&>
(__a=...,
this=0x5555561bd380) at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr_base.h:551
#18
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<arrow::ExtensionArray,
std::allocator<arrow::ExtensionArray>, std::shared_ptr<arrow::ArrayData>&>
(__a=..., __p=<optimized out>,
this=<optimized out>) at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr_base.h:682
#19 std::__shared_ptr<arrow::ExtensionArray,
(__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<arrow::ExtensionArray>,
std::shared_ptr<arrow::ArrayData>&> (__tag=..., this=<optimized out>)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr_base.h:1376
#20
std::shared_ptr<arrow::ExtensionArray>::shared_ptr<std::allocator<arrow::ExtensionArray>,
std::shared_ptr<arrow::ArrayData>&> (__tag=..., this=<optimized out>)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr.h:408
#21 std::allocate_shared<arrow::ExtensionArray,
std::allocator<arrow::ExtensionArray>, std::shared_ptr<arrow::ArrayData>&>
(__a=...)
at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr.h:862
#22 std::make_shared<arrow::ExtensionArray,
std::shared_ptr<arrow::ArrayData>&> () at
/home/joris/miniconda3/envs/arrow-dev/x86_64-conda-linux-gnu/include/c++/10.4.0/bits/shared_ptr.h:878
#23 arrow::extension::FixedShapeTensorType::MakeArray (this=<optimized out>,
data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/extension/fixed_shape_tensor.cc:185
#24 0x00007ffff5607f3f in arrow::(anonymous
namespace)::ArrayDataWrapper::Visit (type=..., this=<synthetic pointer>) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/array/util.cc:70
#25 arrow::VisitTypeInline<arrow::(anonymous namespace)::ArrayDataWrapper>
(visitor=<synthetic pointer>, type=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/visit_type_inline.h:54
#26 arrow::MakeArray (data=...) at
/home/joris/scipy/repos/arrow/cpp/src/arrow/array/util.cc:318
#27 0x00007ffff703cc70 in __pyx_f_7pyarrow_3lib_wrap_datum
(__pyx_v_datum=...) at
/home/joris/scipy/repos/arrow/python/build/temp.linux-x86_64-cpython-310/lib.cpp:76900
#28 0x00007fffd8ababd6 in __pyx_pf_7pyarrow_8_compute_8Function_6call
(__pyx_v_self=0x7fffd79b0870, __pyx_v_args=<optimized out>,
__pyx_v_options=0x7fffd79a6f70, __pyx_v_memory_pool=<optimized out>,
__pyx_v_length=None) at
/home/joris/scipy/repos/arrow/python/build/temp.linux-x86_64-cpython-310/_compute.cpp:12652
#29 0x000055555569978c in cfunction_call (func=<built-in method call of
pyarrow._compute.MetaFunction object at remote 0x7fffd79b0870>, args=<optimized
out>, kwargs=<optimized out>)
at /usr/local/src/conda/python-3.10.6/Objects/methodobject.c:543
```
</details>
cc @rok
--
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]