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]