monad-developers / monad-developers/ultrafuzz
Modal retry ownership can arrive after the command failure check
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 85
- Forks
- 18
- Avg merge
- 11h 10m
- Merged PRs (30d)
- 194
Description
The Modal retry command can return before its asynchronously started workflow reports ownership, making an immediate event-stream fingerprint racy.
Minimal generic reproduction:
- Use a retained external Solidity workspace with one exhausted selected task.
- Make
retry-taskreset that task, start the workflow asynchronously, returnRETRY_TASK_FAILEDbefore reporting ownership, and exit nonzero. - Shortly after process exit, append
RunStarted, terminal frame records, andRunFailedwhose cause is the exact selected linked-worktreegit read-tree --reset -u <tree>/index.lockcollision. Do not appendNodeStarted. - Compare the retained event stream immediately around the command process.
Observed diagnostics:
attempts=1
byte_stable_streams=1
output_ownership_free=1
read_tree_signatures=0
lock_path_signatures=0
The immediate check reports a byte-stable, apparently unowned command. The same stream then receives a complete terminal collision suffix after the worker has already failed closed.
Expected: recovery uses a bounded delayed-ownership window. It may retry only after validating that the append-only suffix belongs to the same inner run, contains no NodeStarted, ends in RunFailed, and carries the exact selected-worktree collision. Any other append, timeout, identity change, or nonterminal state remains terminal.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the retry-task command and the retained append-only event stream described in the reproduction. Trace how the immediate failure check determines ownership and compare the later stream suffix against the same inner run. Done means only the exact terminal selected-worktree collision with no NodeStarted can trigger a bounded retry; other appends, identity changes, timeouts, or nonterminal states remain terminal.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- solidity, typescript
- Domain
- backend, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100