Skip to content

[DOM] Clean up Fragment listeners on signal abort - #37457

Merged
eps1lon merged 4 commits into
react:mainfrom
chirokas:fragment-refs/events-with-signal-2026-08-30
Sep 1, 2026
Merged

eps1lon merged 4 commits into
react:mainfrom
chirokas:fragment-refs/events-with-signal-2026-08-30

Conversation

@chirokas

@chirokas chirokas commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes #37450
Fixes #37449

Listeners registered with options.signal are supposed to be removed when the signal is aborted.

Since FragmentInstance does not clean up its tracked listeners on abort, previously removed listeners cannot be re-attached.

How did you test this change?

  • added tests characterizing the bug in the first commit

@meta-cla meta-cla Bot added the CLA Signed label Aug 30, 2026
@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown

Comparing: 065bc84...2ff47b7

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 = 7.35 kB 7.35 kB -0.05% 1.96 kB 1.96 kB
oss-stable/react-dom/cjs/react-dom-client.production.js +0.11% 624.62 kB 625.29 kB +0.14% 110.38 kB 110.54 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 7.36 kB 7.36 kB -0.05% 1.97 kB 1.96 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js +0.10% 695.84 kB 696.51 kB +0.13% 121.81 kB 121.97 kB
facebook-www/ReactDOM-prod.classic.js +0.09% 715.69 kB 716.36 kB +0.12% 125.24 kB 125.38 kB
facebook-www/ReactDOM-prod.modern.js +0.10% 706.00 kB 706.67 kB +0.12% 123.67 kB 123.81 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by sizebot against 2ff47b7

@chirokas
chirokas force-pushed the fragment-refs/events-with-signal-2026-08-30 branch from c267804 to 056bc82 Compare August 30, 2026 09:01
@chirokas
chirokas marked this pull request as ready for review August 30, 2026 09:05
@chirokas

Copy link
Copy Markdown
Contributor Author

@eps1lon @jackpope

eps1lon

This comment was marked as resolved.

@chirokas
chirokas force-pushed the fragment-refs/events-with-signal-2026-08-30 branch from 616d719 to 0f1ed59 Compare August 31, 2026 12:23
eps1lon

This comment was marked as resolved.

@chirokas
chirokas force-pushed the fragment-refs/events-with-signal-2026-08-30 branch from 0f1ed59 to a062186 Compare August 31, 2026 15:59
@chirokas
chirokas force-pushed the fragment-refs/events-with-signal-2026-08-30 branch from a062186 to 2ff47b7 Compare September 1, 2026 12:45

@eps1lon eps1lon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thank you!

@eps1lon
eps1lon merged commit 21c89c9 into react:main Sep 1, 2026
239 checks passed
github-actions Bot pushed a commit that referenced this pull request Sep 1, 2026
Listeners registered with `options.signal` are supposed to be removed
when the signal is aborted.

Since `FragmentInstance` does not clean up its tracked listeners on
abort, previously removed listeners cannot be re-attached.

DiffTrain build for [21c89c9](21c89c9)
github-actions Bot pushed a commit that referenced this pull request Sep 1, 2026
Listeners registered with `options.signal` are supposed to be removed
when the signal is aborted.

Since `FragmentInstance` does not clean up its tracked listeners on
abort, previously removed listeners cannot be re-attached.

DiffTrain build for [21c89c9](21c89c9)
@chirokas
chirokas deleted the fragment-refs/events-with-signal-2026-08-30 branch September 1, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fragment event listeners cannot be re-added after signal abort

2 participants