github-actions[bot] commented on code in PR #68283:
URL: https://github.com/apache/doris/pull/68283#discussion_r4069762838


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/execute/ConnectorRewriteDriver.java:
##########
@@ -224,30 +223,63 @@ public void onTaskFailed(Long taskId, Exception error) {
             tasks.add(task);
         }
 
+        List<ConnectorRewriteGroupTask> submitted = Lists.newArrayList();
         try {
-            for (TransientTaskExecutor task : tasks) {
+            for (ConnectorRewriteGroupTask task : tasks) {
                 
Env.getCurrentEnv().getTransientTaskManager().addMemoryTask(task);
+                submitted.add(task);

Review Comment:
   [P2] Remove the current task when publication itself fails. This is distinct 
from the existing live-group rollback thread: this Nth task is inserted into 
`taskExecutorMap` by `TransientTaskManager.addMemoryTask`, but ring-buffer 
capacity failure throws before an event is published and before this append 
records it in `submitted`. The catch therefore drains only earlier tasks, and 
`TaskHandler` can never remove this one, so repeated saturation permanently 
retains the shared transaction/context and the collector's full task graph. 
Please make manager registration/publication atomic (also failing instead of 
silently retaining the task when the disruptor is closed), or explicitly remove 
the current failed task, with a test that exercises 
insertion-before-publication rather than mocking the manager call.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to