Skip to content

fix: scope sanitizer leaks and retain GPU diagnostics - #49

Merged
CaptSilver merged 2 commits into
CaptSilver:mainfrom
VenRoot:fix/preflight-sanitizer-scope
Nov 8, 2026
Merged

CaptSilver merged 2 commits into
CaptSilver:mainfrom
VenRoot:fix/preflight-sanitizer-scope

Conversation

@VenRoot

@VenRoot VenRoot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

What

Suppress verified Fontconfig configuration-loading shutdown state and isolate the real-GPU suite with visible, nonfatal LSan reports. ASAN/UBSAN errors and assertions remain fatal; other backend and SceneScript processes retain fatal leak detection.

Why

Related to #41. Contributions should catch first-party memory safety errors without requiring fixes to the external Fontconfig/NVIDIA/DBus stack. Broad library suppressions would hide ownership mistakes. On the tested runtime, LSan exitcode=0 also masks ASAN/UBSAN exit codes, so only the GPU process additionally uses abort_on_error=1 for both sanitizers.

Test plan

  • Complete default preflight validation is green — not claimed.
  • Fresh compatibility check against upstream 474dc8a: conflict-free merge; all three changed files remain unchanged upstream.
  • Focused runtime/wiring suite 18/18 passed again: visible nonfatal GPU leaks; fatal CPU/SceneScript leaks, CPU/GPU use-after-free, buffer overflow and UBSAN errors, GPU assertions and lost application-owned Fontconfig patterns.
  • Previous single combined QML/renderer integration: backend 4269, SceneScript 889, parent CTest 29; sanitized backend 4268 + 1 GPU, SceneScript 889; strict builds, both viewers and 9/9 fuzz smokes passed. GPU leaks remain visible (1698 B/5 allocations). No expensive full rerun for this unchanged-source compatibility audit.

Three separate statuses: default combined preflight exit 0 under its existing nonfatal mutation policy; no mutation coverage because of the Mull 0.31.1/LLVM 23 incompatibility and incomplete build; no pass marker. The isolated branch also retains known font-test blockers. Mull was not changed or upgraded.

Notes for reviewer

First-party heap leaks inside the GPU suite are also visible but nonfatal. ASAN/UBSAN and the dma-buf assertion remain fatal. Fontconfig suppression is limited to configuration parsing; it can hide parser allocations from a lost explicitly owned FcConfig, while ordinary pattern leaks remain detectable. No broad DBus/NVIDIA/first-party suppression; existing mpv/WebEngine exceptions unchanged.

Only three tooling files change; no renderer code, submodule-pointer update or visual behavior change. Both commits are included on this branch, with no dependency on unpublished commits outside it. Draft for review of the documented scope and remaining gate limitations.

@CaptSilver
CaptSilver marked this pull request as ready for review November 8, 2026 19:53
@CaptSilver
CaptSilver merged commit 2d625d1 into CaptSilver:main Nov 8, 2026
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.

2 participants