From cf0e64d982f24f00b5d33cbb1e02f7c0d848877d Mon Sep 17 00:00:00 2001 From: Anirudha Singh Date: Wed, 11 Nov 2020 16:05:57 +0530 Subject: [PATCH] Added fix for crash observed on listener update while draining old listener's place-holder filter-chain --- source/server/filter_chain_manager_impl.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/server/filter_chain_manager_impl.h b/source/server/filter_chain_manager_impl.h index 641ec559429f2..10aa7894b6e0b 100644 --- a/source/server/filter_chain_manager_impl.h +++ b/source/server/filter_chain_manager_impl.h @@ -139,7 +139,12 @@ class FilterChainImpl : public Network::DrainableFilterChain { rebuilt_filter_chain_ = nullptr; } - void startDraining() override { factory_context_->startDraining(); } + void startDraining() override { + if (is_placeholder_ && !has_rebuilt_filter_chain_ && factory_context_ == nullptr) { + return; + } + factory_context_->startDraining(); + } void setFilterChainFactoryContext( Configuration::FilterChainFactoryContextPtr filter_chain_factory_context) {