Skip to content

quic: Fix wake up blob - #64044

Open
martenrichter wants to merge 7 commits into
nodejs:mainfrom
martenrichter:wakeupfix
Open

quic: Fix wake up blob#64044
martenrichter wants to merge 7 commits into
nodejs:mainfrom
martenrichter:wakeupfix

Conversation

@martenrichter

Copy link
Copy Markdown
Contributor

The quic implementation calls setWakeUp of Blob with the assumption that it is only executed once per event loop cycle.
This assumption is wrong.
Only setImmediate will guarantee that the
execution is delayed to later in the event loop
and happening once in the event loop.

Fixes: #64035

@nodejs-github-botnodejs-github-bot added the needs-ci PRs that need a full CI run. label Jun 21, 2026
@martenrichter

Copy link
Copy Markdown
ContributorAuthor

@jasnell@pimterry : The issue came up in a call of createBlobReaderIterable.
For the second path, I am not sure if other changes may be more appropriate.

Comment threadlib/internal/blob.js Outdated
Comment threadlib/internal/blob.js Outdated
@martenrichter

Copy link
Copy Markdown
ContributorAuthor

I have just rebased it.

@codecov

codecovBot commented Jul 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 6.66667% with 14 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.13%. Comparing base (9024119) to head (4657936).
⚠️ Report is 14 commits behind head on main.

Files with missing linesPatch %Lines
lib/internal/blob.js6.66%14 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #64044 +/- ##
==========================================
- Coverage 90.15% 90.13% -0.02% 
==========================================
Files 743 744 +1 Lines 242407 242529 +122 Branches 45645 45691 +46 ==========================================
+ Hits 218532 218611 +79 - Misses 15357 15402 +45 + Partials 8518 8516 -2 
Files with missing linesCoverage Δ
lib/internal/blob.js88.51% <6.66%> (-1.35%)⬇️

... and 38 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

martenrichterand others added 6 commits July 26, 2026 22:19
The quic implementation calls setWakeUp with
the assumption, that it is only executed once
per event loop cycle.
This assumption is wrong.
Only setImmediate will guarantee, that the
execution is delayed to later in the event loop
and happening once in the event loop.
Fixes: nodejs#64035
Signed-off-by: Marten Richter <marten.richter@freenet.de>
Co-authored-by: James M Snell <jasnell@gmail.com>
Co-authored-by: James M Snell <jasnell@gmail.com>
@martenrichter

Copy link
Copy Markdown
ContributorAuthor

I have just added something, which is only relevant, if the fin is relevant, see:
#64767

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ciPRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

quic: Accumulation buffer is not filled, if small packets arrive

4 participants

@martenrichter@jasnell@efekrskl@nodejs-github-bot