Skip to content

qkc/slave 07: add SlaveServer runtime and Python interop validation#41

Open
iteyelmp wants to merge 3 commits into
slave-06from
slave-07
Open

qkc/slave 07: add SlaveServer runtime and Python interop validation#41
iteyelmp wants to merge 3 commits into
slave-06from
slave-07

Conversation

@iteyelmp

Copy link
Copy Markdown

Final PR in the Slave migration series.

Adds the SlaveServer runtime that integrates MasterConn, PeerConn,
XshardConn, and XshardPool into a single lifecycle-managed process.

Also adds end-to-end Python interoperability validation using a real
pyquarkchain process over TCP, replacing fixture-only compatibility
tests.

Changes

SlaveServer Runtime

  • Add SlaveServer lifecycle management (Start/Stop)
  • Add accept loop and graceful shutdown handling
  • Wire MasterConn, PeerConn, XshardConn, and XshardPool
  • Add master-driven peer/xshard connection lifecycle

Python Interop Validation

  • Launch real pyquarkchain helper process
  • Exchange protocol messages over TCP
  • Validate:
    • Master → Slave ping/pong
    • Peer lifecycle
    • Xshard routing

Requires PYQUARKCHAIN pointing to a valid pyquarkchain checkout.

Cleanup

  • Remove obsolete fixture-only protocol tests
  • Remove unused pyproto helpers

Additional Fixes

  • Improve connection lifecycle cleanup
  • Replace timing-based tests with condition-based synchronization
  • Tighten interop environment validation

@iteyelmp
iteyelmp changed the base branch from goshard/base to slave-06 July 16, 2026 10:32
iteyelmp added 2 commits July 20, 2026 10:25
# Conflicts:
#	qkc/cluster/slave/compat_test.go
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