Disable nondeterministic IT #3048
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Type of change
Description
Our dream was that we could guarantee that chained work is executed on the filter dispatch executor. However in the empty case we complete extremely quickly so there is a possibility that work chained on to filterContext.topicNames(xyz) will execute in the calling thread, not the filter dispatch thread.
We need to decide if we take things further, like implementing our own CompletionStage with a different execution guarantee than CompletableFuture. Or we could rely on javadoc to let developers know that if they call topicNames from an uncontrolled thread, they will need to switch back to the filterDispatchExecutor to mutate filter members safely using a then*Async method of the CompletionStage.
See #3045
Checklist
Please go through this checklist and make sure all applicable tasks have been done