Skip to content

Commit 01a11f3

Browse files
committed
Fix incorrect behavior when handling draining of ext proc request messages queue. Passthough flag should only be set to true afetr this draining is complete, as otherwise application.sendMessage will deliver the message upstream out of order.
1 parent ec14b26 commit 01a11f3

1 file changed

Lines changed: 1 addition & 2 deletions

File tree

xds/src/main/java/io/grpc/xds/ExternalProcessorFilter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,17 +1512,16 @@ private void handleImmediateResponse(ImmediateResponse immediate, DataPlaneListe
15121512

15131513
private void drainPendingDrainingMessages() {
15141514
synchronized (streamLock) {
1515-
passThroughMode.set(true);
15161515
InputStream msg;
15171516
while ((msg = pendingDrainingMessages.poll()) != null) {
15181517
super.sendMessage(msg);
15191518
}
1519+
passThroughMode.set(true);
15201520
}
15211521
}
15221522

15231523
private void handleFailOpen(DataPlaneListener listener) {
15241524
activateCall();
1525-
drainPendingDrainingMessages();
15261525
listener.unblockAfterStreamComplete();
15271526
closeExtProcStream();
15281527
}

0 commit comments

Comments
 (0)