Task with sources/outputs skipped — downstream dependent hangs forever
#8932
-
|
Hi! I ran into a race condition in the parallel task scheduler that causes a hang when a task with mise version: 2026.4.4 (latest) Reproduction I put together a minimal demo repo that reproduces the issue reliably on A failing CI run: https://github.com/patrickhoefler/mise-sources-outputs-hang/actions/runs/24010015826 The entire [tasks.a]
sources = ["in"]
outputs = ["out"]
run = "cp in out"
[tasks.b]
depends = ["a"]
run = "echo b"Run Root cause (best guess — I'm not a Rust programmer and not familiar with the codebase) After digging in with some AI assistance, the issue appears to be in Proposed fix (take with a grain of salt) In if self.sent.insert(key.clone()) {
trace!("Scheduling task {0}", task.name);
if let Err(e) = self.tx.send(Some(task)) {
trace!("Error sending task: {e:?}");
self.sent.remove(&key); // allow re-emission on next subscribe()
}
}Happy to help test a fix! Let me know if you need any more information. The investigation, root cause analysis, and proposed fix were worked out with the help of Claude Code.
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
Fixed in #8937 and https://github.com/jdx/mise/releases/tag/v2026.4.8 — thanks! |
Beta Was this translation helpful? Give feedback.
Fixed in #8937 and https://github.com/jdx/mise/releases/tag/v2026.4.8 — thanks!