diff --git a/xds/src/main/java/io/grpc/xds/ExternalProcessorClientInterceptor.java b/xds/src/main/java/io/grpc/xds/ExternalProcessorClientInterceptor.java index f61e1002926..2b56ed1b8ec 100644 --- a/xds/src/main/java/io/grpc/xds/ExternalProcessorClientInterceptor.java +++ b/xds/src/main/java/io/grpc/xds/ExternalProcessorClientInterceptor.java @@ -851,6 +851,11 @@ public void halfClose() { pendingHalfClose.set(true); if (extProcStreamState.get().isCompleted()) { + if (passThroughMode.get()) { + if (requestSideClosed.compareAndSet(false, true)) { + proceedWithHalfClose(); + } + } return; }