Skip to content

v0.19.2: a silent cross-request KV corruption, and launch-error checks at every kernel site

Choose a tag to compare

@kekzl kekzl released this 17 Jul 12:05
· 702 commits to main since this release
7ddbb2c

Hardening release. Decode measured neutral at every step (Qwen3-Coder-30B NVFP4 spec-OFF tg256 = 402.6 tok/s, all A/Bs logged in docs/audit/PERF_LOG.md).

Fixed

  • KV prefix-cache block double-ownership after rollback (PR 1044): stale prefix-hash entries on freed blocks let a later same-prefix allocation inc_ref a free-listed block — the free count exceeded the pool and requests could silently share corrupted KV. Reachable in production via KV-pool pressure during prefix-cache allocation followed by a same-prefix retry (prefix caching is default-on). Both rollback paths now drop hash entries when a free reaches ref 0; the reuse path treats a stale hit as a loud miss. Found by the new 200-cycle LeakUnderSustainedChurn regression test.
  • Sticky CUDA error after the expected graph exec-update fallback (PR 1048) — no more teardown WARN noise.
  • Last two compiler warnings — full rebuild is now 0 warnings under -Wall -Wextra -Wpedantic.

Added

  • Post-launch CUDA error checks at 399 kernel-launch sites (PR 1044): IMP_CUDA_CHECK_LAUNCH() surfaces launch-config failures at file:line (peek-based — downstream error propagation unchanged). Coverage ~1% → 100% of launch sites in src/.
  • RAII owners for CUDA graph handles (PR 1045): CudaGraph/CudaGraphExec move-only wrappers; error/throw paths structurally leak-safe, semantics 1:1.
  • cache_control per-breakpoint pin boundary (PR 1049): the last marked system/message block bounds the prompt-KV pin instead of pinning the whole prompt — less pin-budget pressure in multi-turn agent loops. Tools marker keeps the whole-prompt pin; TTL tiers accepted but not modeled. 7 new contract tests.
  • make asan (PR 1049): reproducible host-code ASan+UBSan gate, WSL2-capable; suppressions for vendored-stb unaligned stores and driver one-time allocations. Baseline: 0 imp-code findings.

Campaign audit trail: docs/audit/DISPATCH_BASELINE_2026_07_17.md (measured baseline + claim-verification matrix) and docs/audit/PERF_LOG.md.

Full changelog: https://github.com/kekzl/imp/blob/main/CHANGELOG.md