ruanwenjun commented on issue #18570: URL: https://github.com/apache/dolphinscheduler/issues/18570#issuecomment-5352244226
After reviewing 3.4.2 and the current dev branch, the code does exclude a BUSY master from the normal server list and set its slot to -1. However, this alone does not create a permanent deadlock. CommandEngine checks overload before fetching commands, while heartbeat and existing workflow execution continue independently. Once the active workflow count drops below the threshold, the master reports NORMAL and recalculates its slot. In standalone mode, CommandEngine also waits for the current batch to finish before fetching again, so slot changes alone should not fetch the same command twice. The duplicate-command handling appears to be a separate issue: CommandDuplicateHandleException may reach bootstrapError wrapped in CompletionException, causing the direct instanceof check to fail and incorrectly mark the workflow as FAILURE. Could you provide the full exception chain, repeated command ID, and all master addresses around the first stuck instance? Preserving an old slot may also create overlapping assignments in a multi-master deployment. -- 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]
