Spec runner fix for a replica-set CI flake after v0.17.2. Driver code is unchanged, just CI code.
v0.17.2 turned leftover failCommand off with directConnection. The third replica-set GitHub run then failed once: logging-replicaset.json Failing heartbeat, waitForEvent for serverHeartbeatFailedEvent got 0 in 10s. The client uses the default 10s heartbeat. Awaitable hello does not see failCommand until that wait ends, and waitForEvent is also 10s.
This release:
- After a hello handshake-error failPoint, aborts in-progress monitor hello on the matching appName client when that client observes
serverHeartbeatFailedEvent - Leaves backpressure tests alone (they freeze monitors on purpose)
- Does not copy that failPoint to every replica-set member
On this run, Failing heartbeat was 101ms (was ~10s).
GitHub Docker (CRYSTAL_WORKERS=2), 0 failures. Same example / pending counts as v0.17.2:
| Topology | Time | Examples | Pending |
|---|---|---|---|
| standalone | 1:54 | 754 | 14 |
| replica set | 4:42 | 879 | 15 |
| sharded | 6:51 | 868 | 15 |
| load-balanced | 4:23 | 822 | 15 |
Same time band as v0.17.1 / v0.17.2 (2:01 / 4:32 / 6:55 / 4:03).
Upgrade: applications on 0.17.2 do not need this release unless they run this repo's spec suite. Next work is Phase 3.14 (performance).