Skip to content

core: engine termination causes crash due to ordering of ApiListener deletion of active streams #667

@junr03

Description

@junr03

0  Lyft                    Envoy::Http::TlsCachingDateProviderImpl::setDateHeader(Envoy::Http::HeaderMap&) (Lyft)
1  Lyft                    Envoy::Http::ConnectionManagerImpl::ActiveStream::encodeHeaders(Envoy::Http::ConnectionManagerImpl::ActiveStreamEncoderFilter*, Envoy::Http::HeaderMap&, bool) (Lyft)
2  Lyft                    Envoy::Http::Utility::sendLocalReply(bool, std::__1::function<void (std::__1::unique_ptr<Envoy::Http::HeaderMap, std::__1::default_delete<Envoy::Http::HeaderMap> >&&, bool)>, std::__1::function<void (Envoy::Buffer::Instance&, bool)>, bool const&, Envoy::Http::Code, absl::string_view, absl::optional<long long>, bool) (Lyft)
3  Lyft                    Envoy::Http::ConnectionManagerImpl::ActiveStream::sendLocalReply(bool, Envoy::Http::Code, absl::string_view, std::__1::function<void (Envoy::Http::HeaderMap&)> const&, bool, absl::optional<long long>, absl::string_view) (Lyft)
4  Lyft                    Envoy::Http::ConnectionManagerImpl::ActiveStreamDecoderFilter::sendLocalReply(Envoy::Http::Code, absl::string_view, std::__1::function<void (Envoy::Http::HeaderMap&)>, absl::optional<long long>, absl::string_view) (Lyft)
5  Lyft                    Envoy::Router::Filter::onUpstreamAbort(Envoy::Http::Code, Envoy::StreamInfo::ResponseFlag, absl::string_view, bool, absl::string_view) (Lyft)
6  Lyft                    Envoy::Router::Filter::onUpstreamReset(Envoy::Http::StreamResetReason, absl::string_view, Envoy::Router::Filter::UpstreamRequest&) (Lyft)
7  Lyft                    Envoy::Router::Filter::UpstreamRequest::onResetStream(Envoy::Http::StreamResetReason, absl::string_view) (Lyft)
8  Lyft                    non-virtual thunk to Envoy::Http::Http1::ClientConnectionImpl::onResetStream(Envoy::Http::StreamResetReason) (Lyft)
9  Lyft                    Envoy::Http::CodecClient::onEvent(Envoy::Network::ConnectionEvent) (Lyft)
10 Lyft                    Envoy::Network::ConnectionImplBase::raiseConnectionEvent(Envoy::Network::ConnectionEvent) (Lyft)
11 Lyft                    Envoy::Network::ConnectionImpl::raiseEvent(Envoy::Network::ConnectionEvent) (Lyft)
12 Lyft                    Envoy::Network::ConnectionImpl::closeSocket(Envoy::Network::ConnectionEvent) (Lyft)
13 Lyft                    Envoy::Network::ConnectionImpl::close(Envoy::Network::ConnectionCloseType) (Lyft)
14 Lyft                    Envoy::Http::Http1::ConnPoolImpl::~ConnPoolImpl() (Lyft)
15 Lyft                    Envoy::Http::Http1::ProdConnPoolImpl::~ProdConnPoolImpl() (Lyft)
16 Lyft                    absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, std::__1::unique_ptr<Envoy::Http::ConnectionPool::Instance, std::__1::default_delete<Envoy::Http::ConnectionPool::Instance> > >, absl::hash_internal::Hash<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >, std::__1::equal_to<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >, std::__1::allocator<std::__1::pair<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const, std::__1::unique_ptr<Envoy::Http::ConnectionPool::Instance, std::__1::default_delete<Envoy::Http::ConnectionPool::Instance> > > > >::clear() (Lyft)
17 Lyft                    Envoy::Upstream::ConnPoolMap<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, Envoy::Http::ConnectionPool::Instance>::~ConnPoolMap() (Lyft)
18 Lyft                    std::__1::__shared_ptr_emplace<Envoy::Upstream::PriorityConnPoolMap<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, Envoy::Http::ConnectionPool::Instance>, std::__1::allocator<Envoy::Upstream::PriorityConnPoolMap<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, Envoy::Http::ConnectionPool::Instance> > >::__on_zero_shared() (Lyft)
19 Lyft                    Envoy::Upstream::ClusterManagerImpl::ThreadLocalClusterManagerImpl::~ThreadLocalClusterManagerImpl() (Lyft)
20 Lyft                    Envoy::ThreadLocal::InstanceImpl::shutdownThread() (Lyft)
21 Lyft                    Envoy::Server::InstanceImpl::terminate() (Lyft)
22 Lyft                    Envoy::Server::InstanceImpl::run() (Lyft)
23 Lyft                    Envoy::MainCommonBase::run() (Lyft)
24 Lyft                    Envoy::Engine::run(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> >) (Lyft)
25 Lyft                    void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, envoy_status_t (Envoy::Engine::*)(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> >), Envoy::Engine*, 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> > > >(void*) (Lyft)
26 libsystem_pthread.dylib __pthread_start```

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions