[
https://issues.apache.org/jira/browse/ARROW-11780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17291063#comment-17291063
]
Weston Pace commented on ARROW-11780:
-------------------------------------
Relevant stack trace...
{code:java}
Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007ffff5ed7f16 in std::__shared_ptr<arrow::ArrayData,
(__gnu_cxx::_Lock_policy)2>::get (this=0x8) at
/home/pace/anaconda3/envs/conbench2/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/shared_ptr_base.h:1310
1310 { return _M_ptr; }
(gdb) bt
#0 0x00007ffff5ed7f16 in std::__shared_ptr<arrow::ArrayData,
(__gnu_cxx::_Lock_policy)2>::get (this=0x8)
at
/home/pace/anaconda3/envs/conbench2/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/shared_ptr_base.h:1310
#1 0x00007ffff5ed4f91 in std::__shared_ptr_access<arrow::ArrayData,
(__gnu_cxx::_Lock_policy)2, false, false>::_M_get (this=0x8)
at
/home/pace/anaconda3/envs/conbench2/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/shared_ptr_base.h:1021
#2 0x00007ffff5ed20df in std::__shared_ptr_access<arrow::ArrayData,
(__gnu_cxx::_Lock_policy)2, false, false>::operator-> (this=0x8)
at
/home/pace/anaconda3/envs/conbench2/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/shared_ptr_base.h:1015
#3 0x00007ffff5ece259 in arrow::Array::type (this=0x0) at
../src/arrow/array/array_base.h:86
#4 0x00007ffff5f75924 in arrow::StructArray::Make (children=std::vector of
length 2, capacity 2 = {...}, field_names=std::vector of length 2, capacity 2 =
{...},
null_bitmap=std::shared_ptr<arrow::Buffer> (empty) = {...}, null_count=-1,
offset=0) at ../src/arrow/array/array_nested.cc:502
#5 0x00007ffff73c7b89 in
__pyx_pf_7pyarrow_3lib_11StructArray_4from_arrays(_object*, _object*, _object*)
()
from
/home/pace/anaconda3/envs/conbench2/lib/python3.7/site-packages/pyarrow-4.0.0.dev108+g4b4fb24d3.d20210205-py3.7-linux-x86_64.egg/pyarrow/lib.cpython-37m-x86_64-linux-gnu.so
#6 0x00007ffff73c8ad1 in
__pyx_pw_7pyarrow_3lib_11StructArray_5from_arrays(_object*, _object*, _object*)
()
from
/home/pace/anaconda3/envs/conbench2/lib/python3.7/site-packages/pyarrow-4.0.0.dev108+g4b4fb24d3.d20210205-py3.7-linux-x86_64.egg/pyarrow/lib.cpython-37m-x86_64-linux-gnu.so
{code}
It appears `StructArray::Make` is being called with children/field_names each
with length 2. The names get passed down but `table['foo']` and `table['bar']`
become null pointers.
> [C++] StructArray.from_arrays() crashes Python interpreter
> ----------------------------------------------------------
>
> Key: ARROW-11780
> URL: https://issues.apache.org/jira/browse/ARROW-11780
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++, Python
> Affects Versions: 3.0.0
> Reporter: ARF
> Priority: Major
>
> {{StructArray.from_arrays()}} crashes the Python interpreter without error
> message:
> {code:none}
> (test_pyarrow) Z:\test_pyarrow>python
> Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] ::
> Anaconda, Inc. on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import pyarrow as pa
> >>>
> >>> table = pa.Table.from_pydict({
> ... 'foo': pa.array([1, 2, 3]),
> ... 'bar': pa.array([4, 5, 6])
> ... })
> >>>
> >>> pa.StructArray.from_arrays([table['foo'], table['bar']], ['foo', 'bar'])
> (test_pyarrow) Z:\test_pyarrow>
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)