Skip to content

IPC rerouting tests - #29

Merged
johnnyshields merged 13 commits into
mainfrom
ipc-rerouting-tests
Nov 5, 2025
Merged

IPC rerouting tests#29
johnnyshields merged 13 commits into
mainfrom
ipc-rerouting-tests

Conversation

@johnnyshields

Copy link
Copy Markdown
Contributor

No description provided.

johnnyshields and others added 13 commits November 4, 2025 02:36
When IPC fork stages received EndOfStage, they never propagated it to
the output queue, causing downstream IPC stages to wait indefinitely.

This commit propagates EndOfStage immediately after sending :end_of_stage
to workers, preventing the deadlock. However, this creates a race condition
where EndOfStage may be signaled before all worker results are collected.

Works for:
- IPC processor -> IPC consumer (examples 92, reroute cases)
- COW fork stages (examples 93, 94)
- Mixed executors

Known issues:
- IPC processor -> IPC processor has race conditions (examples 74-76, 71, 88)
- EndOfStage bypasses workers instead of flowing through them
- Proper fix requires architectural changes to IPC completion detection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
● I see the issue. The jepsen tests are failing because they use real stages, and those stages don't have
  a task. Let me check that test file:

● Search(pattern: "let\(:stage\)|let\(:mock_pipeline\)|ConsumerStage\.new", path:
        "spec/unit/execution/fork_executors_jepsen_spec.rb", output_mode: "content")
  ⎿  Found 5 lines (ctrl+o to expand)
@johnnyshields
johnnyshields merged commit 27cedac into main Nov 5, 2025
7 of 36 checks passed
@johnnyshields
johnnyshields deleted the ipc-rerouting-tests branch November 5, 2025 03:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant