You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by GitBox <gi...@apache.org> on 2021/02/13 16:52:47 UTC

[GitHub] [trafficserver] linnaea commented on issue #5117: failed test: test_Logutils2 (in docker container)

linnaea commented on issue #5117:
URL: https://github.com/apache/trafficserver/issues/5117#issuecomment-778644537


   This seems like a more run-of-the-mill memory corruption, got SEGV when packaging but cannot reproduce on my local machine.
   
   However running valgrind locally gives this trace:
   ```
   linnaea@linux-k2lg:~> LD_LIBRARY_PATH="/var/tmp/build-root/openSUSE_Leap_15.2-x86_64/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/src/tscore/.libs:/var/tmp/build-root/openSUSE_Leap_15.2-x86_64/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/src/tscpp/util/.libs:$LD_LIBRARY_PATH" valgrind /var/tmp/build-root/openSUSE_Leap_15.2-x86_64/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/proxy/logging/.libs/test_LogUtils2
   ==17845== Memcheck, a memory error detector
   ==17845== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
   ==17845== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
   ==17845== Command: /var/tmp/build-root/openSUSE_Leap_15.2-x86_64/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/proxy/logging/.libs/test_LogUtils2
   ==17845==
   ===============================================================================
   All tests passed (120 assertions in 2 test cases)
   
   ==17845== Invalid read of size 8
   ==17845==    at 0x16110F: std::_Rb_tree<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)>, std::_Select1st<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> >, std::less<std::basic_string_view<char, std::char_traits<char> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> > >::_M_erase(std::_Rb_tree_node<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> >*) (stl_tree.h:1856)
   ==17845==    by 0x5E484A1: __cxa_finalize (in /lib64/libc-2.26.so)
   ==17845==    by 0x4E62F12: ??? (in /var/tmp/build-root/openSUSE_Leap_15.2-x86_64/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/src/tscore/.libs/libtscore.so.9.0.0)
   ==17845==    by 0x400FE62: _dl_fini (in /lib64/ld-2.26.so)
   ==17845==    by 0x5E48137: __run_exit_handlers (in /lib64/libc-2.26.so)
   ==17845==    by 0x5E48189: exit (in /lib64/libc-2.26.so)
   ==17845==    by 0x5E30350: (below main) (in /lib64/libc-2.26.so)
   ==17845==  Address 0x7e3bef8 is 24 bytes inside a block of size 56 free'd
   ==17845==    at 0x4C2FA0B: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   ==17845==    by 0x161126: deallocate (new_allocator.h:125)
   ==17845==    by 0x161126: deallocate (alloc_traits.h:462)
   ==17845==    by 0x161126: _M_put_node (stl_tree.h:592)
   ==17845==    by 0x161126: _M_drop_node (stl_tree.h:659)
   ==17845==    by 0x161126: std::_Rb_tree<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)>, std::_Select1st<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> >, std::less<std::basic_string_view<char, std::char_traits<char> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> > >::_M_erase(std::_Rb_tree_node<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> >*) (stl_tree.h:1858)
   ==17845==    by 0x5E48137: __run_exit_handlers (in /lib64/libc-2.26.so)
   ==17845==    by 0x5E48189: exit (in /lib64/libc-2.26.so)
   ==17845==    by 0x5E30350: (below main) (in /lib64/libc-2.26.so)
   ==17845==  Block was alloc'd at
   ==17845==    at 0x4C2E94F: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   ==17845==    by 0x159A12: allocate (new_allocator.h:111)
   ==17845==    by 0x159A12: allocate (alloc_traits.h:436)
   ==17845==    by 0x159A12: _M_get_node (stl_tree.h:588)
   ==17845==    by 0x159A12: _M_create_node<char const (&)[4], void (*)(ts::BufferWriter&, const ts::BWFSpec&)> (stl_tree.h:642)
   ==17845==    by 0x159A12: _M_emplace_unique<char const (&)[5], void (*)(ts::BufferWriter&, const ts::BWFSpec&)> (stl_tree.h:2351)
   ==17845==    by 0x159A12: emplace<char const (&)[5], void (*)(ts::BufferWriter&, const ts::BWFSpec&)> (stl_map.h:569)
   ==17845==    by 0x159A12: operator() (BufferWriterFormat.cc:1019)
   ==17845==    by 0x159A12: __static_initialization_and_destruction_0 (BufferWriterFormat.cc:1024)
   ==17845==    by 0x159A12: _GLOBAL__sub_I__ZN2ts7BWFSpec7DEFAULTE (BufferWriterFormat.cc:1035)
   ==17845==    by 0x1C93EC: __libc_csu_init (elf-init.c:88)
   ==17845==    by 0x5E302DA: (below main) (in /lib64/libc-2.26.so)
   ```
   And a bunch of other errors when exiting.
   
   Running gdb in the packaging container gives this backtrace:
   ```
   Starting program: /home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/proxy/logging/.libs/test_LogUtils2
   Missing separate debuginfos, use: zypper install glibc-debuginfo-2.26-lp152.26.3.1.x86_64
   [Thread debugging using libthread_db enabled]
   Using host libthread_db library "/lib64/libthread_db.so.1".
   ===============================================================================
   All tests passed (120 assertions in 2 test cases)
   
   
   Program received signal SIGSEGV, Segmentation fault.
   std::_Rb_tree<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)>, std::_Select1st<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> >, std::less<std::basic_string_view<char, std::char_traits<char> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> > >::_M_erase (this=this@entry=0x5555556ea0e0 <ts::bw_fmt::BWF_GLOBAL_TABLE>, __x=0x4545454545454545) at /usr/include/c++/7/bits/stl_tree.h:1856
   1856              _M_erase(_S_right(__x));
   Missing separate debuginfos, use: zypper install libcap2-debuginfo-2.25-lp152.4.115.x86_64 libgcc_s1-debuginfo-10.2.1+git583-lp152.2.2.x86_64 libhwloc15-debuginfo-2.1.0-lp152.2.3.1.x86_64 liblzma5-debuginfo-5.2.3-lp152.5.100.x86_64 libopenssl1_1-debuginfo-1.1.1d-lp152.7.9.1.x86_64 libpciaccess0-debuginfo-0.14-lp152.3.4.x86_64 libpcre1-debuginfo-8.41-lp152.6.104.x86_64 libstdc++6-debuginfo-10.2.1+git583-lp152.2.2.x86_64 libxml2-2-debuginfo-2.9.7-lp152.10.6.1.x86_64 libyaml-cpp0_6-debuginfo-0.6.1-lp152.5.2.1.x86_64 libz1-debuginfo-1.2.11-lp152.8.6.1.x86_64
   (gdb) bt
   #0  std::_Rb_tree<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)>, std::_Select1st<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> >, std::less<std::basic_string_view<char, std::char_traits<char> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> > >::_M_erase (this=this@entry=0x5555556ea0e0 <ts::bw_fmt::BWF_GLOBAL_TABLE>, __x=0x4545454545454545) at /usr/include/c++/7/bits/stl_tree.h:1856
   #1  0x000055555545911b in std::_Rb_tree<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)>, std::_Select1st<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> >, std::less<std::basic_string_view<char, std::char_traits<char> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, void (*)(ts::BufferWriter&, ts::BWFSpec const&)> > >::_M_erase (this=0x5555556ea0e0 <ts::bw_fmt::BWF_GLOBAL_TABLE>, __x=0x5555557272e0) at /usr/include/c++/7/bits/stl_tree.h:1856
   #2  0x00007ffff6a874a2 in __cxa_finalize () from /lib64/libc.so.6
   #3  0x00007ffff7b7af13 in __do_global_dtors_aux () from /home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/src/tscore/.libs/libtscore.so.9
   #4  0x00007fffffffe770 in ?? ()
   #5  0x00007ffff7de6e63 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
   Backtrace stopped: frame did not save the PC
   ```
   
   Also it seems to be reproducible without running any test in LogUtils2:
   ```
   abuild@linux-k2lg:/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0> LD_LIBRARY_PATH="/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/src/tscore/.libs:/home/abuild/rpmbuild/BUILD/trafficserver-9.0.0/src/tscpp/util/.libs:$LD_LIBRARY_PATH" proxy/logging/.libs/test_LogUtils2 --help
   
   Catch v2.11.0
   usage:
     test_LogUtils2 [<test name|pattern|tags> ... ] options
   
   [snip]
   
   For more detailed usage please see the project docs
   
   Segmentation fault (core dumped)
   ```


----------------------------------------------------------------
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.

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