-
Bug
-
Resolution: Done
-
Blocker
-
None
MP FT does behave correctly in case when there is @Bulkhead, @Timeout and @Fallback and @Asynchronous on service method. Some of requests do not go to fallback method but end with InterruptedException.
Test scenario:
- Deploy MP FT service with:
@Asynchronous @Bulkhead(value = 15, waitingTaskQueue = 15) @Timeout(value = 1000) @Fallback(fallbackMethod = "processFallback") public CompletionStage<MyConnection> bulkheadTimeout(boolean fail) throws InterruptedException { if (fail) { Thread.sleep(2000); } return CompletableFuture.completedFuture(new MyConnection() { @Override public String getData() { return "Hello from @Bulkhead @Timeout method"; } }); } private CompletionStage<MyConnection> processFallback(boolean fail) { return CompletableFuture.completedFuture(new MyConnection() { @Override public String getData() { return "Fallback Hello"; } }); }
- Send 10+ parallel requests with fail == true
Expected result:
All requests should go to fallback.
Actual Result:
Random number of requests (close to the number of requests) go to fallback.
- is incorporated by
-
JBEAP-18872 Upgrade smallrye-fault-tolerance to 4.1.1 and MP fault-tolerance API to 2.1
- Closed
-
WFLY-13190 Upgrade smallrye-fault-tolerance to 4.1.1
- Closed