Repository navigation
Conversation
Adapt upstream queue admission to preserve recycled inline/heap jobs, worker data and batch errors. Wait for blocked producers during shutdown so their synchronization objects remain alive. (cherry picked from commit 8fc71e3006f0b21e8e31d6e5d1b904332149ad9e)
Preserve full-report metadata and unmeasured debt during guarded scoped writes. Reject incomplete coverage, failed measurements, regressions and output aliases; serialize full and scoped writers and replace validated output atomically. Lower the measured thread-pool allowance from 15 warnings to zero.
This was referenced Sep 8, 2026
Contributor
Author
|
Superseded by the pre-rc.1 fixing train in #1425, which carries this work. Closing rather than leaving it open, because the ADR Collision Guard — a required check — fails #1425 while two open PRs claim the same ADR number. The guard is right that they collide; it cannot tell that one of them contains the other. Verified before closing, not assumed: every ADR file this branch adds is byte-identical in #1425 (sha256 compared), and the branch's commits were replayed onto the train individually, with each conflict resolved by hand and recorded in the commit messages. The branch is untouched, so this is reversible — reopen if #1425 is abandoned. |
7 of 13 tasks
lusoris
added a commit
that referenced
this pull request
Oct 8, 2026
…9cb9479f2 The fork's records of its Netflix/vmaf pull requests and of the upstream defects it tracks were last checked on 2026-10-01. Upstream master has moved to 9cb9479f2 since, with the MSVC series, the arm64 ADM kernels, the fused SpEED filter and a rewrite of integer_compute_adm(). This brings the records up to date. No fork code and no score changes. - known-upstream-bugs.md: 42 open pull requests instead of 15, which of them needed a rebase or a rework against 9cb9479f2, the #1494 and best15 status, the integer AIM change upstream (cffd5b77d), the arm64 gap in #1602, and what is new upstream since the parity pin. The pin heading is unchanged. - state.md: dated updates on the rows for #1422, #1551 (both halves), #1602, #1605, #1635, #1636 and #955. - upstream_parity.d: the APSNR zero-error row also names #1618, which changes the same cap upstream; the allowlist page is regenerated. - rebase-notes.d: what a port of upstream's arm64 ADM code (8bc5a5c6a, b41d2340a) must not copy, and the closed state of #1551. Signed-off-by: Lusoris <lusoris@proton.me>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bound pending thread-pool jobs by the number of successfully created workers so input faster than scoring cannot grow the pending picture queue without limit. Adapt Netflix/vmaf commit
8fc71e3006f0b21e8e31d6e5d1b904332149ad9eto preserve VMAFx inline/heap job recycling, per-worker data and batch error accumulation; keep registered capacity waiters alive during coordinated shutdown.Add a guarded scoped lint-baseline writer under ADR-1243. Its actual LLVM 22.1.8 measurement tightens
thread_pool.cfrom 15 warnings to zero (CPU total 1472 → 1457), preserves every unmeasured source/header allowance and retains the original 292-TU full-report metadata with explicit scoped provenance.Type
fix— bug fixbuild/ci— tooling / infraport— adapted upstream Netflix/vmaf fix with fork-specific lifetime/test changesValidation
On head
bbf349e04, based on master78c9d2bfc:Checklist
make lintandmake testgreen locally: not yet established; keep draft and held.meson test -C build: not run; the two relevant executables passed.assertAlmostEqual(...)score was modified.Bug-status hygiene
docs/state.mdrecordsT-THREAD-POOL-UNBOUNDED-QUEUE-2026-09-08with the bounded validation scope.Deep-dive deliverables
docs/research/2041-thread-pool-backpressure.mdlinks upstream evidence, fork couplings and the reproduced shutdown race.AGENTS.mdinvariant note —core/AGENTS.mdandscripts/ci/AGENTS.mdpreserve lifetime, ownership and ratchet contracts.changelog.d/fixed/thread-pool-bounded-queue.mdandchangelog.d/added/tidy-scoped-baseline-tightening.md.docs/rebase-notes.md.Reproducer
The test build injects pthread failures and scheduling barriers in its own executable. It verifies actual-worker queue capacity, dequeue wakeups, coordinated capacity-waiter cancellation, concurrent inline/heap payload recycling, error reset and initialization unwind.
Known follow-ups and limits