Fix "Launching a component with a missing binary can sometimes succeed" (#261)#262
Conversation
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
| markNodeInFlight(); // This will be decremented below, avoid it going negative | ||
| // Also, we need to be careful not to recurse or deadlock here. The below function does not lock any mutex | ||
| // nor call this function | ||
| handleNonTransitionExecution(GraphState::kAborting); |
There was a problem hiding this comment.
This code looks strange for error handling (whole else, especially markNodeInFlight (same as in positive case)). Can you either in commit elaborate on exact issue ?
There was a problem hiding this comment.
With the change on line 181, the graph would remain in kInTransition (rather than incorrectly reporting kSuccess) in this case. We call handleNonTransitionExecution to react to this the same way we would if a process failed to start for example. This takes us to aborting and then the undefined state, triggering a recovery action. markNodeInFlight() is to pass the check on line 391, but it might make sense to move that check out of the function anyway
Fixes #261