molina/record/nats-partition.md

docs

NATS partition replay

NATS, a message broker, partitioned in virtual time and run again on one seed

Summary

A NATS server and client, with a partition in virtual time, were run in exact mode and replayed 3 times, and the files compared were byte for byte identical in 3 of 3 replays. With another replay code 0 of 5 files matched, so the replay code decides what a world writes. I made this run by hand from a build the repository cannot reproduce.

The full experimental record

What I ran

A NATS server and a client (two services) were run in exact mode on a round switch with a partition in virtual time, on seed 7, for 5 s of virtual time. The switch numbered 102 frames and the partition cut 9 of them.

The run's findings included a failed check, property-unreported, for the client's property that every published message is delivered. The saved output says the property was declared and no line evaluated it.

The run was replayed three times. In 3 of 3 replays the five files compared (the console of each service, its timing file and the switch log) were byte for byte identical to the run's, and 3 of 3 had the same findings, compared by kind, place and severity.

What it shows

MIGHT. In 3 of 3 runs of the NATS pair with a partition in virtual time, replayed in exact mode on one seed, the world wrote the same files as the run.

What it does not show

The output names a build of a clone with uncommitted work in it, and the binary was a Debug build, so the run cannot be made again from a commit the repository holds.

That exact replay holds for other software, other faults, other seeds or another machine: one pair of services, one partition file and one seed were run, on one machine.

The saved output leaves out the per-world host witness lines, so it does not show whether the worlds were alone on their cores.

That a message was lost. The failed check says the property was declared and no line evaluated it.

Conditions

The run and its replays were made by hand, with no ledger row, on one machine and one build, in screening mode: the worlds were booted and not restored from a snapshot. The replays booted their worlds with the TSC hidden, as the run recorded.

Where it comes from

evidence/molina-runs-replay-exact-nats-partition-seed-7-three-replays-byte-identical-and-seed-8-contrast-research-not-a-ledger-row.out

This page is the short form of the record. The finding and its limits come first, and I left out what did not fit.

:SageTech --ready