monad-developers / monad-developers/ultrafuzz
Modal durable resume redundantly revalidates and reseals execution snapshots
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 85
- Forks
- 18
- Avg merge
- 11h 10m
- Merged PRs (30d)
- 194
Description
Summary
On v0.1.0, a same-generation Modal node resume redundantly verifies, reseals, and verifies again an execution snapshot that the first attempt already sealed. For large generated dependency closures on a filesystem-v2 Volume, this can consume the entire node callback timeout before the durable inner workflow is resumed.
Minimal generic reproduction
- Launch the default topology in documented Modal cloud-node mode with a generic external Solidity target and
[execution.resources] timeout_seconds = 1800. - Use a generated execution dependency closure with roughly 46,000 files / 700 MB (a synthetic tree is sufficient).
- Let one node write durable
preparedandrunningcheckpoints, then time out before its inner workflow finalizes. - Run the documented
ultrafuzz resume <run-id> --retry-failedcommand without resetting the node. - Observe that
initializeDurableNodeWorkspacetakes the existing-workspace branch but still runs:- unsealed closure verification;
- the recursive seal/chmod walk;
- sealed closure verification;
before it appends the resumedpreparedcheckpoint.
Stable-file verification reads every file twice. In a live generic reproduction, the resumed worker spent nearly the complete 1,800-second callback window in this pre-resume phase, appended prepared/running only near the deadline, and started no inner model process.
Expected behavior
For an existing same-generation durable workspace, verify the already sealed closure once with sealed-permission enforcement. Preserve the full verify/seal/verify sequence for a freshly extracted workspace. A snapshot file modified between attempts must continue to fail closed.
Suggested regression checks
- Reinitializing the same durable workspace does not call the recursive sealing/chmod walk again.
- Resume still rejects a sealed module modified between attempts.
- Fresh initialization still performs the existing seal sequence.
Release: v0.1.0 / 9b0bc8cab2e681bbffeee385c1f80f85a47087d3.
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 initializeDurableNodeWorkspace and trace the existing-workspace and freshly extracted workspace branches using the documented ultrafuzz resume --retry-failed flow. Add regression coverage for avoiding repeated sealing on same-generation resumes, rejecting a modified sealed module, and preserving the fresh-initialization sequence.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, cloud, performance, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100