Skip to content

Instantly share code, notes, and snippets.

@wesm
Created October 23, 2020 20:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wesm/88aa66f90a642fd0a051c4a7960de350 to your computer and use it in GitHub Desktop.
Save wesm/88aa66f90a642fd0a051c4a7960de350 to your computer and use it in GitHub Desktop.
$ ctest -L unittest
Test project /Users/wesm/code/arrow/cpp/build
Start 1: plasma-serialization-tests
1/56 Test #1: plasma-serialization-tests ........ Passed 2.15 sec
Start 2: plasma-client-tests
2/56 Test #2: plasma-client-tests ............... Passed 16.81 sec
Start 3: plasma-external-store-tests
3/56 Test #3: plasma-external-store-tests ....... Passed 0.90 sec
Start 4: arrow-array-test
4/56 Test #4: arrow-array-test ..................***Failed 0.74 sec
Start 5: arrow-buffer-test
5/56 Test #5: arrow-buffer-test .................***Failed 1.10 sec
Start 6: arrow-extension-type-test
6/56 Test #6: arrow-extension-type-test .........***Failed 1.10 sec
Start 7: arrow-misc-test
7/56 Test #7: arrow-misc-test ...................***Failed 1.14 sec
Start 8: arrow-public-api-test
8/56 Test #8: arrow-public-api-test ............. Passed 0.54 sec
Start 9: arrow-scalar-test
9/56 Test #9: arrow-scalar-test .................***Failed 1.15 sec
Start 10: arrow-type-test
10/56 Test #10: arrow-type-test ...................***Failed 1.18 sec
Start 11: arrow-table-test
11/56 Test #11: arrow-table-test ..................***Failed 1.15 sec
Start 12: arrow-tensor-test
c12/56 Test #12: arrow-tensor-test .................***Failed 1.17 sec
Start 13: arrow-sparse-tensor-test
^C
(pyarrow-dev) 15:50 ~/code/arrow/cpp/build (master)$ ./debug/arrow-array-test
=================================================================
==1710==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60200000029c at pc 0x00010c5dc9f3 bp 0x7ffeee9cbf20 sp 0x7ffeee9cb6e8
READ of size 16 at 0x60200000029c thread T0
#0 0x10c5dc9f2 in __asan_memcpy (/Users/wesm/miniconda/envs/pyarrow-dev/lib/clang/10.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib:x86_64+0x419f2)
#1 0x10158c824 in std::__1::enable_if<((std::__1::integral_constant<bool, true>::value) || (!(__has_construct<std::__1::allocator<int>, bool*, bool>::value))) && (is_trivially_move_constructible<bool>::value), void>::type std::__1::allocator_traits<std::__1::allocator<int> >::__construct_backward_with_exception_guarantees<int>(std::__1::allocator<int>&, bool*, bool*, bool*&) (/Users/wesm/code/arrow/cpp/build/./debug/arrow-array-test:x86_64+0x10035e824)
#2 0x10158b212 in std::__1::vector<int, std::__1::allocator<int> >::__swap_out_circular_buffer(std::__1::__split_buffer<int, std::__1::allocator<int>&>&) (/Users/wesm/code/arrow/cpp/build/./debug/arrow-array-test:x86_64+0x10035d212)
#3 0x102fd51b4 in void std::__1::vector<int, std::__1::allocator<int> >::__push_back_slow_path<int const>(int const&) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x9a1b4)
#4 0x102f63d0e in testing::TestCase::AddTestInfo(testing::TestInfo*) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x28d0e)
#5 0x102f610a0 in testing::internal::UnitTestImpl::AddTestInfo(void (*)(), void (*)(), testing::TestInfo*) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x260a0)
#6 0x102f60e26 in testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeLocation, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x25e26)
#7 0x101965a02 in __cxx_global_var_init.41 (/Users/wesm/code/arrow/cpp/build/./debug/arrow-array-test:x86_64+0x100737a02)
#8 0x101976d08 in _GLOBAL__sub_I_array_test.cc (/Users/wesm/code/arrow/cpp/build/./debug/arrow-array-test:x86_64+0x100748d08)
#9 0x10306b1d2 in ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (/usr/lib/dyld:x86_64+0x1b1d2)
#10 0x10306b5dd in ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (/usr/lib/dyld:x86_64+0x1b5dd)
#11 0x103065ffa in ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (/usr/lib/dyld:x86_64+0x15ffa)
#12 0x1030640b3 in ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (/usr/lib/dyld:x86_64+0x140b3)
#13 0x103064153 in ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (/usr/lib/dyld:x86_64+0x14153)
#14 0x1030526a7 in dyld::initializeMainExecutable() (/usr/lib/dyld:x86_64+0x26a7)
#15 0x103057bb9 in dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (/usr/lib/dyld:x86_64+0x7bb9)
#16 0x103051226 in dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (/usr/lib/dyld:x86_64+0x1226)
#17 0x103051024 in _dyld_start (/usr/lib/dyld:x86_64+0x1024)
0x6020000002a0 is located 0 bytes to the right of 16-byte region [0x602000000290,0x6020000002a0)
allocated by thread T0 here:
#0 0x10c5eb50d in wrap__Znwm (/Users/wesm/miniconda/envs/pyarrow-dev/lib/clang/10.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5050d)
#1 0x102fd5bd4 in std::__1::__split_buffer<int, std::__1::allocator<int>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<int>&) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x9abd4)
#2 0x102fd523c in std::__1::__split_buffer<int, std::__1::allocator<int>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<int>&) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x9a23c)
#3 0x102fd5150 in void std::__1::vector<int, std::__1::allocator<int> >::__push_back_slow_path<int const>(int const&) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x9a150)
#4 0x102f63d0e in testing::TestCase::AddTestInfo(testing::TestInfo*) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x28d0e)
#5 0x102f610a0 in testing::internal::UnitTestImpl::AddTestInfo(void (*)(), void (*)(), testing::TestInfo*) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x260a0)
#6 0x102f60e26 in testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeLocation, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*) (/Users/wesm/miniconda/envs/pyarrow-dev/lib/libgtest.dylib:x86_64+0x25e26)
#7 0x101965302 in __cxx_global_var_init.13 (/Users/wesm/code/arrow/cpp/build/./debug/arrow-array-test:x86_64+0x100737302)
#8 0x101976cfe in _GLOBAL__sub_I_array_test.cc (/Users/wesm/code/arrow/cpp/build/./debug/arrow-array-test:x86_64+0x100748cfe)
#9 0x10306b1d2 in ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (/usr/lib/dyld:x86_64+0x1b1d2)
#10 0x10306b5dd in ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (/usr/lib/dyld:x86_64+0x1b5dd)
#11 0x103065ffa in ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (/usr/lib/dyld:x86_64+0x15ffa)
#12 0x1030640b3 in ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (/usr/lib/dyld:x86_64+0x140b3)
#13 0x103064153 in ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (/usr/lib/dyld:x86_64+0x14153)
#14 0x1030526a7 in dyld::initializeMainExecutable() (/usr/lib/dyld:x86_64+0x26a7)
#15 0x103057bb9 in dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (/usr/lib/dyld:x86_64+0x7bb9)
#16 0x103051226 in dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (/usr/lib/dyld:x86_64+0x1226)
#17 0x103051024 in _dyld_start (/usr/lib/dyld:x86_64+0x1024)
SUMMARY: AddressSanitizer: heap-buffer-overflow (/Users/wesm/miniconda/envs/pyarrow-dev/lib/clang/10.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib:x86_64+0x419f2) in __asan_memcpy
Shadow bytes around the buggy address:
0x1c0400000000: fa fa fd fd fa fa 00 00 fa fa 00 04 fa fa 00 04
0x1c0400000010: fa fa 00 00 fa fa 00 06 fa fa 00 fa fa fa 00 00
0x1c0400000020: fa fa 00 fa fa fa 00 fa fa fa 00 fa fa fa 00 fa
0x1c0400000030: fa fa 00 fa fa fa 04 fa fa fa fd fa fa fa fd fa
0x1c0400000040: fa fa 00 fa fa fa fd fd fa fa fd fa fa fa 00 fa
=>0x1c0400000050: fa fa 00[04]fa fa 00 fa fa fa 00 fa fa fa fa fa
0x1c0400000060: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c0400000070: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c0400000080: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c0400000090: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c04000000a0: 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
Shadow gap: cc
==1710==ABORTING
Abort trap: 6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment