Skip to content

In-process task runner: spawning a new child cuts the running child's transport (transport_gone within 1-2s) #1923

Description

@code-yeongyu

Summary

On the in-process task runner (a session running omo directly, not through the shared RPC daemon host), spawning a new child task terminates the child that is already running: the running child reports transport_gone 1-2 seconds after the new spawn. Children running on a shared daemon host coexist normally.

Reproduction

Observed 3/3 on a long-lived session (engine 0.0.0-omob.8fd4c01.cd317ee, ~5h uptime, in-process runner):

new spawn running child dies
08:36:24 08:36:26
08:48:15 08:48:16
08:52:16 08:52:17

Same session, same day: children that had been placed on the shared daemon host (omo --mode rpc --multi-session) were not affected by later spawns.

Expected

Spawning a second child on the in-process runner leaves the first child running; both complete independently.

Actual

The first child's transport is torn down when the second is admitted. The parent records the first as lost; work in its worktree is orphaned.

Evidence

Evidence held locally (session ledger + notepad on a dev machine). Related but distinct from #8579 (oh-my-openagent: duplicate child sessions after a lost admission reply) and from #1905 (host stall -> peer cut): here the host is not stalled and the parent itself triggers the cut by spawning.

Scope / acceptance

  • RED: in-process runner test that spawns child A, waits until it is running, spawns child B, asserts A is still running and completes.
  • GREEN: both children complete; no transport_gone on A.
  • Verify on the shared-host path as a regression guard (should already pass).

Workaround in use: limit the in-process runner to one concurrent child.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions