Skip to content

ThreadSanitizer: data race in PrioritySetImpl? with libc++ #7928

@PiotrSikora

Description

@PiotrSikora

Description:

There is a data race in PrioritySetImpl (I think?) that's reported only when linking TSan with libc++.

Repro steps:

bazel test --config=clang-tsan --config=libc++ //test/integration/...

Note that the data race is not reported when compiled with -c opt.

Logs:

This is a list of tests that fail because of this failure:

//test/integration:ads_integration_test                                  FAILED in 123.3s
//test/integration:cds_integration_test                                  FAILED in 29.0s
//test/integration:eds_integration_test                                  FAILED in 35.4s
//test/integration:load_stats_integration_test                           FAILED in 52.1s

Call Stack:

[ RUN      ] IpVersionsClientType/AdsIntegrationTest.Basic/0
==================
WARNING: ThreadSanitizer: data race (pid=19998)
  Write of size 8 at 0x7b0800051ce8 by thread T9:
    #0 std::__1::__vector_base<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >::__destruct_at_end(std::__1::shared_ptr<Envoy::Upstream::Host>*) <null> (ads_integration_test+0x20bd358)
    #1 std::__1::__vector_base<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >::clear() <null> (ads_integration_test+0x20bd241)
    #2 std::__1::__vector_base<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >::~__vector_base() <null> (ads_integration_test+0x20bc6d9)
    #3 std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >::~vector() <null> (ads_integration_test+0x20a2d9d)
    #4 std::__1::default_delete<std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > > >::operator()(std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >*) const <null> (ads_integration_test+0x21858c6)
    #5 std::__1::__shared_ptr_pointer<std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >*, std::__1::default_delete<std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > > >, std::__1::allocator<std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > > > >::__on_zero_shared() <null> (ads_integration_test+0x2185559)
    #6 std::__1::__shared_weak_count::__release_shared() <null> (ads_integration_test+0x5004e8d)
    #7 Envoy::Upstream::HostSetImpl::~HostSetImpl() <null> (ads_integration_test+0x218a7cd)
    #8 Envoy::Upstream::HostSetImpl::~HostSetImpl() <null> (ads_integration_test+0x352552c)
    #9 std::__1::default_delete<Envoy::Upstream::HostSet>::operator()(Envoy::Upstream::HostSet*) const <null> (ads_integration_test+0x20b7c1e)
    #10 std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >::reset(Envoy::Upstream::HostSet*) <null> (ads_integration_test+0x20b7b2d)
    #11 std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >::~unique_ptr() <null> (ads_integration_test+0x20b7a7c)
    #12 std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > >::destroy(std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >*) <null> (ads_integration_test+0x20b7a44)
    #13 void std::__1::allocator_traits<std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > > >::__destroy<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > >(std::__1::integral_constant<bool, true>, std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > >&, std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >*) <null> (ads_integration_test+0x20b79f8)
    #14 void std::__1::allocator_traits<std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > > >::destroy<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > >(std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > >&, std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >*) <null> (ads_integration_test+0x20b7998)
    #15 std::__1::__vector_base<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >, std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > > >::__destruct_at_end(std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >*) <null> (ads_integration_test+0x20b7916)
    #16 std::__1::__vector_base<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >, std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > > >::clear() <null> (ads_integration_test+0x20b77e1)
    #17 std::__1::__vector_base<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >, std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > > >::~__vector_base() <null> (ads_integration_test+0x20b7509)
    #18 std::__1::vector<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> >, std::__1::allocator<std::__1::unique_ptr<Envoy::Upstream::HostSet, std::__1::default_delete<Envoy::Upstream::HostSet> > > >::~vector() <null> (ads_integration_test+0x20b657d)
    #19 Envoy::Upstream::PrioritySetImpl::~PrioritySetImpl() <null> (ads_integration_test+0x20a9e2e)
    #20 Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry::~ClusterEntry() <null> (ads_integration_test+0x206ec22)
    #21 Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry::~ClusterEntry() <null> (ads_integration_test+0x206ec7c)
    #22 std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry>::operator()(Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry*) const <null> (ads_integration_test+0x20d73fe)
    #23 std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> >::reset(Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry*) <null> (ads_integration_test+0x20a6fbd)
    #24 std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> >::~unique_ptr() <null> (ads_integration_test+0x20a6afc)
    #25 std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >::~pair() <null> (ads_integration_test+0x20b1206)
    #26 void absl::allocator_traits<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::destroy_impl<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >(char, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b11bd)
    #27 void absl::allocator_traits<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::destroy<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b116a)
    #28 void absl::container_internal::map_slot_policy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >::destroy<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >*, absl::container_internal::map_slot_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b1108)
    #29 void absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >::destroy<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >*, absl::container_internal::map_slot_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b10a8)
    #30 void absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, void>::destroy<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >*, absl::container_internal::map_slot_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b0d78)
    #31 absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, absl::container_internal::StringHash, absl::container_internal::StringHashEq::Eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::erase(absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, absl::container_internal::StringHash, absl::container_internal::StringHashEq::Eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::iterator) <null> (ads_integration_test+0x20d8592)
    #32 unsigned long absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, absl::container_internal::StringHash, absl::container_internal::StringHashEq::Eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::erase<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x20d7af3)
    #33 Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11::operator()() const <null> (ads_integration_test+0x208c1d4)
    #34 decltype(std::__1::forward<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&>(fp)()) std::__1::__invoke<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&>(Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&) <null> (ads_integration_test+0x208bf70)
    #35 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&>(Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&) <null> (ads_integration_test+0x208bed0)
    #36 std::__1::__function::__alloc_func<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11, std::__1::allocator<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11>, void ()>::operator()() <null> (ads_integration_test+0x208be70)
    #37 std::__1::__function::__func<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11, std::__1::allocator<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11>, void ()>::operator()() <null> (ads_integration_test+0x208a49c)
    #38 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #39 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #40 Envoy::Event::DispatcherImpl::runPostCallbacks() <null> (ads_integration_test+0x3e564d1)
    #41 Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1::operator()() const <null> (ads_integration_test+0x3e5a978)
    #42 decltype(std::__1::forward<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1&>(fp)()) std::__1::__invoke<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1&>(Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1&) <null> (ads_integration_test+0x3e5a900)
    #43 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1&>(Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1&) <null> (ads_integration_test+0x3e5a860)
    #44 std::__1::__function::__alloc_func<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1, std::__1::allocator<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1>, void ()>::operator()() <null> (ads_integration_test+0x3e5a800)
    #45 std::__1::__function::__func<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1, std::__1::allocator<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::unique_ptr<Envoy::Buffer::WatermarkFactory, std::__1::default_delete<Envoy::Buffer::WatermarkFactory> >&&, Envoy::Api::Api&, Envoy::Event::TimeSystem&)::$_1>, void ()>::operator()() <null> (ads_integration_test+0x3e58e5c)
    #46 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #47 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #48 Envoy::Event::TimerImpl::TimerImpl(Envoy::CSmartPtr<event_base, &(event_base_free)>&, std::__1::function<void ()>)::$_0::operator()(int, short, void*) const <null> (ads_integration_test+0x3f7e983)
    #49 Envoy::Event::TimerImpl::TimerImpl(Envoy::CSmartPtr<event_base, &(event_base_free)>&, std::__1::function<void ()>)::$_0::__invoke(int, short, void*) <null> (ads_integration_test+0x3f7e907)
    #50 event_process_active_single_queue <null> (ads_integration_test+0x4e209dc)
    #51 event_base_loop <null> (ads_integration_test+0x4e1b688)
    #52 Envoy::Event::LibeventScheduler::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3f7cfb5)
    #53 Envoy::Event::DispatcherImpl::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3e56391)
    #54 Envoy::Server::WorkerImpl::threadRoutine(Envoy::Server::GuardDog&) <null> (ads_integration_test+0x1fb8d1e)
    #55 Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3::operator()() const <null> (ads_integration_test+0x1fc26c4)
    #56 decltype(std::__1::forward<Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3&>(fp)()) std::__1::__invoke<Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3&>(Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3&) <null> (ads_integration_test+0x1fc2630)
    #57 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3&>(Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3&) <null> (ads_integration_test+0x1fc2590)
    #58 std::__1::__function::__alloc_func<Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3, std::__1::allocator<Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3>, void ()>::operator()() <null> (ads_integration_test+0x1fc2530)
    #59 std::__1::__function::__func<Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3, std::__1::allocator<Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&)::$_3>, void ()>::operator()() <null> (ads_integration_test+0x1fc0b8c)
    #60 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #61 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #62 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::operator()(void*) const <null> (ads_integration_test+0x4df6658)
    #63 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::__invoke(void*) <null> (ads_integration_test+0x4df65e8)

  Previous read of size 8 at 0x7b0800051ce8 by thread T6:
    #0 std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >::end() const <null> (ads_integration_test+0x20a7336)
    #1 Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::drainConnPools(std::__1::vector<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > > const&) <null> (ads_integration_test+0x206b1b6)
    #2 Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry::~ClusterEntry() <null> (ads_integration_test+0x206eb44)
    #3 Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry::~ClusterEntry() <null> (ads_integration_test+0x206ec7c)
    #4 std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry>::operator()(Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry*) const <null> (ads_integration_test+0x20d73fe)
    #5 std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> >::reset(Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry*) <null> (ads_integration_test+0x20a6fbd)
    #6 std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> >::~unique_ptr() <null> (ads_integration_test+0x20a6afc)
    #7 std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >::~pair() <null> (ads_integration_test+0x20b1206)
    #8 void absl::allocator_traits<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::destroy_impl<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >(char, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b11bd)
    #9 void absl::allocator_traits<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::destroy<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b116a)
    #10 void absl::container_internal::map_slot_policy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >::destroy<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >*, absl::container_internal::map_slot_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b1108)
    #11 void absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >::destroy<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >*, absl::container_internal::map_slot_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b10a8)
    #12 void absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, void>::destroy<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >(std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > >*, absl::container_internal::map_slot_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >*) <null> (ads_integration_test+0x20b0d78)
    #13 absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, absl::container_internal::StringHash, absl::container_internal::StringHashEq::Eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::erase(absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, absl::container_internal::StringHash, absl::container_internal::StringHashEq::Eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::iterator) <null> (ads_integration_test+0x20d8592)
    #14 unsigned long absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > >, absl::container_internal::StringHash, absl::container_internal::StringHashEq::Eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry, std::__1::default_delete<Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::ClusterEntry> > > > >::erase<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x20d7af3)
    #15 Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11::operator()() const <null> (ads_integration_test+0x208c1d4)
    #16 decltype(std::__1::forward<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&>(fp)()) std::__1::__invoke<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&>(Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&) <null> (ads_integration_test+0x208bf70)
    #17 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&>(Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11&) <null> (ads_integration_test+0x208bed0)
    #18 std::__1::__function::__alloc_func<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11, std::__1::allocator<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11>, void ()>::operator()() <null> (ads_integration_test+0x208be70)
    #19 std::__1::__function::__func<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11, std::__1::allocator<Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_11>, void ()>::operator()() <null> (ads_integration_test+0x208a49c)
    #20 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #21 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #22 Envoy::ThreadLocal::InstanceImpl::runOnAllThreads(std::__1::function<void ()>) <null> (ads_integration_test+0x1d1a929)
    #23 Envoy::ThreadLocal::InstanceImpl::SlotImpl::runOnAllThreads(std::__1::function<void ()>) <null> (ads_integration_test+0x1d27d85)
    #24 Envoy::Upstream::ClusterManagerImpl::removeCluster(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x2066d02)
    #25 Envoy::Upstream::CdsApiImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<envoy::api::v2::Resource> const&, google::protobuf::RepeatedPtrField<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x2108b5f)
    #26 Envoy::Upstream::CdsApiImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x21081f3)
    #27 non-virtual thunk to Envoy::Upstream::CdsApiImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x21082fc)
    #28 Envoy::Config::GrpcMuxSubscriptionImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x38469e1)
    #29 non-virtual thunk to Envoy::Config::GrpcMuxSubscriptionImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x3846cdc)
    #30 Envoy::Config::GrpcMuxImpl::onDiscoveryResponse(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x36518e3)
    #31 non-virtual thunk to Envoy::Config::GrpcMuxImpl::onDiscoveryResponse(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3651f5c)
    #32 Envoy::Config::GrpcStream<envoy::api::v2::DiscoveryRequest, envoy::api::v2::DiscoveryResponse>::onReceiveMessage(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3657cc2)
    #33 Envoy::Grpc::AsyncStreamCallbacks<envoy::api::v2::DiscoveryResponse>::onReceiveMessageRaw(std::__1::unique_ptr<Envoy::Buffer::Instance, std::__1::default_delete<Envoy::Buffer::Instance> >&&) <null> (ads_integration_test+0x3657989)
    #34 Envoy::Grpc::AsyncStreamImpl::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x366f3a5)
    #35 non-virtual thunk to Envoy::Grpc::AsyncStreamImpl::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x366f530)
    #36 Envoy::Http::AsyncStreamImpl::encodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x3681e88)
    #37 non-virtual thunk to Envoy::Http::AsyncStreamImpl::encodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x3681f60)
    #38 Envoy::Router::Filter::onUpstreamData(Envoy::Buffer::Instance&, Envoy::Router::Filter::UpstreamRequest&, bool) <null> (ads_integration_test+0x36a953a)
    #39 Envoy::Router::Filter::UpstreamRequest::decodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x36acfd7)
    #40 Envoy::Http::StreamDecoderWrapper::decodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x2238cd2)
    #41 Envoy::Http::Http2::ConnectionImpl::onFrameReceived(nghttp2_frame const*) <null> (ads_integration_test+0x3a3b268)
    #42 Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_11::operator()(nghttp2_session*, nghttp2_frame const*, void*) const <null> (ads_integration_test+0x3a44590)
    #43 Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_11::__invoke(nghttp2_session*, nghttp2_frame const*, void*) <null> (ads_integration_test+0x3a44508)
    #44 nghttp2_session_on_data_received <null> (ads_integration_test+0x3a875c3)
    #45 nghttp2_session_mem_recv <null> (ads_integration_test+0x3a8ac1f)
    #46 Envoy::Http::Http2::ConnectionImpl::dispatch(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x3a38f96)
    #47 virtual thunk to Envoy::Http::Http2::ConnectionImpl::dispatch(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x3a39507)
    #48 Envoy::Http::CodecClient::onData(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x35e522e)
    #49 Envoy::Http::CodecClient::CodecReadFilter::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x35e9d60)
    #50 Envoy::Network::FilterManagerImpl::onContinueReading(Envoy::Network::FilterManagerImpl::ActiveReadFilter*, Envoy::Network::ReadBufferSource&) <null> (ads_integration_test+0x3e8c18d)
    #51 Envoy::Network::FilterManagerImpl::onRead() <null> (ads_integration_test+0x3e8c40e)
    #52 Envoy::Network::ConnectionImpl::onRead(unsigned long) <null> (ads_integration_test+0x3e742c5)
    #53 Envoy::Network::ConnectionImpl::onReadReady() <null> (ads_integration_test+0x3e780d7)
    #54 Envoy::Network::ConnectionImpl::onFileEvent(unsigned int) <null> (ads_integration_test+0x3e77d17)
    #55 Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2::operator()(unsigned int) const <null> (ads_integration_test+0x3e80ee4)
    #56 decltype(std::__1::forward<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&>(fp)(std::__1::forward<unsigned int>(fp0))) std::__1::__invoke<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int>(Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int&&) <null> (ads_integration_test+0x3e80e5c)
    #57 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int>(Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int&&) <null> (ads_integration_test+0x3e80d8d)
    #58 std::__1::__function::__alloc_func<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2, std::__1::allocator<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2>, void (unsigned int)>::operator()(unsigned int&&) <null> (ads_integration_test+0x3e80d0d)
    #59 std::__1::__function::__func<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2, std::__1::allocator<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2>, void (unsigned int)>::operator()(unsigned int&&) <null> (ads_integration_test+0x3e7f34f)
    #60 std::__1::__function::__value_func<void (unsigned int)>::operator()(unsigned int&&) const <null> (ads_integration_test+0x2b24cc4)
    #61 std::__1::function<void (unsigned int)>::operator()(unsigned int) const <null> (ads_integration_test+0x2b24bb5)
    #62 Envoy::Event::FileEventImpl::assignEvents(unsigned int)::$_0::operator()(int, short, void*) const <null> (ads_integration_test+0x3e63ec0)
    #63 Envoy::Event::FileEventImpl::assignEvents(unsigned int)::$_0::__invoke(int, short, void*) <null> (ads_integration_test+0x3e63cc7)
    #64 event_process_active_single_queue <null> (ads_integration_test+0x4e20f86)
    #65 event_base_loop <null> (ads_integration_test+0x4e1b688)
    #66 Envoy::Event::LibeventScheduler::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3f7cfb5)
    #67 Envoy::Event::DispatcherImpl::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3e56391)
    #68 Envoy::Server::InstanceImpl::run() <null> (ads_integration_test+0x1e4d26e)
    #69 Envoy::IntegrationTestServerImpl::createAndRunEnvoyServer(Envoy::OptionsImpl&, Envoy::Event::TimeSystem&, std::__1::shared_ptr<Envoy::Network::Address::Instance const>, Envoy::ListenerHooks&, Envoy::Thread::BasicLockable&, Envoy::Server::ComponentFactory&, std::__1::unique_ptr<Envoy::Runtime::RandomGenerator, std::__1::default_delete<Envoy::Runtime::RandomGenerator> >&&, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf2668)
    #70 Envoy::IntegrationTestServer::threadRoutine(Envoy::Network::Address::IpVersion, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf2114)
    #71 Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0::operator()() const <null> (ads_integration_test+0x1cf5585)
    #72 decltype(std::__1::forward<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(fp)()) std::__1::__invoke<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&) <null> (ads_integration_test+0x1cf54a0)
    #73 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&) <null> (ads_integration_test+0x1cf5400)
    #74 std::__1::__function::__alloc_func<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0, std::__1::allocator<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x1cf53a0)
    #75 std::__1::__function::__func<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0, std::__1::allocator<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x1cf3d5c)
    #76 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #77 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #78 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::operator()(void*) const <null> (ads_integration_test+0x4df6658)
    #79 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::__invoke(void*) <null> (ads_integration_test+0x4df65e8)

  Location is heap block of size 24 at 0x7b0800051ce0 allocated by thread T6:
    #0 malloc <null> (ads_integration_test+0x19e2fc7)
    #1 operator new(unsigned long) <null> (ads_integration_test+0x5005a29)
    #2 Envoy::Upstream::EdsClusterImpl::BatchUpdateHelper::batchUpdate(Envoy::Upstream::PrioritySet::HostUpdateCb&) <null> (ads_integration_test+0x356183d)
    #3 Envoy::Upstream::PrioritySetImpl::batchHostUpdate(Envoy::Upstream::PrioritySet::BatchUpdateCb&) <null> (ads_integration_test+0x34f2ddb)
    #4 Envoy::Upstream::EdsClusterImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x3562a41)
    #5 non-virtual thunk to Envoy::Upstream::EdsClusterImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x3562def)
    #6 Envoy::Config::GrpcMuxSubscriptionImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x38469e1)
    #7 non-virtual thunk to Envoy::Config::GrpcMuxSubscriptionImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x3846cdc)
    #8 Envoy::Config::GrpcMuxImpl::onDiscoveryResponse(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3651b28)
    #9 non-virtual thunk to Envoy::Config::GrpcMuxImpl::onDiscoveryResponse(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3651f5c)
    #10 Envoy::Config::GrpcStream<envoy::api::v2::DiscoveryRequest, envoy::api::v2::DiscoveryResponse>::onReceiveMessage(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3657cc2)
    #11 Envoy::Grpc::AsyncStreamCallbacks<envoy::api::v2::DiscoveryResponse>::onReceiveMessageRaw(std::__1::unique_ptr<Envoy::Buffer::Instance, std::__1::default_delete<Envoy::Buffer::Instance> >&&) <null> (ads_integration_test+0x3657989)
    #12 Envoy::Grpc::AsyncStreamImpl::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x366f3a5)
    #13 non-virtual thunk to Envoy::Grpc::AsyncStreamImpl::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x366f530)
    #14 Envoy::Http::AsyncStreamImpl::encodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x3681e88)
    #15 non-virtual thunk to Envoy::Http::AsyncStreamImpl::encodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x3681f60)
    #16 Envoy::Router::Filter::onUpstreamData(Envoy::Buffer::Instance&, Envoy::Router::Filter::UpstreamRequest&, bool) <null> (ads_integration_test+0x36a953a)
    #17 Envoy::Router::Filter::UpstreamRequest::decodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x36acfd7)
    #18 Envoy::Http::StreamDecoderWrapper::decodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x2238cd2)
    #19 Envoy::Http::Http2::ConnectionImpl::onFrameReceived(nghttp2_frame const*) <null> (ads_integration_test+0x3a3b268)
    #20 Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_11::operator()(nghttp2_session*, nghttp2_frame const*, void*) const <null> (ads_integration_test+0x3a44590)
    #21 Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_11::__invoke(nghttp2_session*, nghttp2_frame const*, void*) <null> (ads_integration_test+0x3a44508)
    #22 nghttp2_session_on_data_received <null> (ads_integration_test+0x3a875c3)
    #23 nghttp2_session_mem_recv <null> (ads_integration_test+0x3a8ac1f)
    #24 Envoy::Http::Http2::ConnectionImpl::dispatch(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x3a38f96)
    #25 virtual thunk to Envoy::Http::Http2::ConnectionImpl::dispatch(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x3a39507)
    #26 Envoy::Http::CodecClient::onData(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x35e522e)
    #27 Envoy::Http::CodecClient::CodecReadFilter::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x35e9d60)
    #28 Envoy::Network::FilterManagerImpl::onContinueReading(Envoy::Network::FilterManagerImpl::ActiveReadFilter*, Envoy::Network::ReadBufferSource&) <null> (ads_integration_test+0x3e8c18d)
    #29 Envoy::Network::FilterManagerImpl::onRead() <null> (ads_integration_test+0x3e8c40e)
    #30 Envoy::Network::ConnectionImpl::onRead(unsigned long) <null> (ads_integration_test+0x3e742c5)
    #31 Envoy::Network::ConnectionImpl::onReadReady() <null> (ads_integration_test+0x3e780d7)
    #32 Envoy::Network::ConnectionImpl::onFileEvent(unsigned int) <null> (ads_integration_test+0x3e77d17)
    #33 Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2::operator()(unsigned int) const <null> (ads_integration_test+0x3e80ee4)
    #34 decltype(std::__1::forward<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&>(fp)(std::__1::forward<unsigned int>(fp0))) std::__1::__invoke<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int>(Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int&&) <null> (ads_integration_test+0x3e80e5c)
    #35 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int>(Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int&&) <null> (ads_integration_test+0x3e80d8d)
    #36 std::__1::__function::__alloc_func<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2, std::__1::allocator<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2>, void (unsigned int)>::operator()(unsigned int&&) <null> (ads_integration_test+0x3e80d0d)
    #37 std::__1::__function::__func<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2, std::__1::allocator<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2>, void (unsigned int)>::operator()(unsigned int&&) <null> (ads_integration_test+0x3e7f34f)
    #38 std::__1::__function::__value_func<void (unsigned int)>::operator()(unsigned int&&) const <null> (ads_integration_test+0x2b24cc4)
    #39 std::__1::function<void (unsigned int)>::operator()(unsigned int) const <null> (ads_integration_test+0x2b24bb5)
    #40 Envoy::Event::FileEventImpl::assignEvents(unsigned int)::$_0::operator()(int, short, void*) const <null> (ads_integration_test+0x3e63ec0)
    #41 Envoy::Event::FileEventImpl::assignEvents(unsigned int)::$_0::__invoke(int, short, void*) <null> (ads_integration_test+0x3e63cc7)
    #42 event_process_active_single_queue <null> (ads_integration_test+0x4e20f86)
    #43 event_base_loop <null> (ads_integration_test+0x4e1b688)
    #44 Envoy::Event::LibeventScheduler::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3f7cfb5)
    #45 Envoy::Event::DispatcherImpl::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3e56391)
    #46 Envoy::Server::InstanceImpl::run() <null> (ads_integration_test+0x1e4d26e)
    #47 Envoy::IntegrationTestServerImpl::createAndRunEnvoyServer(Envoy::OptionsImpl&, Envoy::Event::TimeSystem&, std::__1::shared_ptr<Envoy::Network::Address::Instance const>, Envoy::ListenerHooks&, Envoy::Thread::BasicLockable&, Envoy::Server::ComponentFactory&, std::__1::unique_ptr<Envoy::Runtime::RandomGenerator, std::__1::default_delete<Envoy::Runtime::RandomGenerator> >&&, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf2668)
    #48 Envoy::IntegrationTestServer::threadRoutine(Envoy::Network::Address::IpVersion, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf2114)
    #49 Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0::operator()() const <null> (ads_integration_test+0x1cf5585)
    #50 decltype(std::__1::forward<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(fp)()) std::__1::__invoke<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&) <null> (ads_integration_test+0x1cf54a0)
    #51 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&) <null> (ads_integration_test+0x1cf5400)
    #52 std::__1::__function::__alloc_func<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0, std::__1::allocator<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x1cf53a0)
    #53 std::__1::__function::__func<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0, std::__1::allocator<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x1cf3d5c)
    #54 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #55 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #56 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::operator()(void*) const <null> (ads_integration_test+0x4df6658)
    #57 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::__invoke(void*) <null> (ads_integration_test+0x4df65e8)

  Thread T9 (tid=20353, running) created by thread T6 at:
    #0 pthread_create <null> (ads_integration_test+0x19e44b5)
    #1 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>) <null> (ads_integration_test+0x4df6175)
    #2 std::__1::__unique_if<Envoy::Thread::ThreadImplPosix>::__unique_single std::__1::make_unique<Envoy::Thread::ThreadImplPosix, std::__1::function<void ()>&>(std::__1::function<void ()>&) <null> (ads_integration_test+0x4df6940)
    #3 Envoy::Thread::ThreadFactoryImplPosix::createThread(std::__1::function<void ()>) <null> (ads_integration_test+0x4df64fb)
    #4 Envoy::Server::WorkerImpl::start(Envoy::Server::GuardDog&) <null> (ads_integration_test+0x1fb81ce)
    #5 Envoy::Server::ListenerManagerImpl::startWorkers(Envoy::Server::GuardDog&) <null> (ads_integration_test+0x1ecca3a)
    #6 Envoy::Server::InstanceImpl::startWorkers() <null> (ads_integration_test+0x1e4be61)
    #7 Envoy::Server::InstanceImpl::run()::$_10::operator()() const <null> (ads_integration_test+0x1e66f48)
    #8 decltype(std::__1::forward<Envoy::Server::InstanceImpl::run()::$_10&>(fp)()) std::__1::__invoke<Envoy::Server::InstanceImpl::run()::$_10&>(Envoy::Server::InstanceImpl::run()::$_10&) <null> (ads_integration_test+0x1e66ed0)
    #9 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Server::InstanceImpl::run()::$_10&>(Envoy::Server::InstanceImpl::run()::$_10&) <null> (ads_integration_test+0x1e66e30)
    #10 std::__1::__function::__alloc_func<Envoy::Server::InstanceImpl::run()::$_10, std::__1::allocator<Envoy::Server::InstanceImpl::run()::$_10>, void ()>::operator()() <null> (ads_integration_test+0x1e66dd0)
    #11 std::__1::__function::__func<Envoy::Server::InstanceImpl::run()::$_10, std::__1::allocator<Envoy::Server::InstanceImpl::run()::$_10>, void ()>::operator()() <null> (ads_integration_test+0x1e6542c)
    #12 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #13 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #14 Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4::operator()() const <null> (ads_integration_test+0x1e59bbf)
    #15 decltype(std::__1::forward<Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4&>(fp)()) std::__1::__invoke<Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4&>(Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4&) <null> (ads_integration_test+0x1e59b00)
    #16 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4&>(Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4&) <null> (ads_integration_test+0x1e59a60)
    #17 std::__1::__function::__alloc_func<Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4, std::__1::allocator<Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4>, void ()>::operator()() <null> (ads_integration_test+0x1e59a00)
    #18 std::__1::__function::__func<Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4, std::__1::allocator<Envoy::Server::RunHelper::RunHelper(Envoy::Server::Instance&, Envoy::Server::Options const&, Envoy::Event::Dispatcher&, Envoy::Upstream::ClusterManager&, Envoy::AccessLog::AccessLogManager&, Envoy::Init::Manager&, Envoy::Server::OverloadManager&, std::__1::function<void ()>)::$_4>, void ()>::operator()() <null> (ads_integration_test+0x1e5809c)
    #19 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #20 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #21 Envoy::Init::WatcherHandleImpl::ready() const <null> (ads_integration_test+0x39b17f7)
    #22 Envoy::Init::ManagerImpl::ready() <null> (ads_integration_test+0x39ac949)
    #23 Envoy::Init::ManagerImpl::onTargetReady() <null> (ads_integration_test+0x39acaef)
    #24 Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0::operator()() const <null> (ads_integration_test+0x39aed28)
    #25 decltype(std::__1::forward<Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0&>(fp)()) std::__1::__invoke<Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0&>(Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0&) <null> (ads_integration_test+0x39aecb0)
    #26 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0&>(Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0&) <null> (ads_integration_test+0x39aec10)
    #27 std::__1::__function::__alloc_func<Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0, std::__1::allocator<Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x39aebb0)
    #28 std::__1::__function::__func<Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0, std::__1::allocator<Envoy::Init::ManagerImpl::ManagerImpl(absl::string_view)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x39ad20c)
    #29 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #30 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #31 Envoy::Init::WatcherHandleImpl::ready() const <null> (ads_integration_test+0x39b17f7)
    #32 Envoy::Init::TargetImpl::ready() <null> (ads_integration_test+0x41ebc17)
    #33 Envoy::Router::RdsRouteConfigSubscription::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x33f1e6f)
    #34 Envoy::Config::GrpcMuxSubscriptionImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x38469e1)
    #35 non-virtual thunk to Envoy::Config::GrpcMuxSubscriptionImpl::onConfigUpdate(google::protobuf::RepeatedPtrField<google::protobuf::Any> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) <null> (ads_integration_test+0x3846cdc)
    #36 Envoy::Config::GrpcMuxImpl::onDiscoveryResponse(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3651b28)
    #37 non-virtual thunk to Envoy::Config::GrpcMuxImpl::onDiscoveryResponse(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3651f5c)
    #38 Envoy::Config::GrpcStream<envoy::api::v2::DiscoveryRequest, envoy::api::v2::DiscoveryResponse>::onReceiveMessage(std::__1::unique_ptr<envoy::api::v2::DiscoveryResponse, std::__1::default_delete<envoy::api::v2::DiscoveryResponse> >&&) <null> (ads_integration_test+0x3657cc2)
    #39 Envoy::Grpc::AsyncStreamCallbacks<envoy::api::v2::DiscoveryResponse>::onReceiveMessageRaw(std::__1::unique_ptr<Envoy::Buffer::Instance, std::__1::default_delete<Envoy::Buffer::Instance> >&&) <null> (ads_integration_test+0x3657989)
    #40 Envoy::Grpc::AsyncStreamImpl::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x366f3a5)
    #41 non-virtual thunk to Envoy::Grpc::AsyncStreamImpl::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x366f530)
    #42 Envoy::Http::AsyncStreamImpl::encodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x3681e88)
    #43 non-virtual thunk to Envoy::Http::AsyncStreamImpl::encodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x3681f60)
    #44 Envoy::Router::Filter::onUpstreamData(Envoy::Buffer::Instance&, Envoy::Router::Filter::UpstreamRequest&, bool) <null> (ads_integration_test+0x36a953a)
    #45 Envoy::Router::Filter::UpstreamRequest::decodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x36acfd7)
    #46 Envoy::Http::StreamDecoderWrapper::decodeData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x2238cd2)
    #47 Envoy::Http::Http2::ConnectionImpl::onFrameReceived(nghttp2_frame const*) <null> (ads_integration_test+0x3a3b268)
    #48 Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_11::operator()(nghttp2_session*, nghttp2_frame const*, void*) const <null> (ads_integration_test+0x3a44590)
    #49 Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_11::__invoke(nghttp2_session*, nghttp2_frame const*, void*) <null> (ads_integration_test+0x3a44508)
    #50 nghttp2_session_on_data_received <null> (ads_integration_test+0x3a875c3)
    #51 nghttp2_session_mem_recv <null> (ads_integration_test+0x3a8ac1f)
    #52 Envoy::Http::Http2::ConnectionImpl::dispatch(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x3a38f96)
    #53 virtual thunk to Envoy::Http::Http2::ConnectionImpl::dispatch(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x3a39507)
    #54 Envoy::Http::CodecClient::onData(Envoy::Buffer::Instance&) <null> (ads_integration_test+0x35e522e)
    #55 Envoy::Http::CodecClient::CodecReadFilter::onData(Envoy::Buffer::Instance&, bool) <null> (ads_integration_test+0x35e9d60)
    #56 Envoy::Network::FilterManagerImpl::onContinueReading(Envoy::Network::FilterManagerImpl::ActiveReadFilter*, Envoy::Network::ReadBufferSource&) <null> (ads_integration_test+0x3e8c18d)
    #57 Envoy::Network::FilterManagerImpl::onRead() <null> (ads_integration_test+0x3e8c40e)
    #58 Envoy::Network::ConnectionImpl::onRead(unsigned long) <null> (ads_integration_test+0x3e742c5)
    #59 Envoy::Network::ConnectionImpl::onReadReady() <null> (ads_integration_test+0x3e780d7)
    #60 Envoy::Network::ConnectionImpl::onFileEvent(unsigned int) <null> (ads_integration_test+0x3e77d17)
    #61 Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2::operator()(unsigned int) const <null> (ads_integration_test+0x3e80ee4)
    #62 decltype(std::__1::forward<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&>(fp)(std::__1::forward<unsigned int>(fp0))) std::__1::__invoke<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int>(Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int&&) <null> (ads_integration_test+0x3e80e5c)
    #63 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int>(Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2&, unsigned int&&) <null> (ads_integration_test+0x3e80d8d)
    #64 std::__1::__function::__alloc_func<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2, std::__1::allocator<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2>, void (unsigned int)>::operator()(unsigned int&&) <null> (ads_integration_test+0x3e80d0d)
    #65 std::__1::__function::__func<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2, std::__1::allocator<Envoy::Network::ConnectionImpl::ConnectionImpl(Envoy::Event::Dispatcher&, std::__1::unique_ptr<Envoy::Network::ConnectionSocket, std::__1::default_delete<Envoy::Network::ConnectionSocket> >&&, std::__1::unique_ptr<Envoy::Network::TransportSocket, std::__1::default_delete<Envoy::Network::TransportSocket> >&&, bool)::$_2>, void (unsigned int)>::operator()(unsigned int&&) <null> (ads_integration_test+0x3e7f34f)
    #66 std::__1::__function::__value_func<void (unsigned int)>::operator()(unsigned int&&) const <null> (ads_integration_test+0x2b24cc4)
    #67 std::__1::function<void (unsigned int)>::operator()(unsigned int) const <null> (ads_integration_test+0x2b24bb5)
    #68 Envoy::Event::FileEventImpl::assignEvents(unsigned int)::$_0::operator()(int, short, void*) const <null> (ads_integration_test+0x3e63ec0)
    #69 Envoy::Event::FileEventImpl::assignEvents(unsigned int)::$_0::__invoke(int, short, void*) <null> (ads_integration_test+0x3e63cc7)
    #70 event_process_active_single_queue <null> (ads_integration_test+0x4e20f86)
    #71 event_base_loop <null> (ads_integration_test+0x4e1b688)
    #72 Envoy::Event::LibeventScheduler::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3f7cfb5)
    #73 Envoy::Event::DispatcherImpl::run(Envoy::Event::Dispatcher::RunType) <null> (ads_integration_test+0x3e56391)
    #74 Envoy::Server::InstanceImpl::run() <null> (ads_integration_test+0x1e4d26e)
    #75 Envoy::IntegrationTestServerImpl::createAndRunEnvoyServer(Envoy::OptionsImpl&, Envoy::Event::TimeSystem&, std::__1::shared_ptr<Envoy::Network::Address::Instance const>, Envoy::ListenerHooks&, Envoy::Thread::BasicLockable&, Envoy::Server::ComponentFactory&, std::__1::unique_ptr<Envoy::Runtime::RandomGenerator, std::__1::default_delete<Envoy::Runtime::RandomGenerator> >&&, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf2668)
    #76 Envoy::IntegrationTestServer::threadRoutine(Envoy::Network::Address::IpVersion, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf2114)
    #77 Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0::operator()() const <null> (ads_integration_test+0x1cf5585)
    #78 decltype(std::__1::forward<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(fp)()) std::__1::__invoke<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&) <null> (ads_integration_test+0x1cf54a0)
    #79 void std::__1::__invoke_void_return_wrapper<void>::__call<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&>(Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0&) <null> (ads_integration_test+0x1cf5400)
    #80 std::__1::__function::__alloc_func<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0, std::__1::allocator<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x1cf53a0)
    #81 std::__1::__function::__func<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0, std::__1::allocator<Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >)::$_0>, void ()>::operator()() <null> (ads_integration_test+0x1cf3d5c)
    #82 std::__1::__function::__value_func<void ()>::operator()() const <null> (ads_integration_test+0x1bcbe88)
    #83 std::__1::function<void ()>::operator()() const <null> (ads_integration_test+0x1bcbb78)
    #84 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::operator()(void*) const <null> (ads_integration_test+0x4df6658)
    #85 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::__invoke(void*) <null> (ads_integration_test+0x4df65e8)
  Thread T6 (tid=20165, running) created by main thread at:
    #0 pthread_create <null> (ads_integration_test+0x19e44b5)
    #1 Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>) <null> (ads_integration_test+0x4df6175)
    #2 std::__1::__unique_if<Envoy::Thread::ThreadImplPosix>::__unique_single std::__1::make_unique<Envoy::Thread::ThreadImplPosix, std::__1::function<void ()>&>(std::__1::function<void ()>&) <null> (ads_integration_test+0x4df6940)
    #3 Envoy::Thread::ThreadFactoryImplPosix::createThread(std::__1::function<void ()>) <null> (ads_integration_test+0x4df64fb)
    #4 Envoy::IntegrationTestServer::start(Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf0e4b)
    #5 Envoy::IntegrationTestServer::create(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Network::Address::IpVersion, std::__1::function<void ()>, bool, Envoy::Event::TestTimeSystem&, Envoy::Api::Api&, bool, absl::optional<std::__1::reference_wrapper<Envoy::ProcessObject> >) <null> (ads_integration_test+0x1cf0a47)
    #6 Envoy::BaseIntegrationTest::createGeneratedApiTestServer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) <null> (ads_integration_test+0x1c340db)
    #7 Envoy::BaseIntegrationTest::createEnvoy() <null> (ads_integration_test+0x1c33dbd)
    #8 Envoy::BaseIntegrationTest::initialize() <null> (ads_integration_test+0x1c3278d)
    #9 Envoy::AdsIntegrationTest::initializeAds(bool) <null> (ads_integration_test+0x1b38214)
    #10 Envoy::AdsIntegrationTest::initialize() <null> (ads_integration_test+0x1b380ea)
    #11 Envoy::AdsIntegrationTest_Basic_Test::TestBody() <null> (ads_integration_test+0x1a6de14)
    #12 non-virtual thunk to Envoy::AdsIntegrationTest_Basic_Test::TestBody() <null> (ads_integration_test+0x1a6de7c)
    #13 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (ads_integration_test+0x4faed36)
    #14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (ads_integration_test+0x4f949be)
    #15 testing::Test::Run() <null> (ads_integration_test+0x4f79beb)
    #16 testing::TestInfo::Run() <null> (ads_integration_test+0x4f7ab0e)
    #17 testing::TestSuite::Run() <null> (ads_integration_test+0x4f7b534)
    #18 testing::internal::UnitTestImpl::RunAllTests() <null> (ads_integration_test+0x4f8a99a)
    #19 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (ads_integration_test+0x4fb4f86)
    #20 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) <null> (ads_integration_test+0x4f986ae)
    #21 testing::UnitTest::Run() <null> (ads_integration_test+0x4f8a24b)
    #22 RUN_ALL_TESTS() <null> (ads_integration_test+0x3a30567)
    #23 Envoy::TestRunner::RunTests(int, char**) <null> (ads_integration_test+0x3a2f835)
    #24 main <null> (ads_integration_test+0x3a2e4fb)

SUMMARY: ThreadSanitizer: data race (/ramdisk/piotrsikora/cache/bazel/_bazel_piotrsikora/052b53ce070b0dcea90180b82120ed3b/execroot/envoy/bazel-out/k8-fastbuild/bin/test/integration/ads_integration_test+0x20bd358) in std::__1::__vector_base<std::__1::shared_ptr<Envoy::Upstream::Host>, std::__1::allocator<std::__1::shared_ptr<Envoy::Upstream::Host> > >::__destruct_at_end(std::__1::shared_ptr<Envoy::Upstream::Host>*)
==================

cc @lizan

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions