You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by "jorisvandenbossche (via GitHub)" <gi...@apache.org> on 2023/05/17 09:05:16 UTC

[GitHub] [arrow] jorisvandenbossche commented on pull request #35036: GH-34315: [C++] Correct is_null kernel for Union and RunEndEncoded logical nulls

jorisvandenbossche commented on PR #35036:
URL: https://github.com/apache/arrow/pull/35036#issuecomment-1551025639

   Sorry for the slow follow-up here. I can't reproduce the assertion failure, but I can reproduce the ASAN failure. The output from this (from the CI build) is pasted below:
   
   <details>
   
   ```
    ==9854==ERROR: AddressSanitizer: heap-use-after-free on address 0x60600013643c at pc 0x7f70b504df15 bp 0x7ffd681be530 sp 0x7ffd681be528
   READ of size 4 at 0x60600013643c thread T0
       #0 0x7f70b504df14 in bool __gnu_cxx::__ops::_Val_less_iter::operator()<long const, int const*>(long const&, int const*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/predefined_ops.h:98:24
       #1 0x7f70b504daab in int const* std::__upper_bound<int const*, long, __gnu_cxx::__ops::_Val_less_iter>(int const*, int const*, long const&, __gnu_cxx::__ops::_Val_less_iter) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algo.h:2041:8
       #2 0x7f70b504d645 in int const* std::upper_bound<int const*, long>(int const*, int const*, long const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algo.h:2076:14
       #3 0x7f70b504d3ae in long arrow::ree_util::internal::FindPhysicalIndex<int>(int const*, long, long, long) /arrow/cpp/src/arrow/util/ree_util.h:70:13
       #4 0x7f70b504c72e in arrow::ree_util::RunEndEncodedArraySpan<int>::PhysicalIndex(long) const /arrow/cpp/src/arrow/util/ree_util.h:242:12
       #5 0x7f70b6d60674 in arrow::ree_util::RunEndEncodedArraySpan<int>::end() const /arrow/cpp/src/arrow/util/ree_util.h:296:58
       #6 0x7f70bc404637 in void arrow::compute::internal::(anonymous namespace)::SetREELogicalNullBits<int>(arrow::ArraySpan const&, unsigned char*, long) /arrow/cpp/src/arrow/compute/kernels/scalar_validity.cc:131:23
       #7 0x7f70bc4019d7 in arrow::compute::internal::(anonymous namespace)::SetREELogicalNullBits(arrow::ArraySpan const&, unsigned char*, long) /arrow/cpp/src/arrow/compute/kernels/scalar_validity.cc:146:5
       #8 0x7f70bc3ed0e2 in arrow::compute::internal::(anonymous namespace)::IsNullExec(arrow::compute::KernelContext*, arrow::compute::ExecSpan const&, arrow::compute::ExecResult*) /arrow/cpp/src/arrow/compute/kernels/scalar_validity.cc:179:7
       #9 0x7f70b7c4a0e7 in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::ExecuteSingleSpan(arrow::compute::ExecSpan const&, arrow::compute::ExecResult*) /arrow/cpp/src/arrow/compute/exec.cc:891:5
       #10 0x7f70b7c3a376 in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::ExecuteSpans(arrow::compute::detail::ExecListener*) /arrow/cpp/src/arrow/compute/exec.cc:859:9
       #11 0x7f70b7c344dd in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::Execute(arrow::compute::ExecBatch const&, arrow::compute::detail::ExecListener*) /arrow/cpp/src/arrow/compute/exec.cc:808:14
       #12 0x7f70b7dba2e6 in arrow::compute::detail::FunctionExecutorImpl::Execute(std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, long) /arrow/cpp/src/arrow/compute/function.cc:276:5
       #13 0x7f70b7d8acbe in arrow::compute::(anonymous namespace)::ExecuteInternal(arrow::compute::Function const&, std::vector<arrow::Datum, std::allocator<arrow::Datum> >, long, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) /arrow/cpp/src/arrow/compute/function.cc:341:21
       #14 0x7f70b7d89e44 in arrow::compute::Function::Execute(std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) const /arrow/cpp/src/arrow/compute/function.cc:348:10
       #15 0x7f70b7c175f8 in arrow::compute::CallFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) /arrow/cpp/src/arrow/compute/exec.cc:1369:16
       #16 0x562d401c26a1 in arrow::compute::CheckScalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::shared_ptr<arrow::Scalar>, std::allocator<std::shared_ptr<arrow::Scalar> > > const&, std::shared_ptr<arrow::Scalar>, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:86:3
       #17 0x562d401c7887 in arrow::compute::CheckScalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::Datum, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:127:5
       #18 0x562d401d8c8c in arrow::compute::CheckScalarUnary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, arrow::Datum, arrow::Datum, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:254:3
       #19 0x562d40187900 in arrow::compute::TestBooleanValidityKernels_IsNullRunEndEncoded_Test::TestBody() /arrow/cpp/src/arrow/compute/kernels/scalar_validity_test.cc:120:3
       #20 0x7f70ab9cd5aa in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607:10
       #21 0x7f70ab9b1c19 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643:14
       #22 0x7f70ab98ba82 in testing::Test::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2682:5
       #23 0x7f70ab98c7e8 in testing::TestInfo::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2861:11
       #24 0x7f70ab98d003 in testing::TestSuite::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:3015:28
       #25 0x7f70ab99d981 in testing::internal::UnitTestImpl::RunAllTests() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5855:44
       #26 0x7f70ab9d05aa in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607:10
       #27 0x7f70ab9b4419 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643:14
       #28 0x7f70ab99d4ea in testing::UnitTest::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5438:10
       #29 0x7f70aba09210 in RUN_ALL_TESTS() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/include/gtest/gtest.h:2490:46
       #30 0x7f70aba091ec in main /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest_main.cc:52:10
       #0 0x7f70aaffdd8f in
       #32 0x7f70aaffde3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d)
       #33 0x562d3ff165c4 in _start (/build/cpp/debug/arrow-compute-scalar-utility-test+0x2425c4) (BuildId: 1004fad1909c492001a577cc65afaea748017106)
   
   0x60600013643c is located 60 bytes inside of 64-byte region [0x606000136400,0x606000136440)
   freed by thread T0 here:
       #0 0x562d3ffd4a3d in operator delete(void*) (/build/cpp/debug/arrow-compute-scalar-utility-test+0x300a3d) (BuildId: 1004fad1909c492001a577cc65afaea748017106)
       #1 0x7f70b4b6e7a8 in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:145:2
       #2 0x7f70b4b6e730 in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> > >::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> >&, std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:496:13
       #3 0x7f70b4b6c529 in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> > >::~__allocated_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocated_ptr.h:74:4
       #4 0x7f70b4b6d181 in std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2>::_M_destroy() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:538:7
       #5 0x562d3ffe9155 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:184:10
       #6 0x562d3ffe88de in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:705:11
       #7 0x562d3fff2ad4 in std::__shared_ptr<arrow::Scalar, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1154:31
       #8 0x562d3fff2a60 in std::shared_ptr<arrow::Scalar>::~shared_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:122:11
       #9 0x7f70b51366e3 in arrow::ArraySpan::FillFromScalar(arrow::Scalar const&) /arrow/cpp/src/arrow/array/data.cc:436:3
       #10 0x7f70b7c0d105 in arrow::compute::detail::(anonymous namespace)::PromoteExecSpanScalars(arrow::compute::ExecSpan*) /arrow/cpp/src/arrow/compute/exec.cc:326:20
       #11 0x7f70b7c0b8b9 in arrow::compute::detail::ExecSpanIterator::Next(arrow::compute::ExecSpan*) /arrow/cpp/src/arrow/compute/exec.cc:442:7
       #12 0x7f70b7c3a24c in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::ExecuteSpans(arrow::compute::detail::ExecListener*) /arrow/cpp/src/arrow/compute/exec.cc:856:29
       #13 0x7f70b7c344dd in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::Execute(arrow::compute::ExecBatch const&, arrow::compute::detail::ExecListener*) /arrow/cpp/src/arrow/compute/exec.cc:808:14
       #14 0x7f70b7dba2e6 in arrow::compute::detail::FunctionExecutorImpl::Execute(std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, long) /arrow/cpp/src/arrow/compute/function.cc:276:5
       #15 0x7f70b7d8acbe in arrow::compute::(anonymous namespace)::ExecuteInternal(arrow::compute::Function const&, std::vector<arrow::Datum, std::allocator<arrow::Datum> >, long, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) /arrow/cpp/src/arrow/compute/function.cc:341:21
       #16 0x7f70b7d89e44 in arrow::compute::Function::Execute(std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) const /arrow/cpp/src/arrow/compute/function.cc:348:10
       #17 0x7f70b7c175f8 in arrow::compute::CallFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) /arrow/cpp/src/arrow/compute/exec.cc:1369:16
       #18 0x562d401c26a1 in arrow::compute::CheckScalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::shared_ptr<arrow::Scalar>, std::allocator<std::shared_ptr<arrow::Scalar> > > const&, std::shared_ptr<arrow::Scalar>, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:86:3
       #19 0x562d401c7887 in arrow::compute::CheckScalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::Datum, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:127:5
       #20 0x562d401d8c8c in arrow::compute::CheckScalarUnary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, arrow::Datum, arrow::Datum, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:254:3
       #21 0x562d40187900 in arrow::compute::TestBooleanValidityKernels_IsNullRunEndEncoded_Test::TestBody() /arrow/cpp/src/arrow/compute/kernels/scalar_validity_test.cc:120:3
       #22 0x7f70ab9cd5aa in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607:10
       #23 0x7f70ab9b1c19 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643:14
       #24 0x7f70ab98ba82 in testing::Test::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2682:5
       #25 0x7f70ab98c7e8 in testing::TestInfo::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2861:11
       #26 0x7f70ab98d003 in testing::TestSuite::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:3015:28
       #27 0x7f70ab99d981 in testing::internal::UnitTestImpl::RunAllTests() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5855:44
       #28 0x7f70ab9d05aa in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607:10
       #29 0x7f70ab9b4419 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643:14
   
   previously allocated by thread T0 here:
       #0 0x562d3ffd41dd in operator new(unsigned long) (/build/cpp/debug/arrow-compute-scalar-utility-test+0x3001dd) (BuildId: 1004fad1909c492001a577cc65afaea748017106)
       #1 0x7f70b4b6c950 in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:127:27
       #2 0x7f70b4b6c6bc in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:464:20
       #3 0x7f70b4b6bba2 in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, (__gnu_cxx::_Lock_policy)2> >&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocated_ptr.h:98:21
       #4 0x7f70b4b6b30d in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, int, std::shared_ptr<arrow::DataType> >(arrow::Int32Scalar*&, std::_Sp_alloc_shared_tag<std::allocator<arrow::Int32Scalar> >, int&&, std::shared_ptr<arrow::DataType>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:648:19
       #5 0x7f70b4b6afd4 in std::__shared_ptr<arrow::Int32Scalar, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<arrow::Int32Scalar>, int, std::shared_ptr<arrow::DataType> >(std::_Sp_alloc_shared_tag<std::allocator<arrow::Int32Scalar> >, int&&, std::shared_ptr<arrow::DataType>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1342:14
       #6 0x7f70b4b6ac19 in std::shared_ptr<arrow::Int32Scalar>::shared_ptr<std::allocator<arrow::Int32Scalar>, int, std::shared_ptr<arrow::DataType> >(std::_Sp_alloc_shared_tag<std::allocator<arrow::Int32Scalar> >, int&&, std::shared_ptr<arrow::DataType>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:409:4
       #7 0x7f70b4b6a70c in std::shared_ptr<arrow::Int32Scalar> std::allocate_shared<arrow::Int32Scalar, std::allocator<arrow::Int32Scalar>, int, std::shared_ptr<arrow::DataType> >(std::allocator<arrow::Int32Scalar> const&, int&&, std::shared_ptr<arrow::DataType>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:862:14
       #8 0x7f70b4b6a154 in std::shared_ptr<arrow::Int32Scalar> std::make_shared<arrow::Int32Scalar, int, std::shared_ptr<arrow::DataType> >(int&&, std::shared_ptr<arrow::DataType>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:878:14
       #9 0x7f70b4bfe28c in arrow::Status arrow::MakeScalarImpl<int&&>::Visit<arrow::Int32Type, arrow::Int32Scalar, int, void>(arrow::Int32Type const&) /arrow/cpp/src/arrow/scalar.h:709:12
       #10 0x7f70b4bf9abb in arrow::Status arrow::VisitTypeInline<arrow::MakeScalarImpl<int&&> >(arrow::DataType const&, arrow::MakeScalarImpl<int&&>*) /arrow/cpp/src/arrow/visit_type_inline.h:54:5
       #11 0x7f70b4bf8fa4 in arrow::MakeScalarImpl<int&&>::Finish() && /arrow/cpp/src/arrow/scalar.h:740:5
       #12 0x7f70b4bf8c4f in arrow::Result<std::shared_ptr<arrow::Scalar> > arrow::MakeScalar<int>(std::shared_ptr<arrow::DataType>, int&&) /arrow/cpp/src/arrow/scalar.h:676:77
       #13 0x7f70b5136403 in arrow::ArraySpan::FillFromScalar(arrow::Scalar const&) /arrow/cpp/src/arrow/array/data.cc:433:20
       #14 0x7f70b7c0d105 in arrow::compute::detail::(anonymous namespace)::PromoteExecSpanScalars(arrow::compute::ExecSpan*) /arrow/cpp/src/arrow/compute/exec.cc:326:20
       #15 0x7f70b7c0b8b9 in arrow::compute::detail::ExecSpanIterator::Next(arrow::compute::ExecSpan*) /arrow/cpp/src/arrow/compute/exec.cc:442:7
       #16 0x7f70b7c3a24c in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::ExecuteSpans(arrow::compute::detail::ExecListener*) /arrow/cpp/src/arrow/compute/exec.cc:856:29
       #17 0x7f70b7c344dd in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::Execute(arrow::compute::ExecBatch const&, arrow::compute::detail::ExecListener*) /arrow/cpp/src/arrow/compute/exec.cc:808:14
       #18 0x7f70b7dba2e6 in arrow::compute::detail::FunctionExecutorImpl::Execute(std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, long) /arrow/cpp/src/arrow/compute/function.cc:276:5
       #19 0x7f70b7d8acbe in arrow::compute::(anonymous namespace)::ExecuteInternal(arrow::compute::Function const&, std::vector<arrow::Datum, std::allocator<arrow::Datum> >, long, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) /arrow/cpp/src/arrow/compute/function.cc:341:21
       #20 0x7f70b7d89e44 in arrow::compute::Function::Execute(std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) const /arrow/cpp/src/arrow/compute/function.cc:348:10
       #21 0x7f70b7c175f8 in arrow::compute::CallFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::compute::FunctionOptions const*, arrow::compute::ExecContext*) /arrow/cpp/src/arrow/compute/exec.cc:1369:16
       #22 0x562d401c26a1 in arrow::compute::CheckScalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::shared_ptr<arrow::Scalar>, std::allocator<std::shared_ptr<arrow::Scalar> > > const&, std::shared_ptr<arrow::Scalar>, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:86:3
       #23 0x562d401c7887 in arrow::compute::CheckScalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::Datum, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:127:5
       #24 0x562d401d8c8c in arrow::compute::CheckScalarUnary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, arrow::Datum, arrow::Datum, arrow::compute::FunctionOptions const*) /arrow/cpp/src/arrow/compute/kernels/test_util.cc:254:3
       #25 0x562d40187900 in arrow::compute::TestBooleanValidityKernels_IsNullRunEndEncoded_Test::TestBody() /arrow/cpp/src/arrow/compute/kernels/scalar_validity_test.cc:120:3
       #26 0x7f70ab9cd5aa in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607:10
       #27 0x7f70ab9b1c19 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643:14
       #28 0x7f70ab98ba82 in testing::Test::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2682:5
       #29 0x7f70ab98c7e8 in testing::TestInfo::Run() /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2861:11
   
   SUMMARY: AddressSanitizer: heap-use-after-free /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/predefined_ops.h:98:24 in bool __gnu_cxx::__ops::_Val_less_iter::operator()<long const, int const*>(long const&, int const*) const
   Shadow bytes around the buggy address:
     0x0c0c8001ec30: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fa
     0x0c0c8001ec40: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa
     0x0c0c8001ec50: fd fd fd fd fd fd fd fa fa fa fa fa fd fd fd fd
     0x0c0c8001ec60: fd fd fd fa fa fa fa fa 00 00 00 00 00 00 00 00
     0x0c0c8001ec70: fa fa fa fa 00 00 00 00 00 00 00 00 fa fa fa fa
   =>0x0c0c8001ec80: fd fd fd fd fd fd fd[fd]fa fa fa fa fa fa fa fa
     0x0c0c8001ec90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c0c8001eca0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c0c8001ecb0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c0c8001ecc0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c0c8001ecd0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
   Shadow byte legend (one shadow byte represents 8 application bytes):
     Addressable:           00
     Partially addressable: 01 02 03 04 05 06 07
     Heap left redzone:       fa
     Freed heap region:       fd
     Stack left redzone:      f1
     Stack mid redzone:       f2
     Stack right redzone:     f3
     Stack after return:      f5
     Stack use after scope:   f8
     Global redzone:          f9
     Global init order:       f6
     Poisoned by user:        f7
     Container overflow:      fc
     Array cookie:            ac
     Intra object redzone:    bb
     ASan internal:           fe
     Left alloca redzone:     ca
     Right alloca redzone:    cb
   ==9854==ABORTING
   ```
   
   </details>
   
   This might be caused from constructing a new array for the run ends, and that should be reusing the scratch space to do so?


-- 
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: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org