monad-developers / monad-developers/ultrafuzz

Modal retry ownership can arrive after the command failure check

Open
#731 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

deferred-post-v0.1
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:

  1. Use a retained external Solidity workspace with one exhausted selected task.
  2. Make retry-task reset that task, start the workflow asynchronously, return RETRY_TASK_FAILED before reporting ownership, and exit nonzero.
  3. Shortly after process exit, append RunStarted, terminal frame records, and RunFailed whose cause is the exact selected linked-worktree git read-tree --reset -u <tree> / index.lock collision. Do not append NodeStarted.
  4. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.