Skip to content

test: make Brotli 16GB test wait for backpressure#63389

Open
trivikr wants to merge 1 commit into
nodejs:mainfrom
trivikr:flaky-test-zlib-brotli-16GB
Open

test: make Brotli 16GB test wait for backpressure#63389
trivikr wants to merge 1 commit into
nodejs:mainfrom
trivikr:flaky-test-zlib-brotli-16GB

Conversation

@trivikr
Copy link
Copy Markdown
Member

@trivikr trivikr commented May 17, 2026

This updates parallel/test-zlib-brotli-16GB to wait until the Brotli
decoder reaches the expected readable-buffer backpressure point
before asserting the buffered chunk count.

The previous test used a fixed timeout and could check _readableState.buffer.length
before libuv worker-pool processing had pushed any output, causing intermittent
failures like 0 !== 4 on loaded CI machines.

Refs: https://github.com/nodejs/reliability/blob/main/reports/2026-05-17.md#jstest-failure


Assisted-by: openai:gpt-5.5

Wait for the Brotli decoder to fill its readable buffer before checking
that decompression stops at the high water mark. This avoids racing the
fixed timeout against libuv worker-pool scheduling.

Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com>
Assisted-by: openai:gpt-5.5
@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. test Issues and PRs related to the tests. labels May 17, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.05%. Comparing base (a9b0a83) to head (a6f7f6e).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #63389      +/-   ##
==========================================
- Coverage   90.06%   90.05%   -0.01%     
==========================================
  Files         714      714              
  Lines      225629   225648      +19     
  Branches    42702    42694       -8     
==========================================
+ Hits       203211   203218       +7     
+ Misses      14232    14218      -14     
- Partials     8186     8212      +26     

see 59 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.

@trivikr trivikr added the request-ci Add this label to start a Jenkins CI on a PR. label May 17, 2026
Comment on lines +20 to +23
const timeout = setTimeout(() => {
assert.fail(`Timed out waiting for Brotli output. ` +
`Buffered ${decoder._readableState.buffer.length} chunks.`);
}, common.platformTimeout(5000));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const timeout = setTimeout(() => {
assert.fail(`Timed out waiting for Brotli output. ` +
`Buffered ${decoder._readableState.buffer.length} chunks.`);
}, common.platformTimeout(5000));

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

Labels

needs-ci PRs that need a full CI run. request-ci Add this label to start a Jenkins CI on a PR. test Issues and PRs related to the tests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants