MarshallOfSound

#53065: build: fail PGO merge on corrupt profraw input

Merged
Created: Aug 21, 2026, 2:07:30 AM
Merged: Aug 21, 2026, 4:53:40 AM
4 comments
Target: main
  • llvm-profdata merge --failure-mode=all only fails when every input is unreadable. A truncated child_pool-*.profraw (a child killed while dumping its counters at shutdown) was skipped with a warning and the thin profile was uploaded and rolled out. That is how 42-x-y win-x64 shipped a profile with ~16% of its usual counts from 42.8.1 onward (microsoft/vscode#331672); main win-arm64's latest profile is partially hit the same way.
  • Switch to --failure-mode=any so a corrupt input fails the run and the branch keeps its previous state files until a clean collection lands.

Follow-up (separate PR): have the browser wait for children to dump their profiles at shutdown like Chrome's browser_shutdown.cc does, so the race stops happening in the first place.

Notes: none

Backports

42-x-y
Merged
PR Number
#53074
Merged At
Aug 21, 2026, 6:00:58 AM
Released In
Not yet
Release Date
Not yet
43-x-y
Merged
PR Number
#53073
Merged At
Aug 21, 2026, 6:00:49 AM
Released In
Not yet
Release Date
Not yet
44-x-y
Merged
PR Number
#53072
Merged At
Aug 21, 2026, 6:00:42 AM
Released In
Not yet
Release Date
Not yet

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron