envoy icon indicating copy to clipboard operation
envoy copied to clipboard

ssl: flake in ssl_integration_test under tsan

Open jmarantz opened this issue 1 year ago • 7 comments

This was from CI for a PR that does not appear related: #32346

full logs here: https://dev.azure.com/cncf/4684fb3d-0389-4e0b-8251-221942316e06/_apis/build/builds/163565/logs/413

thread 1:

024-02-29T18:05:45.8761644Z [ RUN      ] IpVersions/SslIntegrationTest.LogPeerIpSanUnsupportedIpVersion/IPv4
2024-02-29T18:05:45.8762331Z ==================
2024-02-29T18:05:45.8762756Z WARNING: ThreadSanitizer: data race (pid=16)
2024-02-29T18:05:45.8763473Z   Write of size 1 at 0x00000c09b828 by main thread:
2024-02-29T18:05:45.8765098Z     #0 Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1::operator()() const /proc/self/cwd/source/common/network/address_impl.cc:344:57 (ssl_integration_test+0x8bbec60)
2024-02-29T18:05:45.8768429Z     #1 decltype(static_cast<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&>(fp)()) std::__1::__invoke<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&>(Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&) /opt/llvm/bin/../include/c++/v1/type_traits:3640:23 (ssl_integration_test+0x8bbebf5)
2024-02-29T18:05:45.8772789Z     #2 void std::__1::__invoke_void_return_wrapper<void, true>::__call<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&>(Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&) /opt/llvm/bin/../include/c++/v1/__functional/invoke.h:61:9 (ssl_integration_test+0x8bbeb6d)
2024-02-29T18:05:45.8776472Z     #3 std::__1::__function::__alloc_func<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1, std::__1::allocator<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1>, void ()>::operator()() /opt/llvm/bin/../include/c++/v1/__functional/function.h:180:16 (ssl_integration_test+0x8bbeb1d)
2024-02-29T18:05:45.8780166Z     #4 std::__1::__function::__func<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1, std::__1::allocator<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1>, void ()>::operator()() /opt/llvm/bin/../include/c++/v1/__functional/function.h:354:12 (ssl_integration_test+0x8bbd2d9)
2024-02-29T18:05:45.8782866Z     #5 std::__1::__function::__value_func<void ()>::operator()() const /opt/llvm/bin/../include/c++/v1/__functional/function.h:507:16 (ssl_integration_test+0x3452e11)
2024-02-29T18:05:45.8784532Z     #6 std::__1::function<void ()>::operator()() const /opt/llvm/bin/../include/c++/v1/__functional/function.h:1184:12 (ssl_integration_test+0x3452d35)
2024-02-29T18:05:45.8786005Z     #7 Envoy::Cleanup::~Cleanup() /proc/self/cwd/./source/common/common/cleanup.h:14:16 (ssl_integration_test+0x3381f09)
2024-02-29T18:05:45.8788019Z     #8 Envoy::Ssl::SslIntegrationTest_LogPeerIpSanUnsupportedIpVersion_Test::TestBody() /proc/self/cwd/test/extensions/transport_sockets/tls/integration/ssl_integration_test.cc:504:1 (ssl_integration_test+0x32fd6d5)

thread 2:

024-02-29T18:05:45.8816163Z   Previous read of size 1 at 0x00000c09b828 by thread T337:
2024-02-29T18:05:45.8817486Z     #0 Envoy::Network::Address::Ipv6Instance::validateProtocolSupported() /proc/self/cwd/source/common/network/address_impl.cc:349:21 (ssl_integration_test+0x8bb7ab3)
2024-02-29T18:05:45.8819764Z     #1 Envoy::Network::Address::Ipv6Instance::Ipv6Instance(sockaddr_in6 const&, bool, Envoy::Network::SocketInterface const*) /proc/self/cwd/source/common/network/address_impl.cc:292:16 (ssl_integration_test+0x8bb78ff)
2024-02-29T18:05:45.8822279Z     #2 Envoy::Extensions::TransportSockets::Tls::Utility::generalNameAsString(GENERAL_NAME_st const*) /proc/self/cwd/source/extensions/transport_sockets/tls/utility.cc:226:38 (ssl_integration_test+0x700744d)
2024-02-29T18:05:45.8824719Z     #3 Envoy::Extensions::TransportSockets::Tls::Utility::getSubjectAltNames(x509_st&, int, bool) /proc/self/cwd/source/extensions/transport_sockets/tls/utility.cc:182:63 (ssl_integration_test+0x7005ace)
2024-02-29T18:05:45.8827278Z     #4 Envoy::Extensions::TransportSockets::Tls::ConnectionInfoImplBase::ipSansPeerCertificate() const /proc/self/cwd/source/extensions/transport_sockets/tls/connection_info_impl_base.cc:188:37 (ssl_integration_test+0x6f7a7fe)
2024-02-29T18:05:45.8831492Z     #5 Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)::operator()(Envoy::Ssl::ConnectionInfo const&) const /proc/self/cwd/source/common/formatter/stream_info_formatter.cc:639:3 (ssl_integration_test+0x7d508f8)
2024-02-29T18:05:45.8840596Z     #6 decltype(static_cast<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&>(fp)(static_cast<Envoy::Ssl::ConnectionInfo const&>(fp0))) std::__1::__invoke<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&>(Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/type_traits:3640:23 (ssl_integration_test+0x7d50865)
2024-02-29T18:05:45.8852628Z     #7 std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > std::__1::__invoke_void_return_wrapper<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, false>::__call<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&>(Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/__functional/invoke.h:30:16 (ssl_integration_test+0x7d50761)
2024-02-29T18:05:45.8863976Z     #8 std::__1::__function::__alloc_func<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&), std::__1::allocator<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)>, std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/__functional/function.h:180:16 (ssl_integration_test+0x7d506ce)
2024-02-29T18:05:45.8873944Z     #9 std::__1::__function::__func<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&), std::__1::allocator<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_56::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)>, std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/__functional/function.h:354:12 (ssl_integration_test+0x7d4ee6d)
2024-02-29T18:05:45.8880184Z     #10 std::__1::__function::__value_func<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) const /opt/llvm/bin/../include/c++/v1/__functional/function.h:507:16 (ssl_integration_test+0x7e00d56)
2024-02-29T18:05:45.8883919Z     #11 std::__1::function<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) const /opt/llvm/bin/../include/c++/v1/__functional/function.h:1184:12 (ssl_integration_test+0x7e00c39)
2024-02-29T18:05:45.8886986Z     #12 Envoy::Formatter::StreamInfoSslConnectionInfoFormatterProvider::format(Envoy::StreamInfo::StreamInfo const&) const /proc/self/cwd/source/common/formatter/stream_info_formatter.cc:574:24 (ssl_integration_test+0x7e01c78)
2024-02-29T18:05:45.8890484Z     #13 Envoy::Formatter::CommonStreamInfoFormatterBase<Envoy::Formatter::HttpFormatterContext>::formatWithContext(Envoy::Formatter::HttpFormatterContext const&, Envoy::StreamInfo::StreamInfo const&) const /proc/self/cwd/./source/common/formatter/stream_info_formatter.h:295:24 (ssl_integration_test+0x4d550aa)
2024-02-29T18:05:45.8894526Z     #14 Envoy::Formatter::CommonFormatterBaseImpl<Envoy::Formatter::HttpFormatterContext>::formatWithContext(Envoy::Formatter::HttpFormatterContext const&, Envoy::StreamInfo::StreamInfo const&) const /proc/self/cwd/./source/common/formatter/substitution_formatter.h:160:34 (ssl_integration_test+0x4d3ab8c)
2024-02-29T18:05:45.8897917Z     #15 Envoy::Extensions::AccessLoggers::File::FileAccessLog::emitLog(Envoy::Formatter::HttpFormatterContext const&, Envoy::StreamInfo::StreamInfo const&) /proc/self/cwd/source/extensions/access_loggers/common/file_access_log_impl.cc:19:32 (ssl_integration_test+0x68bbe9a)
2024-02-29T18:05:45.8901106Z     #16 Envoy::Extensions::AccessLoggers::Common::ImplBase::log(Envoy::Formatter::HttpFormatterContext const&, Envoy::StreamInfo::StreamInfo const&) /proc/self/cwd/source/extensions/access_loggers/common/access_log_base.cc:18:10 (ssl_integration_test+0x68bc8cb)
2024-02-29T18:05:45.8904059Z     #17 Envoy::Server::ActiveStreamListenerBase::emitLogs(Envoy::Network::ListenerConfig&, Envoy::StreamInfo::StreamInfo&) /proc/self/cwd/source/common/listener_manager/active_stream_listener_base.cc:34:17 (ssl_integration_test+0x647af52)
2024-02-29T18:05:45.8906560Z     #18 Envoy::Server::ActiveTcpConnection::~ActiveTcpConnection() /proc/self/cwd/source/common/listener_manager/active_stream_listener_base.cc:111:3 (ssl_integration_test+0x647dfa3)
2024-02-29T18:05:45.8908753Z     #19 Envoy::Server::ActiveTcpConnection::~ActiveTcpConnection() /proc/self/cwd/source/common/listener_manager/active_stream_listener_base.cc:110:45 (ssl_integration_test+0x647e239)
2024-02-29T18:05:45.8910990Z     #20 std::__1::default_delete<Envoy::Event::DeferredDeletable>::operator()(Envoy::Event::DeferredDeletable*) const /opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:54:5 (ssl_integration_test+0x4db180d)
2024-02-29T18:05:45.8913539Z     #21 std::__1::unique_ptr<Envoy::Event::DeferredDeletable, std::__1::default_delete<Envoy::Event::DeferredDeletable> >::reset(Envoy::Event::DeferredDeletable*) /opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:315:7 (ssl_integration_test+0x4db17b4)
2024-02-29T18:05:45.8915899Z     #22 Envoy::Event::DispatcherImpl::clearDeferredDeleteList() /proc/self/cwd/source/common/event/dispatcher_impl.cc:139:21 (ssl_integration_test+0x84a10bb)
2024-02-29T18:05:45.8920386Z     #23 Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2::operator()() const /proc/self/cwd/source/common/event/dispatcher_impl.cc:76:30 (ssl_integration_test+0x84b0b56)
2024-02-29T18:05:45.8934182Z     #24 decltype(static_cast<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2&>(fp)()) std::__1::__invoke<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2&>(Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2&) /opt/llvm/bin/../include/c++/v1/type_traits:3640:23 (ssl_integration_test+0x84b0ad5)
2024-02-29T18:05:45.8951037Z     #25 void std::__1::__invoke_void_return_wrapper<void, true>::__call<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2&>(Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2&) /opt/llvm/bin/../include/c++/v1/__functional/invoke.h:61:9 (ssl_integration_test+0x84b0a4d)
2024-02-29T18:05:45.8964691Z     #26 std::__1::__function::__alloc_func<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2, std::__1::allocator<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2>, void ()>::operator()() /opt/llvm/bin/../include/c++/v1/__functional/function.h:180:16 (ssl_integration_test+0x84b09fd)
2024-02-29T18:05:45.8978485Z     #27 std::__1::__function::__func<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2, std::__1::allocator<Envoy::Event::DispatcherImpl::DispatcherImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Envoy::Thread::ThreadFactory&, Envoy::TimeSource&, Envoy::Random::RandomGenerator&, Envoy::Filesystem::Instance&, Envoy::Event::TimeSystem&, std::__1::function<std::__1::unique_ptr<Envoy::Event::ScaledRangeTimerManager, std::__1::default_delete<Envoy::Event::ScaledRangeTimerManager> > (Envoy::Event::Dispatcher&)> const&, std::__1::shared_ptr<Envoy::Buffer::WatermarkFactory> const&)::$_2>, void ()>::operator()() /opt/llvm/bin/../include/c++/v1/__functional/function.h:354:12 (ssl_integration_test+0x84af1b9)
2024-02-29T18:05:45.8986149Z     #28 std::__1::__function::__value_func<void ()>::operator()() const /opt/llvm/bin/../include/c++/v1/__functional/function.h:507:16 (ssl_integration_test+0x3452e11)
2024-02-29T18:05:45.8987933Z     #29 std::__1::function<void ()>::operator()() const /opt/llvm/bin/../include/c++/v1/__functional/function.h:1184:12 (ssl_integration_test+0x3452d35)
2024-02-29T18:05:45.8990484Z     #30 Envoy::Event::SchedulableCallbackImpl::SchedulableCallbackImpl(Envoy::CSmartPtr<event_base, &(event_base_free)>&, std::__1::function<void ()>)::$_0::operator()(int, short, void*) const /proc/self/cwd/source/common/event/schedulable_cb_impl.cc:14:3 (ssl_integration_test+0x8b6e665)

@yanjunxiang-google @yanavlasov

jmarantz avatar Feb 29 '24 22:02 jmarantz

I think this was fixed by https://github.com/envoyproxy/envoy/pull/32631, and a duplicate of https://github.com/envoyproxy/envoy/issues/32527.

ggreenway avatar Mar 01 '24 01:03 ggreenway

I'm going to close for now; re-open if it turns out to not be a duplicate.

ggreenway avatar Mar 01 '24 01:03 ggreenway

I'm seeing what I think is the same issue (full logs).

[ RUN      ] IpVersions/SslIntegrationTest.LogPeerIpSanUnsupportedIpVersion/IPv4
==================
WARNING: ThreadSanitizer: data race (pid=16)
  Write of size 1 at 0x00000bf8abe0 by main thread:
    #0 Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1::operator()() const /proc/self/cwd/source/common/network/address_impl.cc:344:64 (ssl_integration_test+0x89f8360)
    #1 decltype(static_cast<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&>(fp)()) std::__1::__invoke<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&>(Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&) /opt/llvm/bin/../include/c++/v1/type_traits:3640:23 (ssl_integration_test+0x89f82f5)
    #2 void std::__1::__invoke_void_return_wrapper<void, true>::__call<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&>(Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1&) /opt/llvm/bin/../include/c++/v1/__functional/invoke.h:61:9 (ssl_integration_test+0x89f826d)
    #3 std::__1::__function::__alloc_func<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1, std::__1::allocator<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1>, void ()>::operator()() /opt/llvm/bin/../include/c++/v1/__functional/function.h:180:16 (ssl_integration_test+0x89f821d)
    #4 std::__1::__function::__func<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1, std::__1::allocator<Envoy::Network::Address::Ipv6Instance::forceProtocolUnsupportedForTest(bool)::$_1>, void ()>::operator()() /opt/llvm/bin/../include/c++/v1/__functional/function.h:354:12 (ssl_integration_test+0x89f69d9)
    #5 std::__1::__function::__value_func<void ()>::operator()() const /opt/llvm/bin/../include/c++/v1/__functional/function.h:507:16 (ssl_integration_test+0x3400b91)
    #6 std::__1::function<void ()>::operator()() const /opt/llvm/bin/../include/c++/v1/__functional/function.h:1184:12 (ssl_integration_test+0x3400ab5)
    #7 Envoy::Cleanup::~Cleanup() /proc/self/cwd/./source/common/common/cleanup.h:14:16 (ssl_integration_test+0x332a4b9)
    #8 Envoy::Ssl::SslIntegrationTest_LogPeerIpSanUnsupportedIpVersion_Test::TestBody() /proc/self/cwd/test/extensions/transport_sockets/tls/integration/ssl_integration_test.cc:504:1 (ssl_integration_test+0x32a8035)

and

  Previous read of size 1 at 0x00000bf8abe0 by thread T339:
    #0 Envoy::Network::Address::Ipv6Instance::validateProtocolSupported() /proc/self/cwd/source/common/network/address_impl.cc:349:21 (ssl_integration_test+0x89f11d3)
    #1 Envoy::Network::Address::Ipv6Instance::Ipv6Instance(sockaddr_in6 const&, bool, Envoy::Network::SocketInterface const*) /proc/self/cwd/source/common/network/address_impl.cc:292:16 (ssl_integration_test+0x89f101f)
    #2 Envoy::Extensions::TransportSockets::Tls::Utility::generalNameAsString(GENERAL_NAME_st const*) /proc/self/cwd/source/extensions/transport_sockets/tls/utility.cc:226:38 (ssl_integration_test+0x6e51a4d)
    #3 Envoy::Extensions::TransportSockets::Tls::Utility::getSubjectAltNames(x509_st&, int, bool) /proc/self/cwd/source/extensions/transport_sockets/tls/utility.cc:182:63 (ssl_integration_test+0x6e500ce)
    #4 Envoy::Extensions::TransportSockets::Tls::ConnectionInfoImplBase::ipSansPeerCertificate() const /proc/self/cwd/source/extensions/transport_sockets/tls/connection_info_impl_base.cc:188:37 (ssl_integration_test+0x6dc55ee)
    #5 Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)::operator()(Envoy::Ssl::ConnectionInfo const&) const /proc/self/cwd/source/common/formatter/stream_info_formatter.cc:640:3 (ssl_integration_test+0x7b7d018)
    #6 decltype(static_cast<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&>(fp)(static_cast<Envoy::Ssl::ConnectionInfo const&>(fp0))) std::__1::__invoke<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&>(Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/type_traits:3640:23 (ssl_integration_test+0x7b7cf85)
    #7 std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > std::__1::__invoke_void_return_wrapper<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, false>::__call<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&>(Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)&, Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/__functional/invoke.h:30:16 (ssl_integration_test+0x7b7ce81)
    #8 std::__1::__function::__alloc_func<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&), std::__1::allocator<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)>, std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/__functional/function.h:180:16 (ssl_integration_test+0x7b7cdee)
    #9 std::__1::__function::__func<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&), std::__1::allocator<Envoy::Formatter::getKnownStreamInfoFormatterProviders()::$_55::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<unsigned long>) const::'lambda'(Envoy::Ssl::ConnectionInfo const&)>, std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) /opt/llvm/bin/../include/c++/v1/__functional/function.h:354:12 (ssl_integration_test+0x7b7b58d)
    #10 std::__1::__function::__value_func<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) const /opt/llvm/bin/../include/c++/v1/__functional/function.h:507:16 (ssl_integration_test+0x7c0c5a6)
    #11 std::__1::function<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (Envoy::Ssl::ConnectionInfo const&)>::operator()(Envoy::Ssl::ConnectionInfo const&) const /opt/llvm/bin/../include/c++/v1/__functional/function.h:1184:12 (ssl_integration_test+0x7c0c489)
    #12 Envoy::Formatter::StreamInfoSslConnectionInfoFormatterProvider::format(Envoy::StreamInfo::StreamInfo const&) const /proc/self/cwd/source/common/formatter/stream_info_formatter.cc:575:24 (ssl_integration_test+0x7c0d568)

Reopening.

adisuissa avatar Apr 19 '24 14:04 adisuissa

I'm tempted to just disable these tests on TSAN builds; there's no chance of any non-test bug from this.

ggreenway avatar Apr 22 '24 16:04 ggreenway

@ggreenway I don't have context on this bug, but if we are disabling a test for TSAN because it fails, even if it's just a test issue, won't there be a chance that the test issue could cause flakes in non-tsan builds?

jmarantz avatar Apr 22 '24 16:04 jmarantz

I'm not sure if it could fail in theory or not. But I don't think it ever has. If it could fail, the tsan-fix probably wouldn't fix an actual test failure.

If you want to investigate, search for all uses of forceProtocolUnsupportedForTest; there aren't very many.

ggreenway avatar Apr 22 '24 17:04 ggreenway

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.

github-actions[bot] avatar May 22 '24 20:05 github-actions[bot]

This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions.

github-actions[bot] avatar May 30 '24 00:05 github-actions[bot]

Another occurrence of this tsan flakyness here.

adisuissa avatar Jun 05 '24 13:06 adisuissa