You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pegasus.apache.org by GitBox <gi...@apache.org> on 2022/07/19 02:57:37 UTC

[GitHub] [incubator-pegasus] empiredan opened a new issue, #1066: Still-running timer will lead to heap-use-after-free error after percentile is destructed

empiredan opened a new issue, #1066:
URL: https://github.com/apache/incubator-pegasus/issues/1066

   The timer will call `cancel()` while percentile is being destructed, however it won't wait until the callback function is finished. This will lead to heap-use-after-free error as follows (https://github.com/apache/incubator-pegasus/runs/7388468584?check_suite_focus=true):
   ```
   [----------] 11 tests from metrics_test
   [ RUN      ] metrics_test.create_entity
   [       OK ] metrics_test.create_entity (2 ms)
   [ RUN      ] metrics_test.recreate_entity
   [       OK ] metrics_test.recreate_entity (0 ms)
   [ RUN      ] metrics_test.create_metric
   [       OK ] metrics_test.create_metric (0 ms)
   [ RUN      ] metrics_test.recreate_metric
   [       OK ] metrics_test.recreate_metric (0 ms)
   [ RUN      ] metrics_test.gauge_int64
   [       OK ] metrics_test.gauge_int64 (0 ms)
   [ RUN      ] metrics_test.gauge_double
   [       OK ] metrics_test.gauge_double (0 ms)
   [ RUN      ] metrics_test.gauge_increment
   [       OK ] metrics_test.gauge_increment (2698 ms)
   [ RUN      ] metrics_test.counter
   [       OK ] metrics_test.counter (3526 ms)
   [ RUN      ] metrics_test.volatile_counter
   [       OK ] metrics_test.volatile_counter (11942 ms)
   [ RUN      ] metrics_test.percentile_int64
   [       OK ] metrics_test.percentile_int64 (5458 ms)
   [ RUN      ] metrics_test.percentile_double
   [       OK ] metrics_test.percentile_double (5451 ms)
   [----------] 11 tests from metrics_test (29077 ms total)
   [----------] 4 tests from nth_element_test
   [ RUN      ] nth_element_test.basic_int64
   [       OK ] nth_element_test.basic_int64 (0 ms)
   [ RUN      ] nth_element_test.generated_int64
   [       OK ] nth_element_test.generated_int64 (5 ms)
   [ RUN      ] nth_element_test.basic_double
   [       OK ] nth_element_test.basic_double (0 ms)
   [ RUN      ] nth_element_test.generated_double
   [       OK ] nth_element_test.generated_double (8 ms)
   [----------] 4 tests from nth_element_test (13 ms total)
   [----------] 4 tests from table_printer_test
   [ RUN      ] table_printer_test.empty_content_test
   [       OK ] table_printer_test.empty_content_test (0 ms)
   [ RUN      ] table_printer_test.empty_name_test
   [       OK ] table_printer_test.empty_name_test (0 ms)
   [ RUN      ] table_printer_test.single_column_test
   [       OK ] table_printer_test.single_column_test (0 ms)
   [ RUN      ] table_printer_test.multi_columns_test
   [       OK ] table_printer_test.multi_columns_test (0 ms)
   [----------] 4 tests from table_printer_test (0 ms total)
   [----------] 3 tests from multi_table_printer_test
   [ RUN      ] multi_table_printer_test.empty_content_test
   [       OK ] multi_table_printer_test.empty_content_test (0 ms)
   [ RUN      ] multi_table_printer_test.single_empty_sub_test
   [       OK ] multi_table_printer_test.single_empty_sub_test (0 ms)
   [ RUN      ] multi_table_printer_test.multi_sub_test
   [       OK ] multi_table_printer_test.multi_sub_test (0 ms)
   [----------] 3 tests from multi_table_printer_test (0 ms total)
   [----------] 2 tests from random
   [ RUN      ] random.sanity
   [       OK ] random.sanity (1 ms)
   [ RUN      ] random.multi_threaded
   [       OK ] random.multi_threaded (88 ms)
   [----------] 2 tests from random (89 ms total)
   [----------] 3 tests from MakeUniqueTest
   [ RUN      ] MakeUniqueTest.Basic
   [       OK ] MakeUniqueTest.Basic (0 ms)
   [ RUN      ] MakeUniqueTest.MoveOnlyTypeAndValue
   [       OK ] MakeUniqueTest.MoveOnlyTypeAndValue (0 ms)
   [ RUN      ] MakeUniqueTest.AcceptMoveOnly
   [       OK ] MakeUniqueTest.AcceptMoveOnly (0 ms)
   [----------] 3 tests from MakeUniqueTest (0 ms total)
   [----------] 2 tests from Make_UniqueTest
   [ RUN      ] Make_UniqueTest.Array
   [       OK ] Make_UniqueTest.Array (0 ms)
   [ RUN      ] Make_UniqueTest.NotAmbiguousWithStdMakeUnique
   [       OK ] Make_UniqueTest.NotAmbiguousWithStdMakeUnique (0 ms)
   [----------] 2 tests from Make_UniqueTest (0 ms total)
   [----------] 8 tests from string_conv
   [ RUN      ] string_conv.buf2bool
   [       OK ] string_conv.buf2bool (0 ms)
   [ RUN      ] string_conv.buf2int32
   [       OK ] string_conv.buf2int32 (0 ms)
   [ RUN      ] string_conv.buf2int64
   [       OK ] string_conv.buf2int64 (0 ms)
   [ RUN      ] string_conv.buf2uint64
   [       OK ] string_conv.buf2uint64 (0 ms)
   [ RUN      ] string_conv.buf2uint32
   [       OK ] string_conv.buf2uint32 (0 ms)
   [ RUN      ] string_conv.int64_partial
   [       OK ] string_conv.int64_partial (0 ms)
   [ RUN      ] string_conv.uint64_partial
   [       OK ] string_conv.uint64_partial (0 ms)
   [ RUN      ] string_conv.buf2double
   [       OK ] string_conv.buf2double (0 ms)
   [----------] 8 tests from string_conv (2 ms total)
   [----------] 15 tests from StringViewTest
   [ RUN      ] StringViewTest.STL2
   [       OK ] StringViewTest.STL2 (0 ms)
   [ RUN      ] StringViewTest.STL2Substr
   [       OK ] StringViewTest.STL2Substr (1 ms)
   [ RUN      ] StringViewTest.Ctor
   [       OK ] StringViewTest.Ctor (0 ms)
   [ RUN      ] StringViewTest.Swap
   [       OK ] StringViewTest.Swap (0 ms)
   [ RUN      ] StringViewTest.ComparisonOperators
   [       OK ] StringViewTest.ComparisonOperators (0 ms)
   [ RUN      ] StringViewTest.STL1
   [       OK ] StringViewTest.STL1 (0 ms)
   [ RUN      ] StringViewTest.Remove
   [       OK ] StringViewTest.Remove (0 ms)
   [ RUN      ] StringViewTest.Set
   [       OK ] StringViewTest.Set (0 ms)
   [ RUN      ] StringViewTest.FrontBack
   [       OK ] StringViewTest.FrontBack (0 ms)
   [ RUN      ] StringViewTest.FrontBackSingleChar
   [       OK ] StringViewTest.FrontBackSingleChar (0 ms)
   [ RUN      ] StringViewTest.NULLInput
   [       OK ] StringViewTest.NULLInput (0 ms)
   [ RUN      ] StringViewTest.ExplicitConversionOperator
   [       OK ] StringViewTest.ExplicitConversionOperator (0 ms)
   [ RUN      ] StringViewTest.Noexcept
   [       OK ] StringViewTest.Noexcept (0 ms)
   [ RUN      ] StringViewTest.HeterogenousStringViewEquals
   [       OK ] StringViewTest.HeterogenousStringViewEquals (0 ms)
   [ RUN      ] StringViewTest.FindConformance
   [       OK ] StringViewTest.FindConformance (0 ms)
   [----------] 15 tests from StringViewTest (3 ms total)
   [----------] 2 tests from StringViewStreamTest
   [ RUN      ] StringViewStreamTest.Padding
   [       OK ] StringViewStreamTest.Padding (1 ms)
   [ RUN      ] StringViewStreamTest.ResetsWidth
   [       OK ] StringViewStreamTest.ResetsWidth (0 ms)
   [----------] 2 tests from StringViewStreamTest (1 ms total)
   [----------] 5 tests from time_utils
   [ RUN      ] time_utils.hh_mm_to_seconds
   [       OK ] time_utils.hh_mm_to_seconds (0 ms)
   [ RUN      ] time_utils.get_unix_sec_today_midnight
   [       OK ] time_utils.get_unix_sec_today_midnight (0 ms)
   [ RUN      ] time_utils.hh_mm_today_to_unix_sec
   [       OK ] time_utils.hh_mm_today_to_unix_sec (0 ms)
   [ RUN      ] time_utils.get_current_physical_time_ns
   [       OK ] time_utils.get_current_physical_time_ns (0 ms)
   [ RUN      ] time_utils.time_ms_to_string
   [       OK ] time_utils.time_ms_to_string (0 ms)
   [----------] 5 tests from time_utils (0 ms total)
   [----------] 2 tests from token_bucket_throttling_controller_test
   [ RUN      ] token_bucket_throttling_controller_test.test_parse_env_basic_token_bucket_throttling
   [       OK ] token_bucket_throttling_controller_test.test_parse_env_basic_token_bucket_throttling (1 ms)
   [ RUN      ] token_bucket_throttling_controller_test.throttle_test
   [       OK ] token_bucket_throttling_controller_test.throttle_test (14583 ms)
   [----------] 2 tests from token_bucket_throttling_controller_test (14584 ms total)
   [----------] 1 test from token_buckets_test
   [ RUN      ] token_buckets_test.test_token_buckets
   [       OK ] token_buckets_test.test_token_buckets (0 ms)
   [----------] 1 test from token_buckets_test (0 ms total)
   [----------] 4 tests from TokenBucket/TokenBucketTest
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/0
   [       OK ] TokenBucket/TokenBucketTest.sanity/0 (1 ms)
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/1
   [       OK ] TokenBucket/TokenBucketTest.sanity/1 (0 ms)
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/2
   [       OK ] TokenBucket/TokenBucketTest.sanity/2 (4 ms)
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/3
   [       OK ] TokenBucket/TokenBucketTest.sanity/3 (1 ms)
   [----------] 4 tests from TokenBucket/TokenBucketTest (6 ms total)
   [----------] Global test environment tear-down
   [==========] 168 tests from 32 test cases ran. (48186 ms total)
   [  PASSED  ] 168 tests.
   =================================================================
   ==4764==ERROR: AddressSanitizer: heap-use-after-free on address 0x6100000076c0 at pc 0x556c72dfa966 bp 0x15393fce8940 sp 0x15393fce8930
   READ of size 8 at 0x6100000076c0 thread T129
       #0 0x556c72dfa965 in void dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >::operator()<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > > >(__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >) /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/nth_element.h:90
       #1 0x556c72dfa965 in dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::find_nth_elements() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/metrics.h:688
       #2 0x556c72db5c9e in void std::__invoke_impl<void, void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*&)(), dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*&>(std::__invoke_memfun_deref, void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*&)(), dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*&) /usr/include/c++/7/bits/invoke.h:73
       #3 0x556c72db5c9e in std::__invoke_result<void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*&)(), dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*&>::type std::__invoke<void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*&)(), dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*&>(void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*&)(), dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*&) /usr/include/c++/7/bits/invoke.h:95
       #4 0x556c72db5c9e in void std::_Bind<void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*(dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/include/c++/7/functional:467
       #5 0x556c72db5c9e in void std::_Bind<void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*(dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*))()>::operator()<, void>() /usr/include/c++/7/functional:551
       #6 0x556c72db5c9e in std::_Function_handler<void (), std::_Bind<void (dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::*(dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>*))()> >::_M_invoke(std::_Any_data const&) /usr/include/c++/7/bits/std_function.h:316
       #7 0x153945de7883 in std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706
       #8 0x153945de7883 in dsn::percentile_timer::on_timer(boost::system::error_code const&) /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/metrics.cpp:145
       #9 0x153945e0dce0 in void std::__invoke_impl<void, void (dsn::percentile_timer::*&)(boost::system::error_code const&), dsn::percentile_timer*&, boost::system::error_code const&>(std::__invoke_memfun_deref, void (dsn::percentile_timer::*&)(boost::system::error_code const&), dsn::percentile_timer*&, boost::system::error_code const&) /usr/include/c++/7/bits/invoke.h:73
       #10 0x153945e0dce0 in std::__invoke_result<void (dsn::percentile_timer::*&)(boost::system::error_code const&), dsn::percentile_timer*&, boost::system::error_code const&>::type std::__invoke<void (dsn::percentile_timer::*&)(boost::system::error_code const&), dsn::percentile_timer*&, boost::system::error_code const&>(void (dsn::percentile_timer::*&)(boost::system::error_code const&), dsn::percentile_timer*&, boost::system::error_code const&) /usr/include/c++/7/bits/invoke.h:95
       #11 0x153945e0dce0 in void std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>::__call<void, boost::system::error_code const&, 0ul, 1ul>(std::tuple<boost::system::error_code const&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/7/functional:467
       #12 0x153945e0dce0 in void std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>::operator()<boost::system::error_code const&, void>(boost::system::error_code const&) /usr/include/c++/7/functional:551
       #13 0x153945e0dce0 in boost::asio::detail::binder1<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::system::error_code>::operator()() /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/detail/bind_handler.hpp:65
       #14 0x153945e0dce0 in void boost::asio::asio_handler_invoke<boost::asio::detail::binder1<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::system::error_code>&, ...) /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/handler_invoke_hook.hpp:69
       #15 0x153945e0dce0 in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::system::error_code>, std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)> >(boost::asio::detail::binder1<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::system::error_code>&, std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>&) /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/detail/handler_invoke_helpers.hpp:37
       #16 0x153945e0dce0 in void boost::asio::detail::handler_work<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::asio::system_executor>::complete<boost::asio::detail::binder1<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>, boost::system::error_code>&, std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)>&) /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/detail/handler_work.hpp:82
       #17 0x153945e0dce0 in boost::asio::detail::wait_handler<std::_Bind<void (dsn::percentile_timer::*(dsn::percentile_timer*, std::_Placeholder<1>))(boost::system::error_code const&)> >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/detail/wait_handler.hpp:72
       #18 0x153945e3b3d7 in boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/detail/scheduler_operation.hpp:40
       #19 0x153945e3b3d7 in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/detail/impl/scheduler.ipp:401
       #20 0x153945e3b3d7 in boost::asio::detail::scheduler::run(boost::system::error_code&) /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/detail/impl/scheduler.ipp:154
       #21 0x153945e3b3d7 in boost::asio::io_context::run() /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/boost/asio/impl/io_context.ipp:62
       #22 0x153945e3b3d7 in operator() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/shared_io_service.cpp:46
       #23 0x153945e3b3d7 in __invoke_impl<void, dsn::tools::shared_io_service::shared_io_service()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
       #24 0x153945e3b3d7 in __invoke<dsn::tools::shared_io_service::shared_io_service()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
       #25 0x153945e3b3d7 in _M_invoke<0> /usr/include/c++/7/thread:234
       #26 0x153945e3b3d7 in operator() /usr/include/c++/7/thread:243
       #27 0x153945e3b3d7 in _M_run /usr/include/c++/7/thread:186
       #28 0x1539451f06de  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd6de)
       #29 0x1539459b66da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
       #30 0x153944c4b61e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x12161e)
   0x6100000076c0 is located 128 bytes inside of 192-byte region [0x610000007640,0x610000007700)
   freed by thread T0 here:
       #0 0x1539462a39c8 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe19c8)
       #1 0x556c72dc6ace in dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>::~percentile() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/metrics.h:663
       #2 0x556c72d9c8b9 in dsn::ref_counter::release_ref() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/autoref_ptr.h:84
       #3 0x556c72d9c8b9 in dsn::ref_ptr<dsn::metric>::~ref_ptr() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/autoref_ptr.h:139
       #4 0x556c72d9c8b9 in std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >::~pair() /usr/include/c++/7/bits/stl_pair.h:208
       #5 0x556c72d9c8b9 in void __gnu_cxx::new_allocator<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > >::destroy<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > >(std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >*) /usr/include/c++/7/ext/new_allocator.h:140
       #6 0x556c72d9c8b9 in void std::allocator_traits<std::allocator<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > > >::destroy<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > >(std::allocator<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > >&, std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >*) /usr/include/c++/7/bits/alloc_traits.h:487
       #7 0x556c72d9c8b9 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >, false> > >::_M_deallocate_node(std::__detail::_Hash_node<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >, false>*) /usr/include/c++/7/bits/hashtable_policy.h:[2084](https://github.com/apache/incubator-pegasus/runs/7388468584?check_suite_focus=true#step:7:2085)
       #8 0x556c72dc1873 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >, false> > >::_M_deallocate_nodes(std::__detail::_Hash_node<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >, false>*) /usr/include/c++/7/bits/hashtable_policy.h:[2097](https://github.com/apache/incubator-pegasus/runs/7388468584?check_suite_focus=true#step:7:2098)
       #9 0x556c72dc1873 in std::_Hashtable<dsn::metric_prototype const*, std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >, std::allocator<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > >, std::__detail::_Select1st, std::equal_to<dsn::metric_prototype const*>, std::hash<dsn::metric_prototype const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::clear() /usr/include/c++/7/bits/hashtable.h:2032
       #10 0x153945de2e6b in std::_Hashtable<dsn::metric_prototype const*, std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> >, std::allocator<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > >, std::__detail::_Select1st, std::equal_to<dsn::metric_prototype const*>, std::hash<dsn::metric_prototype const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::~_Hashtable() /usr/include/c++/7/bits/hashtable.h:1358
       #11 0x153945de2e6b in std::unordered_map<dsn::metric_prototype const*, dsn::ref_ptr<dsn::metric>, std::hash<dsn::metric_prototype const*>, std::equal_to<dsn::metric_prototype const*>, std::allocator<std::pair<dsn::metric_prototype const* const, dsn::ref_ptr<dsn::metric> > > >::~unordered_map() /usr/include/c++/7/bits/unordered_map.h:101
       #12 0x153945de2e6b in dsn::metric_entity::~metric_entity() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/metrics.cpp:32
       #13 0x153945de2fe0 in dsn::metric_entity::~metric_entity() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/metrics.cpp:32
       #14 0x556c72dbd841 in dsn::ref_counter::release_ref() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/autoref_ptr.h:84
       #15 0x556c72dbd841 in dsn::ref_ptr<dsn::metric_entity>::~ref_ptr() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/autoref_ptr.h:139
       #16 0x556c72dbd841 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >::~pair() /usr/include/c++/7/bits/stl_pair.h:208
       #17 0x556c72dbd841 in void __gnu_cxx::new_allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >*) /usr/include/c++/7/ext/new_allocator.h:140
       #18 0x556c72dbd841 in void std::allocator_traits<std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> > >(std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >*) /usr/include/c++/7/bits/alloc_traits.h:487
       #19 0x556c72dbd841 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >, true> > >::_M_deallocate_node(std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >, true>*) /usr/include/c++/7/bits/hashtable_policy.h:2084
       #20 0x556c72dbd841 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >, true> > >::_M_deallocate_nodes(std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >, true>*) /usr/include/c++/7/bits/hashtable_policy.h:2097
       #21 0x556c72dbd841 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::clear() /usr/include/c++/7/bits/hashtable.h:2032
       #22 0x556c72dbd841 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dsn::ref_ptr<dsn::metric_entity> > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::~_Hashtable() /usr/include/c++/7/bits/hashtable.h:1358
       #23 0x153944b6d030  (/lib/x86_64-linux-gnu/libc.so.6+0x43030)
   previously allocated by thread T0 here:
       #0 0x1539462a2448 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0448)
       #1 0x556c72e129b2 in dsn::ref_ptr<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void> > dsn::metric_entity::find_or_create<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void>, unsigned long&, std::set<dsn::kth_percentile_type, std::less<dsn::kth_percentile_type>, std::allocator<dsn::kth_percentile_type> > const&, unsigned long&>(dsn::metric_prototype const*, unsigned long&, std::set<dsn::kth_percentile_type, std::less<dsn::kth_percentile_type>, std::allocator<dsn::kth_percentile_type> > const&, unsigned long&) /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/metrics.h:158
       #2 0x556c72e129b2 in dsn::ref_ptr<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void> > dsn::metric_prototype_with<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void> >::instantiate<unsigned long&, std::set<dsn::kth_percentile_type, std::less<dsn::kth_percentile_type>, std::allocator<dsn::kth_percentile_type> > const&, unsigned long&>(dsn::ref_ptr<dsn::metric_entity> const&, unsigned long&, std::set<dsn::kth_percentile_type, std::less<dsn::kth_percentile_type>, std::allocator<dsn::kth_percentile_type> > const&, unsigned long&) const /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/metrics.h:283
       #3 0x556c72e129b2 in void dsn::run_percentile<double, dsn::metric_prototype_with<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void> >, dsn::floating_checker<double> >(dsn::ref_ptr<dsn::metric_entity> const&, dsn::metric_prototype_with<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void> > const&, std::vector<double, std::allocator<double> > const&, unsigned long, unsigned long, unsigned long, std::set<dsn::kth_percentile_type, std::less<dsn::kth_percentile_type>, std::allocator<dsn::kth_percentile_type> > const&, unsigned long, unsigned long, std::vector<double, std::allocator<double> > const&, dsn::floating_checker<double>) /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/test/metrics_test.cpp:682
       #4 0x556c72e1b88f in void dsn::run_percentile_cases<double, dsn::metric_prototype_with<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void> >, dsn::percentile_case_generator<dsn::nth_element_case_generator<double, dsn::floating_rand_generator<double, void>, void>, void>, dsn::floating_checker<double> >(dsn::metric_prototype_with<dsn::percentile<double, dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >, void> > const&) /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/test/metrics_test.cpp:838
       #5 0x556c732cbf19 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xacbf19)
       #6 0x556c732c61cc in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xac61cc)
       #7 0x556c732aa13b in testing::Test::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xaaa13b)
       #8 0x556c732aaa63 in testing::TestInfo::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xaaaa63)
       #9 0x556c732ab0db in testing::TestCase::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xaab0db)
       #10 0x556c732b1f7f in testing::internal::UnitTestImpl::RunAllTests() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xab1f7f)
       #11 0x556c732cd040 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xacd040)
       #12 0x556c732c7008 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xac7008)
       #13 0x556c732b0b65 in testing::UnitTest::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xab0b65)
       #14 0x556c72ac111d in RUN_ALL_TESTS() /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/gtest/gtest.h:[2233](https://github.com/apache/incubator-pegasus/runs/7388468584?check_suite_focus=true#step:7:2234)
       #15 0x556c72ac111d in main /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/test/main.cpp:35
       #16 0x153944b4bc86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)
   Thread T129 created by T0 here:
       #0 0x1539461f9d2f in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37d2f)
       #1 0x1539451f0994 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd994)
       #2 0x153945de38d2 in dsn::utils::singleton<dsn::tools::shared_io_service>::instance() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/singleton.h:39
       #3 0x153945de38d2 in dsn::metric_registry::metric_registry() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/metrics.cpp:77
       #4 0x153945de4b9e in dsn::utils::singleton<dsn::metric_registry>::instance() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/singleton.h:39
       #5 0x153945de4b9e in dsn::metric_entity_prototype::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<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 /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/metrics.cpp:58
       #6 0x153945de538d in dsn::metric_entity_prototype::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/metrics.cpp:63
       #7 0x556c72da66ed in dsn::metrics_test_create_entity_Test::TestBody() /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/test/metrics_test.cpp:161
       #8 0x556c732cbf19 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xacbf19)
       #9 0x556c732c61cc in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xac61cc)
       #10 0x556c732aa13b in testing::Test::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xaaa13b)
       #11 0x556c732aaa63 in testing::TestInfo::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xaaaa63)
       #12 0x556c732ab0db in testing::TestCase::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xaab0db)
       #13 0x556c732b1f7f in testing::internal::UnitTestImpl::RunAllTests() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xab1f7f)
       #14 0x556c732cd040 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xacd040)
       #15 0x556c732c7008 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xac7008)
       #16 0x556c732b0b65 in testing::UnitTest::Run() (/__w/incubator-pegasus/incubator-pegasus/src/rdsn/builder/src/rdsn/src/utils/test/dsn_utils_tests+0xab0b65)
       #17 0x556c72ac111d in RUN_ALL_TESTS() /__w/incubator-pegasus/incubator-pegasus/thirdparty/output/include/gtest/gtest.h:2233
       #18 0x556c72ac111d in main /__w/incubator-pegasus/incubator-pegasus/src/rdsn/src/utils/test/main.cpp:35
       #19 0x153944b4bc86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)
   SUMMARY: AddressSanitizer: heap-use-after-free /__w/incubator-pegasus/incubator-pegasus/src/rdsn/include/dsn/utility/nth_element.h:90 in void dsn::stl_nth_element_finder<double, dsn::floating_comparator<double, void> >::operator()<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > > >(__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >)
   Shadow bytes around the buggy address:
     0x0c207fff8e80: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
     0x0c207fff8e90: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
     0x0c207fff8ea0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
     0x0c207fff8eb0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
     0x0c207fff8ec0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
   =>0x0c207fff8ed0: fd fd fd fd fd fd fd fd[fd]fd fd fd fd fd fd fd
     0x0c207fff8ee0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
     0x0c207fff8ef0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
     0x0c207fff8f00: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
     0x0c207fff8f10: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
     0x0c207fff8f20: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
   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
   ==4764==ABORTING
   ERROR: run dsn_utils_tests failed, return_code = 1
   Error: Process completed with exit code 1.
   ```
   
   
   Or just core dumped (https://github.com/apache/incubator-pegasus/runs/7386940386?check_suite_focus=true):
   ```
   [----------] 11 tests from metrics_test
   [ RUN      ] metrics_test.create_entity
   [       OK ] metrics_test.create_entity (1 ms)
   [ RUN      ] metrics_test.recreate_entity
   [       OK ] metrics_test.recreate_entity (0 ms)
   [ RUN      ] metrics_test.create_metric
   [       OK ] metrics_test.create_metric (0 ms)
   [ RUN      ] metrics_test.recreate_metric
   [       OK ] metrics_test.recreate_metric (0 ms)
   [ RUN      ] metrics_test.gauge_int64
   [       OK ] metrics_test.gauge_int64 (0 ms)
   [ RUN      ] metrics_test.gauge_double
   [       OK ] metrics_test.gauge_double (0 ms)
   [ RUN      ] metrics_test.gauge_increment
   [       OK ] metrics_test.gauge_increment (1156 ms)
   [ RUN      ] metrics_test.counter
   [       OK ] metrics_test.counter (1521 ms)
   [ RUN      ] metrics_test.volatile_counter
   [       OK ] metrics_test.volatile_counter (4667 ms)
   [ RUN      ] metrics_test.percentile_int64
   [       OK ] metrics_test.percentile_int64 (5707 ms)
   [ RUN      ] metrics_test.percentile_double
   [       OK ] metrics_test.percentile_double (5487 ms)
   [----------] 11 tests from metrics_test (18539 ms total)
   [----------] 4 tests from nth_element_test
   [ RUN      ] nth_element_test.basic_int64
   [       OK ] nth_element_test.basic_int64 (0 ms)
   [ RUN      ] nth_element_test.generated_int64
   [       OK ] nth_element_test.generated_int64 (4 ms)
   [ RUN      ] nth_element_test.basic_double
   [       OK ] nth_element_test.basic_double (0 ms)
   [ RUN      ] nth_element_test.generated_double
   [       OK ] nth_element_test.generated_double (4 ms)
   [----------] 4 tests from nth_element_test (8 ms total)
   [----------] 4 tests from table_printer_test
   [ RUN      ] table_printer_test.empty_content_test
   [       OK ] table_printer_test.empty_content_test (0 ms)
   [ RUN      ] table_printer_test.empty_name_test
   [       OK ] table_printer_test.empty_name_test (0 ms)
   [ RUN      ] table_printer_test.single_column_test
   [       OK ] table_printer_test.single_column_test (0 ms)
   [ RUN      ] table_printer_test.multi_columns_test
   [       OK ] table_printer_test.multi_columns_test (0 ms)
   [----------] 4 tests from table_printer_test (0 ms total)
   [----------] 3 tests from multi_table_printer_test
   [ RUN      ] multi_table_printer_test.empty_content_test
   [       OK ] multi_table_printer_test.empty_content_test (0 ms)
   [ RUN      ] multi_table_printer_test.single_empty_sub_test
   [       OK ] multi_table_printer_test.single_empty_sub_test (0 ms)
   [ RUN      ] multi_table_printer_test.multi_sub_test
   [       OK ] multi_table_printer_test.multi_sub_test (0 ms)
   [----------] 3 tests from multi_table_printer_test (0 ms total)
   [----------] 2 tests from random
   [ RUN      ] random.sanity
   [       OK ] random.sanity (1 ms)
   [ RUN      ] random.multi_threaded
   [       OK ] random.multi_threaded (4 ms)
   [----------] 2 tests from random (5 ms total)
   [----------] 3 tests from MakeUniqueTest
   [ RUN      ] MakeUniqueTest.Basic
   [       OK ] MakeUniqueTest.Basic (0 ms)
   [ RUN      ] MakeUniqueTest.MoveOnlyTypeAndValue
   [       OK ] MakeUniqueTest.MoveOnlyTypeAndValue (0 ms)
   [ RUN      ] MakeUniqueTest.AcceptMoveOnly
   [       OK ] MakeUniqueTest.AcceptMoveOnly (0 ms)
   [----------] 3 tests from MakeUniqueTest (1 ms total)
   [----------] 2 tests from Make_UniqueTest
   [ RUN      ] Make_UniqueTest.Array
   [       OK ] Make_UniqueTest.Array (0 ms)
   [ RUN      ] Make_UniqueTest.NotAmbiguousWithStdMakeUnique
   [       OK ] Make_UniqueTest.NotAmbiguousWithStdMakeUnique (0 ms)
   [----------] 2 tests from Make_UniqueTest (0 ms total)
   [----------] 8 tests from string_conv
   [ RUN      ] string_conv.buf2bool
   [       OK ] string_conv.buf2bool (0 ms)
   [ RUN      ] string_conv.buf2int32
   [       OK ] string_conv.buf2int32 (0 ms)
   [ RUN      ] string_conv.buf2int64
   [       OK ] string_conv.buf2int64 (0 ms)
   [ RUN      ] string_conv.buf2uint64
   [       OK ] string_conv.buf2uint64 (0 ms)
   [ RUN      ] string_conv.buf2uint32
   [       OK ] string_conv.buf2uint32 (0 ms)
   [ RUN      ] string_conv.int64_partial
   [       OK ] string_conv.int64_partial (0 ms)
   [ RUN      ] string_conv.uint64_partial
   [       OK ] string_conv.uint64_partial (0 ms)
   [ RUN      ] string_conv.buf2double
   [       OK ] string_conv.buf2double (0 ms)
   [----------] 8 tests from string_conv (1 ms total)
   [----------] 15 tests from StringViewTest
   [ RUN      ] StringViewTest.STL2
   [       OK ] StringViewTest.STL2 (0 ms)
   [ RUN      ] StringViewTest.STL2Substr
   [       OK ] StringViewTest.STL2Substr (1 ms)
   [ RUN      ] StringViewTest.Ctor
   [       OK ] StringViewTest.Ctor (0 ms)
   [ RUN      ] StringViewTest.Swap
   [       OK ] StringViewTest.Swap (0 ms)
   [ RUN      ] StringViewTest.ComparisonOperators
   [       OK ] StringViewTest.ComparisonOperators (0 ms)
   [ RUN      ] StringViewTest.STL1
   [       OK ] StringViewTest.STL1 (0 ms)
   [ RUN      ] StringViewTest.Remove
   [       OK ] StringViewTest.Remove (0 ms)
   [ RUN      ] StringViewTest.Set
   [       OK ] StringViewTest.Set (0 ms)
   [ RUN      ] StringViewTest.FrontBack
   [       OK ] StringViewTest.FrontBack (0 ms)
   [ RUN      ] StringViewTest.FrontBackSingleChar
   [       OK ] StringViewTest.FrontBackSingleChar (0 ms)
   [ RUN      ] StringViewTest.NULLInput
   [       OK ] StringViewTest.NULLInput (0 ms)
   [ RUN      ] StringViewTest.ExplicitConversionOperator
   [       OK ] StringViewTest.ExplicitConversionOperator (0 ms)
   [ RUN      ] StringViewTest.Noexcept
   [       OK ] StringViewTest.Noexcept (0 ms)
   [ RUN      ] StringViewTest.HeterogenousStringViewEquals
   [       OK ] StringViewTest.HeterogenousStringViewEquals (0 ms)
   [ RUN      ] StringViewTest.FindConformance
   [       OK ] StringViewTest.FindConformance (0 ms)
   [----------] 15 tests from StringViewTest (1 ms total)
   [----------] 2 tests from StringViewStreamTest
   [ RUN      ] StringViewStreamTest.Padding
   [       OK ] StringViewStreamTest.Padding (0 ms)
   [ RUN      ] StringViewStreamTest.ResetsWidth
   [       OK ] StringViewStreamTest.ResetsWidth (0 ms)
   [----------] 2 tests from StringViewStreamTest (0 ms total)
   [----------] 5 tests from time_utils
   [ RUN      ] time_utils.hh_mm_to_seconds
   [       OK ] time_utils.hh_mm_to_seconds (0 ms)
   [ RUN      ] time_utils.get_unix_sec_today_midnight
   [       OK ] time_utils.get_unix_sec_today_midnight (0 ms)
   [ RUN      ] time_utils.hh_mm_today_to_unix_sec
   [       OK ] time_utils.hh_mm_today_to_unix_sec (0 ms)
   [ RUN      ] time_utils.get_current_physical_time_ns
   [       OK ] time_utils.get_current_physical_time_ns (0 ms)
   [ RUN      ] time_utils.time_ms_to_string
   [       OK ] time_utils.time_ms_to_string (0 ms)
   [----------] 5 tests from time_utils (0 ms total)
   [----------] 2 tests from token_bucket_throttling_controller_test
   [ RUN      ] token_bucket_throttling_controller_test.test_parse_env_basic_token_bucket_throttling
   [       OK ] token_bucket_throttling_controller_test.test_parse_env_basic_token_bucket_throttling (0 ms)
   [ RUN      ] token_bucket_throttling_controller_test.throttle_test
   [       OK ] token_bucket_throttling_controller_test.throttle_test (14584 ms)
   [----------] 2 tests from token_bucket_throttling_controller_test (14584 ms total)
   [----------] 1 test from token_buckets_test
   [ RUN      ] token_buckets_test.test_token_buckets
   [       OK ] token_buckets_test.test_token_buckets (0 ms)
   [----------] 1 test from token_buckets_test (0 ms total)
   [----------] 4 tests from TokenBucket/TokenBucketTest
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/0
   [       OK ] TokenBucket/TokenBucketTest.sanity/0 (0 ms)
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/1
   [       OK ] TokenBucket/TokenBucketTest.sanity/1 (1 ms)
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/2
   [       OK ] TokenBucket/TokenBucketTest.sanity/2 (2 ms)
   [ RUN      ] TokenBucket/TokenBucketTest.sanity/3
   [       OK ] TokenBucket/TokenBucketTest.sanity/3 (1 ms)
   [----------] 4 tests from TokenBucket/TokenBucketTest (4 ms total)
   [----------] Global test environment tear-down
   [==========] 168 tests from 32 test cases ran. (34928 ms total)
   [  PASSED  ] 168 tests.
   Segmentation fault (core dumped)
   ERROR: run dsn_utils_tests failed, return_code = 139
   Error: Process completed with exit code 1.
   ```
   


-- 
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: dev-unsubscribe@pegasus.apache.org.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pegasus.apache.org
For additional commands, e-mail: dev-help@pegasus.apache.org


[GitHub] [incubator-pegasus] empiredan closed issue #1066: Still-running timer will lead to heap-use-after-free error after percentile is destructed

Posted by GitBox <gi...@apache.org>.
empiredan closed issue #1066: Still-running timer will lead to heap-use-after-free error after percentile is destructed
URL: https://github.com/apache/incubator-pegasus/issues/1066


-- 
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: dev-unsubscribe@pegasus.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pegasus.apache.org
For additional commands, e-mail: dev-help@pegasus.apache.org