[ https://issues.apache.org/jira/browse/ARROW-12837?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ben Kietzman resolved ARROW-12837. ---------------------------------- Fix Version/s: (was: 6.0.0) 5.0.0 Resolution: Fixed Issue resolved by pull request 10713 [https://github.com/apache/arrow/pull/10713] > [C++] Array::ToString() segfaults with null buffer. > --------------------------------------------------- > > Key: ARROW-12837 > URL: https://issues.apache.org/jira/browse/ARROW-12837 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Affects Versions: 4.0.0 > Reporter: Alessandro Molina > Assignee: Alessandro Molina > Priority: Minor > Labels: pull-request-available > Fix For: 5.0.0 > > Time Spent: 2h > Remaining Estimate: 0h > > In some tests in the Arrow test suite there are cases where arrays are made > without allocating real buffers of data, using {{Buffer}} of length 0 and > with {{nullptr}} as their data. > In this cases the {{Array::ToString()}} does lead to segfault, at least for > Int arrays. > {code} > * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS > (code=1, address=0x0) > frame #0: 0x0000000101dac696 > libarrow.500.dylib`std::__1::enable_if<is_integer_type<arrow::NumericArray<arrow::Int32Type>::TypeClass>::value, > arrow::Status>::type > arrow::ArrayPrinter::WriteDataValues<arrow::NumericArray<arrow::Int32Type> > >(this=0x00007ffeefbfea98, i=0)::'lambda'(long long)::operator()(long long) > const at pretty_print.cc:152:73 > 149 enable_if_integer<typename T::TypeClass, Status> > WriteDataValues(const T& array) { > 150 const auto data = array.raw_values(); > 151 // Need to upcast integers to avoid selecting > operator<<(char) > -> 152 WriteValues(array, [&](int64_t i) { (*sink_) << > internal::UpcastInt(data[i]); }); > 153 return Status::OK(); > 154 } > 155 > {code} > The issue can probably be worked around by checking if the data in the array > is valid (at least for the most obvious cases, like NULLS or 0-length data) > when building the string representation -- This message was sent by Atlassian Jira (v8.3.4#803005)