Skip to content

Commit

Permalink
Follow up for issue #10933 and associated PR #10949.
Browse files Browse the repository at this point in the history
Most often failures come from the read side, so failure listeners are now serialized in the _readInvoker.
This avoids that a failure while parsing a request (e.g. an early EOF) results in concurrent executions of the invokeOnContentAvailable task and the invokeOnFailureListeners task.

Signed-off-by: Simone Bordet <[email protected]>
  • Loading branch information
sbordet committed Dec 17, 2023
1 parent c5e40f5 commit fbf8ddd
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ public Runnable onFailure(Throwable x)
};

// Serialize all the error actions.
task = Invocable.combine(_readInvoker.offer(invokeOnContentAvailable), _writeInvoker.offer(invokeWriteFailure), invokeOnFailureListeners);
task = Invocable.combine(_readInvoker.offer(invokeOnContentAvailable), _writeInvoker.offer(invokeWriteFailure), _readInvoker.offer(invokeOnFailureListeners));
}
}

Expand Down

0 comments on commit fbf8ddd

Please sign in to comment.