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


##########
fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/streaming/StreamingMultiTblTask.java:
##########
@@ -362,22 +366,65 @@ private String getFrontendAddress() {
     }
 
     public boolean isTimeout() {
+        return isTimeout(fetchProgress());

Review Comment:
   `processTimeoutTasks()` calls this while holding the streaming job write 
lock (`StreamingInsertJob.processTimeoutTasks()` takes `writeLock()` before 
`runningMultiTask.isTimeout()`). With this change, `isTimeout()` performs 
`fetchProgress()`, which sends a backend RPC and blocks on `future.get(..., 
streaming_cdc_light_rpc_timeout_sec)`. A slow or unreachable BE/CDC client can 
therefore hold the job write lock for up to 90s on every timeout scan, blocking 
commitOffset, fail/cancel/reschedule, and other job state changes. FE locking 
rules explicitly avoid RPC while holding metadata/job locks. Please move 
progress fetching outside the write lock, cache it asynchronously, or make 
`isTimeout()` consume already-fetched progress only.



-- 
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