NotASithLord / NotASithLord/peerd

Async actor result can be lost after parent re-entry fails

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

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
410
Forks
45
Avg merge
11d 5h
Merged PRs (30d)
1

Description

A finished spawned actor is marked as reintegrated before the parent synthetic turn starts. If parent re-entry rejects, the queue swallows the error. Every later drain skips the result, so it is lost for the rest of that service-worker lifetime.

A simple flag rollback is not sufficient. Re-entry can reject after the synthetic message reaches the transcript. A retry can then append the same actor reply twice.

Required behavior:

  • Keep one stable delivery identity for the actor-result batch.
  • Claim one delivery attempt at a time.
  • Mark delivery complete only after durable transcript acceptance.
  • Retry with the same identity after an ambiguous failure.
  • Deduplicate the transcript append by that identity.
  • Recheck the parent Stop generation before each retry.

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 by locating spawned-actor reintegration, the parent synthetic turn, queue draining, transcript acceptance, and Stop-generation checks. Trace how the actor-result batch is marked complete and retried; done means one stable identity is claimed per attempt, durable acceptance completes delivery, ambiguous failures retry without duplicate transcript entries, and Stop generation is rechecked.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
distributed-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.