Repository navigation
OPS-SAT run 3, version 2: each replica in a process of its own (v0.7.0) - #38
Merged
Merged
Conversation
MruQuorum, the manager process, starts three MruReplica processes, one ReplicaHost each, linked through F´'s GenericHub over SOCK_SEQPACKET Unix socket pairs (no network, no framing), and pins replica 0 to core 0 and replicas 1 and 2 to core 1. The kill is real: RunRecorder calls the deployment at the start of each cycle and the manager sends SIGKILL to replica 0's process at cycle 240. SeqPacketDriver turns off reopening and ends its reconnect thread once open. The payload is its own module. Requirements MRU-DEP-005 to 007, MRU-RR-006; CI runs version 2; the release adds its ARM build. Full length in ESA's image: 148 s, the same counts and events as version 1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Will's decision of 22 Oct 2026 (finance run3-plan.md, section 9): make run 3 the most representative setup within the OPS-SAT rules. Version 1 (the v0.6.0 package, replicas as threads) stays as the fallback.
What runs.
MruQuorum, the manager process (RedundancyManager, HealthRegistry, FaultInjector, RunRecorder, F´'s CdhCore services, sequencer, Linux timer), starts threeMruReplicaprocesses, each one ReplicaHost behind F´'s GenericHub. The links areSOCK_SEQPACKETUnix socket pairs made by the manager and handed to each replica at start: message boundaries are kept, so the hub needs no framing, and there is no network. Replica 0 pins itself to core 0, replicas 1 and 2 to core 1.Real faults. The stuck value and the bit flip stay in FaultInjector; the kill is a real SIGKILL of replica 0's process at the start of cycle 240, sent by the manager process from a new RunRecorder cycle hook (MRU-RR-006). The summary reports how each replica process ended and the CPU share of all four processes.
New.
SeqPacketDriver(F´'s TcpClient shape over an inherited descriptor; after it opens it turns off reopening and ends its reconnect thread, so a send to a dead replica fails at once),MruQuorum,MruReplica,Mru/Payload,opssat/fprime2/. A workaround for an F´ v4.4.1 autocoder gap (serial-to-typed hub calls name the port serializer without its module).Evidence.
VERSION=2 scripts/fprime-deployment.sh(new CI step): counts against the demo, events on their cycles, the restore, a second run in the same folder, three replica processes pinned, replica 0 killed by SIGKILL at cycle 240, the others ended cleanly. Version 1's check unchanged.