[ https://issues.apache.org/jira/browse/ARROW-13639?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated ARROW-13639: ----------------------------------- Labels: pull-request-available (was: ) > [C++] Concatenate with an empty dictionary segfaults (ASan failure in > TestFilterKernelWithString/0.FilterDictionary) > -------------------------------------------------------------------------------------------------------------------- > > Key: ARROW-13639 > URL: https://issues.apache.org/jira/browse/ARROW-13639 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Reporter: David Li > Assignee: David Li > Priority: Major > Labels: pull-request-available > Fix For: 6.0.0 > > Time Spent: 10m > Remaining Estimate: 0h > > {noformat} > [ RUN ] TestFilterKernelWithString/0.FilterDictionary > ================================================================= > ==31836==ERROR: AddressSanitizer: global-buffer-overflow on address > 0x7f3788bac6c0 at pc 0x7f377c13382b bp 0x7ffe135dddb0 sp 0x7ffe135ddda8 > READ of size 4 at 0x7f3788bac6c0 thread T0 > #0 0x7f377c13382a in void arrow::internal::TransposeInts<signed char, > signed char>(signed char const*, signed char*, long, int const*) > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/util/int_util.cc:434 > #1 0x7f377c1243f2 in Visit<arrow::Int8Type> > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/util/int_util.cc:482 > #2 0x7f377c11a5f9 in VisitTypeInline<arrow::internal::(anonymous > namespace)::TransposeIntsDest<signed char> > > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/visitor_inline.h:89 > #3 0x7f377c119b51 in operator() > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/util/int_util.cc:491 > #4 0x7f377c102ac9 in Visit<arrow::Int8Type> > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/util/int_util.cc:508 > #5 0x7f377c0f7c88 in VisitTypeInline<arrow::internal::(anonymous > namespace)::TransposeIntsSrc> > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/visitor_inline.h:89 > #6 0x7f377c0f479d in operator() > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/util/int_util.cc:515 > #7 0x7f377c0f49f3 in arrow::internal::TransposeInts(arrow::DataType > const&, arrow::DataType const&, unsigned char const*, unsigned char*, long, > long, long, int const*) > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/util/int_util.cc:525 > #8 0x7f377b6e72fd in ConcatenateDictionaryIndices > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/array/concatenate.cc:289 > #9 0x7f377b6e85f0 in Visit > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/array/concatenate.cc:320 > #10 0x7f377b6ef4cf in VisitTypeInline<arrow::(anonymous > namespace)::ConcatenateImpl> > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/visitor_inline.h:89 > #11 0x7f377b6e11a2 in Concatenate > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/array/concatenate.cc:193 > #12 0x7f377b6ed681 in > arrow::Concatenate(std::vector<std::shared_ptr<arrow::Array>, > std::allocator<std::shared_ptr<arrow::Array> > > const&, arrow::MemoryPool*) > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/array/concatenate.cc:481 > #13 0x55adf99765b9 in > arrow::compute::TestFilterKernel::AssertFilter(std::shared_ptr<arrow::Array> > const&, std::shared_ptr<arrow::Array> const&, std::shared_ptr<arrow::Array> > const&) > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/compute/kernels/vector_selection_test.cc:221 > #14 0x55adf9c12be2 in > arrow::compute::TestFilterKernelWithString<arrow::BinaryType>::AssertFilterDictionary(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&, > std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&, std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/compute/kernels/vector_selection_test.cc:517 > #15 0x55adf9bb251d in > arrow::compute::TestFilterKernelWithString_FilterDictionary_Test<arrow::BinaryType>::TestBody() > > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/compute/kernels/vector_selection_test.cc:531 > #16 0x7f378ac3698d in void > testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, > void>(testing::Test*, void (testing::Test::*)(), char const*) > (/home/lidavidm/miniconda3/envs/arrow4/lib/libgtest.so+0x4c98d) > #17 0x7f378ac36be0 in testing::Test::Run() > (/home/lidavidm/miniconda3/envs/arrow4/lib/libgtest.so+0x4cbe0) > #18 0x7f378ac36f0e in testing::TestInfo::Run() > (/home/lidavidm/miniconda3/envs/arrow4/lib/libgtest.so+0x4cf0e) > #19 0x7f378ac37035 in testing::TestSuite::Run() > (/home/lidavidm/miniconda3/envs/arrow4/lib/libgtest.so+0x4d035) > #20 0x7f378ac375eb in testing::internal::UnitTestImpl::RunAllTests() > (/home/lidavidm/miniconda3/envs/arrow4/lib/libgtest.so+0x4d5eb) > #21 0x7f378ac37858 in testing::UnitTest::Run() > (/home/lidavidm/miniconda3/envs/arrow4/lib/libgtest.so+0x4d858) > #22 0x7f378ac9707e in main > (/home/lidavidm/miniconda3/envs/arrow4/lib/libgtest_main.so+0x107e) > #23 0x7f377180cbf6 in __libc_start_main > (/lib/x86_64-linux-gnu/libc.so.6+0x21bf6) > #24 0x55adf9431658 > (/home/lidavidm/Code/upstream/merging/build/debug/arrow-compute-vector-test+0xbaa658)0x7f3788bac6c1 > is located 0 bytes to the right of global variable 'zero_size_area' defined > in '/home/lidavidm/Code/upstream/merging/cpp/src/arrow/memory_pool.cc:188:36' > (0x7f3788bac6c0) of size 1 > 'zero_size_area' is ascii string '' > SUMMARY: AddressSanitizer: global-buffer-overflow > /home/lidavidm/Code/upstream/merging/cpp/src/arrow/util/int_util.cc:434 in > void arrow::internal::TransposeInts<signed char, signed char>(signed char > const*, signed char*, long, int const*) > Shadow bytes around the buggy address: > 0x0fe77116d880: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 00 00 f9 f9 > 0x0fe77116d890: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 00 00 f9 f9 > 0x0fe77116d8a0: f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 > 0x0fe77116d8b0: 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 f9 f9 f9 f9 f9 > 0x0fe77116d8c0: 00 f9 f9 f9 f9 f9 f9 f9 02 f9 f9 f9 f9 f9 f9 f9 > =>0x0fe77116d8d0: 00 f9 f9 f9 f9 f9 f9 f9[01]f9 f9 f9 f9 f9 f9 f9 > 0x0fe77116d8e0: 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 00 00 00 00 > 0x0fe77116d8f0: 01 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9 > 0x0fe77116d900: 00 00 00 00 00 00 00 00 00 00 00 00 01 f9 f9 f9 > 0x0fe77116d910: f9 f9 f9 f9 01 f9 f9 f9 f9 f9 f9 f9 01 f9 f9 f9 > 0x0fe77116d920: f9 f9 f9 f9 01 f9 f9 f9 f9 f9 f9 f9 01 f9 f9 f9 > 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 > Shadow gap: cc > ==31836==ABORTING > fish: Job 1, './debug/arrow-compute-vector-te…' terminated by signal SIGABRT > (Abort) {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)