Skip to content

test(dst): restore 3 clock-skew scenarios lost in a rebase (fixes latent swarm gap-guard false-fail) - #110

Merged
gburd merged 1 commit into
masterfrom
dst/clockskew-scenarios-recover
Jul 30, 2026
Merged

test(dst): restore 3 clock-skew scenarios lost in a rebase (fixes latent swarm gap-guard false-fail)#110
gburd merged 1 commit into
masterfrom
dst/clockskew-scenarios-recover

Conversation

@gburd

@gburd gburd commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Process fix. The clock-skew fault mechanism (sim_clock.h, the os_clock.c __os_gettime hook, the DB_SIM_FC_CLOCK counter) landed via #107 — but the 3 scenarios that exercise it and a test_sim_swarm.c gap-guard skip were dropped when #107's branch was rebased (the scenario commit 9c93b7d35 was lost during a Makefile.in conflict resolution). This restores them verbatim from the original commit.

Restored

  • test_sim_clockskew_timeout — lock/txn timeout fires under offset+jitter+forward+backward jumps; no hang.
  • test_sim_clockskew_ckp — checkpoints + recovery clean under a +1h forward jump.
  • test_sim_clockskew_backward — a transient backward jump loses no already-set txn deadline.
  • test_sim_swarm.c — skip DB_SIM_FC_CLOCK in the ≥64-seed coverage-gap guard.

Also fixes a latent bug on master

Without the swarm skip, the I/O swarm (which arms only disk-fault knobs, never the clock) would false-fail its own gap guard at ≥64 seeds because DB_SIM_FC_CLOCK never activates there. The clock class is driven by the dedicated scenarios, not the swarm.

Verified: DST build clean; 3/3 scenarios PASS; 64-seed swarm OK (0 violations, no false gap-fail).

The clock-skew fault MECHANISM (sim_clock.h + the os_clock.c __os_gettime hook +
the DB_SIM_FC_CLOCK counter) landed via #107, but the 3 scenarios that exercise
it -- test_sim_clockskew_{timeout,ckp,backward} -- plus the test_sim_swarm.c
gap-guard skip for the clock class were dropped when #107's branch was rebased
(the scenario commit was lost during a Makefile.in conflict resolution).

Recovered verbatim from the original commit (9c93b7d):
- 3 scenarios: lock/txn timeout fires under skew+jitter+jumps; checkpoints clean
  under a +1h forward jump; a transient BACKWARD jump loses no txn deadline.
- test_sim_swarm.c: skip DB_SIM_FC_CLOCK in the >=64-seed coverage-gap guard --
  the clock class is driven by the dedicated scenarios, not the I/O swarm, so
  without this skip the swarm FALSE-FAILS its own gap guard at >=64 seeds (a
  latent bug this restore also fixes).
- dist/Makefile.in: the 3 build targets + dst_tests entries.

Verified: DST build clean; 3/3 scenarios PASS; 64-seed swarm OK (0 violations, no
false gap-fail on the clock class).
@gburd
gburd merged commit 5c65e61 into master Jul 30, 2026
47 of 49 checks passed
@gburd
gburd deleted the dst/clockskew-scenarios-recover branch July 30, 2026 22:20
@github-actions

Copy link
Copy Markdown

Coccinelle convention checks

No new violations. ✅

Resolved since baseline (2) -- update dist/cocci/baseline.txt to lock these in.
rule_mutex_unbalanced|MUTEX_UNBALANCED|src/crypto/mersenne/mt19937db.c|return (ret);
rule_mutex_unbalanced|MUTEX_UNBALANCED|src/mp/mp_register.c|return (ret);

@github-actions

Copy link
Copy Markdown

ABI diff vs v5.3.32 (libabigail — authoritative)

Removed exported symbols (nm -D, _NNNN version suffix normalized)

None.


Advisory: libabigail/nm is the authoritative binary-ABI check; Coccinelle is complementary source-level early warning. See dist/cocci/README.md.

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