Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Flight / Flight Reply] Don't clear pending listeners when entering blocked state #29201

Merged
merged 2 commits into from
May 21, 2024

Conversation

sebmarkbage
Copy link
Collaborator

Fixes #29200

The cyclic state might have added listeners that will still need to be invoked. This happens if we have a cyclic reference AND end up blocked.

We have already cleared these before entering the parsing when we enter the CYCLIC state so we they already have the right type. If listeners are added during this phase they should carry over to the blocked state.

unstubbable and others added 2 commits May 21, 2024 18:59
Triggered by vercel/next.js#66033

I was suspecting that the bug was introduced with facebook#28996, but I could not make the test succeed on a commit before that PR, so maybe this assumption is wrong.
The cyclic state might have added listeners that will still need to be invoked.
Copy link

vercel bot commented May 21, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-compiler-playground ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 21, 2024 5:58pm

@facebook-github-bot facebook-github-bot added the React Core Team Opened by a member of the React Core Team label May 21, 2024
@react-sizebot
Copy link

Comparing: 5cc9f69...e56dc0b

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.66 kB 6.66 kB = 1.82 kB 1.82 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 495.71 kB 495.71 kB = 88.79 kB 88.78 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.67 kB 6.67 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 500.51 kB 500.51 kB = 89.47 kB 89.47 kB
facebook-www/ReactDOM-prod.classic.js = 592.86 kB 592.86 kB = 104.28 kB 104.28 kB
facebook-www/ReactDOM-prod.modern.js = 569.08 kB 569.08 kB = 100.69 kB 100.69 kB
test_utils/ReactAllWarnings.js Deleted 64.35 kB 0.00 kB Deleted 16.05 kB 0.00 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
test_utils/ReactAllWarnings.js Deleted 64.35 kB 0.00 kB Deleted 16.05 kB 0.00 kB

Generated by 🚫 dangerJS against e56dc0b

@sebmarkbage sebmarkbage merged commit 8f3c052 into facebook:main May 21, 2024
40 checks passed
gnoff pushed a commit that referenced this pull request May 21, 2024
…ialized' (#29204)

Follow up to #29201. If a chunk
had listeners attached already (e.g. because `.then` was called on the
chunk returned from `createFromReadableStream`),
`wakeChunkIfInitialized` would overwrite any listeners added during
chunk initialization. This caused cyclic [path
references](#28996) within that
chunk to never resolve. Fixed by merging the two arrays of listeners.
gnoff added a commit to gnoff/react that referenced this pull request May 21, 2024
…isteners

In facebook#29201 a fix was made to ensure we don't "forget" about some listeners when handling cyclic chunks.
In facebook#29204 another fix was made for a special case when the chunk already has listeners before it first resolves.

This implements the followup fix for Flight Reply which was originally missed in facebook#29204

Co-Authored-by: Janka Uryga <lolzatu2@gmail.com>
gnoff added a commit that referenced this pull request May 21, 2024
…isteners (#29207)

In #29201 a fix was made to ensure we don't "forget" about some
listeners when handling cyclic chunks.
In #29204 another fix was made for a special case when the chunk already
has listeners before it first resolves.

This implements the followup fix for Flight Reply which was originally
missed in #29204

Co-authored-by: Janka Uryga <lolzatu2@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants