Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
junr03 opened this issue Feb 8, 2020 · 1 comment · Fixed by #663
Assignees
Labels

Comments

@junr03
Copy link
Member

junr03 commented Feb 8, 2020


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```
@junr03 junr03 added the crash label Feb 8, 2020
@junr03 junr03 added this to the v0.3 "Secondi" milestone Feb 8, 2020
@junr03
Copy link
Member Author

junr03 commented Feb 8, 2020

Fixed by envoyproxy/envoy#9959. Needs Envoy Mobile Envoy ref bump to incorporate #663

@junr03 junr03 changed the title core: ApiListener shutdown causes crash core: engine termination causes crash due to ordering of ApiListener deletion of active streams Feb 8, 2020
@junr03 junr03 self-assigned this Feb 10, 2020
rebello95 added a commit that referenced this issue Feb 10, 2020
Bumping to include the following fixes:
- `dns: destroy/reinitialize c-ares channel on ARES_ECONNREFUSED`: envoyproxy/envoy#9899. This should resolve the issues we've been seeing with Envoy Mobile hanging on startup and never properly issuing requests if started in the offline state on iOS. Fixes #672, though more improvements to DNS resolution will be investigated in #673
- `gzip: add force load factory declaration`: envoyproxy/envoy#9942. This will allow us to use the gzip filter with Envoy Mobile
- `api listener: add shutdown method and call during server termination`: envoyproxy/envoy#9959. Fixes #667. Fixes #674

Includes the following PRs to fix iOS liveliness tests as well:
- `metrics service: force link v2 config`: envoyproxy/envoy#9875
- `config: remove ApiTypeOracle assert`: envoyproxy/envoy#9973

Also contains necessary updates to accommodate [this change](envoyproxy/envoy@dea4eb0).

Signed-off-by: Michael Rebello <me@michaelrebello.com>
jpsim pushed a commit to envoyproxy/envoy that referenced this issue Nov 28, 2022
Bumping to include the following fixes:
- `dns: destroy/reinitialize c-ares channel on ARES_ECONNREFUSED`: #9899. This should resolve the issues we've been seeing with Envoy Mobile hanging on startup and never properly issuing requests if started in the offline state on iOS. Fixes envoyproxy/envoy-mobile#672, though more improvements to DNS resolution will be investigated in envoyproxy/envoy-mobile#673
- `gzip: add force load factory declaration`: #9942. This will allow us to use the gzip filter with Envoy Mobile
- `api listener: add shutdown method and call during server termination`: #9959. Fixes envoyproxy/envoy-mobile#667. Fixes envoyproxy/envoy-mobile#674

Includes the following PRs to fix iOS liveliness tests as well:
- `metrics service: force link v2 config`: #9875
- `config: remove ApiTypeOracle assert`: #9973

Also contains necessary updates to accommodate [this change](dea4eb0).

Signed-off-by: Michael Rebello <me@michaelrebello.com>
Signed-off-by: JP Simard <jp@jpsim.com>
jpsim pushed a commit to envoyproxy/envoy that referenced this issue Nov 29, 2022
Bumping to include the following fixes:
- `dns: destroy/reinitialize c-ares channel on ARES_ECONNREFUSED`: #9899. This should resolve the issues we've been seeing with Envoy Mobile hanging on startup and never properly issuing requests if started in the offline state on iOS. Fixes envoyproxy/envoy-mobile#672, though more improvements to DNS resolution will be investigated in envoyproxy/envoy-mobile#673
- `gzip: add force load factory declaration`: #9942. This will allow us to use the gzip filter with Envoy Mobile
- `api listener: add shutdown method and call during server termination`: #9959. Fixes envoyproxy/envoy-mobile#667. Fixes envoyproxy/envoy-mobile#674

Includes the following PRs to fix iOS liveliness tests as well:
- `metrics service: force link v2 config`: #9875
- `config: remove ApiTypeOracle assert`: #9973

Also contains necessary updates to accommodate [this change](dea4eb0).

Signed-off-by: Michael Rebello <me@michaelrebello.com>
Signed-off-by: JP Simard <jp@jpsim.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant