Skip to content

test(coverage): lock config + region growth + varint codec (lock_alloc 0->82%, db_compint 0->16%) - #88

Merged
gburd merged 1 commit into
masterfrom
coverage/compint-lock-final
Jul 29, 2026
Merged

test(coverage): lock config + region growth + varint codec (lock_alloc 0->82%, db_compint 0->16%)#88
gburd merged 1 commit into
masterfrom
coverage/compint-lock-final

Conversation

@gburd

@gburd gburd commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator
file line before → after branch before → after
lock/lock_alloc.incl 0% → 81.8% 0% → 50.0%
common/db_compint.c 0% → 15.7% 0% → 19.3%
lock/lock_method.c 55.8% → 58.0% 28.0% → 28.4%

Tests

  • lock007.tcl — every DB_ENV lock config setter/getter + a 200-locker × 40-object workload that grows the lock region (drives lock_alloc.incl).
  • test143.tcl — a -compress btree spanning the codec's 1/2/3-byte size classes; point-get + full cursor scan (drives the varint codec).

Registered in testparams.tcl + wired into COV_TESTS (verified present after conflict resolution). No engine code, no bugs.

db_compint ceiling: btree compression only marshals 32-bit lengths, so the 64-bit codec + 4-9 byte size classes are covered by test/pbt/pbt_compint.c (separate PBT tier). tcl-reachable ceiling ≈ 24%.

… (varint codec)

lock007 exercises every DB_ENV lock-subsystem config setter/getter
(set_lk_max_locks/lockers/objects, set_lk_partitions, set_lk_tablesize,
the DB_MEM_LOCK/LOCKER/LOCKOBJECT init counts, and set_lk_detect for all
nine deadlock-detection policies), then runs a many-locker workload
(200 lockers x 40 distinct objects) that exhausts the initial lock-region
free lists and forces the region-growth loop in lock/lock_alloc.incl.

test143 stores records into a -compress btree whose data sizes span the
compressed-integer codec's 1/2/3-byte size classes and reads them back,
driving __db_compress_int / __db_decompress_int32 in common/db_compint.c.

Register both in testparams.tcl (lock, test groups).
@gburd
gburd merged commit 12d8a0d into master Jul 29, 2026
45 of 47 checks passed
@gburd
gburd deleted the coverage/compint-lock-final branch July 29, 2026 19:37
@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.31 (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