Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
1.18.0, 1.19.0
Description
Now, the asyncOperations ThreadPoolExecutor of SubtaskCheckpointCoordinatorImpl is create with a LinkedBlockingQueue and zero corePoolSize.
And in the ThreadPoolExecutor, except for the first time the task is submitted, no new thread is created until the queue is full. But the capacity of LinkedBlockingQueue is Integer.Max. This means that there is almost only one thread working in this thread pool, even if there are many concurrent checkpoint requests or checkpoint abort requests waiting to be processed.
This problem can be verified by changing ExecutorService implementation in UTÂ
SubtaskCheckpointCoordinatorTest#testNotifyCheckpointAbortedDuringAsyncPhase. When the LinkedBlockingQueue and zero corePoolSize are configured, this UT will deadlock because only one worker thread can be created.
Attachments
Attachments
Issue Links
- links to