From 7e3f10bffb6e13cbb421c2b5cefbe5e55c89d231 Mon Sep 17 00:00:00 2001 From: Yanjun Xiang Date: Wed, 31 May 2023 17:37:46 +0000 Subject: [PATCH] addressing comments Signed-off-by: Yanjun Xiang --- source/extensions/filters/http/ext_proc/ext_proc.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/extensions/filters/http/ext_proc/ext_proc.cc b/source/extensions/filters/http/ext_proc/ext_proc.cc index a631b702a672..d79679d17c3b 100644 --- a/source/extensions/filters/http/ext_proc/ext_proc.cc +++ b/source/extensions/filters/http/ext_proc/ext_proc.cc @@ -118,18 +118,18 @@ void Filter::setEncoderFilterCallbacks(Http::StreamEncoderFilterCallbacks& callb } Filter::StreamOpenState Filter::openStream() { - // If processing already completes, no need to open a gRPC stream. + // External processing already completes. Return IgnoreError so the filter will return Continue. if (processing_complete_) { - return sent_immediate_response_ ? StreamOpenState::Error : StreamOpenState::IgnoreError; + return StreamOpenState::IgnoreError; } if (!stream_) { ENVOY_LOG(debug, "Opening gRPC stream to external processor"); stream_ = client_->start(*this, grpc_service_, decoder_callbacks_->streamInfo()); - if (stream_ == nullptr) { - return config_->failureModeAllow() ? StreamOpenState::IgnoreError : StreamOpenState::Error; - } - stats_.streams_started_.inc(); + if (processing_complete_) { + // Stream failed while starting and either onGrpcError or onGrpcClose was already called + return sent_immediate_response_ ? StreamOpenState::Error : StreamOpenState::IgnoreError; + } // For custom access logging purposes. Applicable only for Envoy gRPC as Google gRPC does not // have a proper implementation of streamInfo. if (grpc_service_.has_envoy_grpc()) {