Skip to content

Conversation

@sebmarkbage
Copy link
Collaborator

@sebmarkbage sebmarkbage commented Jul 5, 2025

This delays the abort by splitting the abort into a first step that just flags a task as abort and tracks the time that we aborted. This first step also invokes the cacheSignal() abort handler.

Then in a macrotask do we finish flushing the abort (or halt). This ensures that any microtasks after the abort signal can finish flushing which may emit rejections or fulfill (e.g. if you try/catch the abort or if it was allSettled). These rejections are themselves signals for which promise was blocked on what promise which forms a graph that we can use for debug info. Notably this doesn't include any additional data in the output since we don't include any data produced after the abort. It just uses the additional execution to collect more debug info.

The abort itself might not have been spawned from I/O but it's still interesting to mark Promises that aborted as interesting since they may have been blocked on I/O. So we take the inner most Promise that resolved after the end time (presumably due to the abort signal but also could've just finished after but that's still after the abort).

Since the microtasks can spawn new Promises after the ones that reject we ignore any of those that started after the abort.

This allows the rejections to collect debug informations as they unwind the stack by throwing.
We only end up using one. There could be more than one halted I/O but
really the server should have filtered out to only relevant ones.
Otherwise outer Promises that also span the abort will also be emitted as
causes but we really only need the inner one that has a first party stack.
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Jul 5, 2025
@react-sizebot
Copy link

react-sizebot commented Jul 5, 2025

Comparing: 5d87cd2...98b425c

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.68 kB 6.68 kB = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 530.50 kB 530.50 kB = 93.66 kB 93.66 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 655.04 kB 655.04 kB = 115.35 kB 115.35 kB
facebook-www/ReactDOM-prod.classic.js = 675.12 kB 675.12 kB = 118.77 kB 118.77 kB
facebook-www/ReactDOM-prod.modern.js = 665.54 kB 665.54 kB = 117.13 kB 117.13 kB
oss-experimental/react-server/cjs/react-server-flight.production.js +2.48% 64.28 kB 65.87 kB +1.37% 12.81 kB 12.99 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-server/cjs/react-server-flight.production.js +2.48% 64.28 kB 65.87 kB +1.37% 12.81 kB 12.99 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js +1.73% 91.95 kB 93.54 kB +0.98% 18.99 kB 19.18 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.production.js +1.71% 93.24 kB 94.83 kB +1.06% 19.26 kB 19.46 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +1.66% 95.50 kB 97.09 kB +1.26% 19.74 kB 19.99 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +1.61% 98.95 kB 100.54 kB +1.15% 20.14 kB 20.37 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +1.60% 99.36 kB 100.95 kB +0.90% 20.30 kB 20.48 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.production.js +1.60% 99.42 kB 101.01 kB +0.97% 20.22 kB 20.42 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +1.59% 100.25 kB 101.85 kB +0.93% 20.49 kB 20.68 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +1.59% 100.32 kB 101.91 kB +0.95% 20.50 kB 20.70 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +1.51% 105.49 kB 107.08 kB +1.27% 21.18 kB 21.45 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +1.49% 106.50 kB 108.09 kB +0.95% 21.45 kB 21.65 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +1.49% 106.55 kB 108.14 kB +0.96% 21.46 kB 21.67 kB
oss-stable-semver/react-server/cjs/react-server-flight.production.js +1.47% 59.40 kB 60.27 kB +1.12% 11.96 kB 12.10 kB
oss-stable/react-server/cjs/react-server-flight.production.js +1.47% 59.40 kB 60.27 kB +1.12% 11.96 kB 12.10 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +1.26% 192.05 kB 194.46 kB +1.06% 35.53 kB 35.90 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +1.22% 198.02 kB 200.43 kB +1.12% 36.19 kB 36.59 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +1.18% 204.79 kB 207.20 kB +1.06% 37.29 kB 37.69 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +1.17% 205.94 kB 208.35 kB +1.09% 37.58 kB 37.99 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +1.17% 206.00 kB 208.41 kB +1.10% 37.59 kB 38.01 kB
oss-experimental/react-server/cjs/react-server-flight.development.js +1.16% 132.75 kB 134.29 kB +0.62% 24.20 kB 24.34 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.89% 173.28 kB 174.82 kB +0.58% 31.88 kB 32.07 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.87% 177.36 kB 178.90 kB +0.61% 32.42 kB 32.62 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js +0.86% 87.47 kB 88.22 kB +0.61% 18.25 kB 18.37 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js +0.86% 87.47 kB 88.22 kB +0.61% 18.25 kB 18.37 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.85% 181.05 kB 182.60 kB +0.57% 33.20 kB 33.39 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.85% 181.59 kB 183.14 kB +0.56% 33.34 kB 33.52 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.production.js +0.85% 88.67 kB 89.42 kB +0.61% 18.51 kB 18.62 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.production.js +0.85% 88.67 kB 89.42 kB +0.61% 18.51 kB 18.62 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.84% 185.17 kB 186.72 kB +0.53% 33.74 kB 33.92 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.84% 185.24 kB 186.78 kB +0.57% 33.75 kB 33.94 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +0.83% 91.06 kB 91.81 kB +0.59% 19.01 kB 19.13 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +0.83% 91.06 kB 91.81 kB +0.59% 19.01 kB 19.13 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +0.80% 94.46 kB 95.21 kB +0.62% 19.37 kB 19.49 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +0.80% 94.46 kB 95.21 kB +0.62% 19.37 kB 19.49 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +0.79% 94.88 kB 95.63 kB +0.62% 19.48 kB 19.60 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +0.79% 94.88 kB 95.63 kB +0.62% 19.48 kB 19.60 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.production.js +0.79% 94.98 kB 95.73 kB +0.59% 19.48 kB 19.59 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.production.js +0.79% 94.98 kB 95.73 kB +0.59% 19.48 kB 19.59 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +0.79% 95.68 kB 96.43 kB +0.67% 19.65 kB 19.78 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +0.79% 95.68 kB 96.43 kB +0.67% 19.65 kB 19.78 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +0.79% 95.74 kB 96.50 kB +0.67% 19.66 kB 19.80 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +0.79% 95.74 kB 96.50 kB +0.67% 19.66 kB 19.80 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +0.74% 101.05 kB 101.81 kB +0.59% 20.44 kB 20.56 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +0.74% 101.05 kB 101.81 kB +0.59% 20.44 kB 20.56 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +0.74% 102.06 kB 102.82 kB +0.55% 20.65 kB 20.76 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +0.74% 102.06 kB 102.82 kB +0.55% 20.65 kB 20.76 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +0.74% 102.11 kB 102.86 kB +0.56% 20.66 kB 20.77 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +0.74% 102.11 kB 102.86 kB +0.56% 20.66 kB 20.77 kB
oss-stable-semver/react-server/cjs/react-server-flight.development.js +0.68% 124.40 kB 125.24 kB +0.52% 22.62 kB 22.74 kB
oss-stable/react-server/cjs/react-server-flight.development.js +0.68% 124.40 kB 125.24 kB +0.52% 22.62 kB 22.74 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.51% 164.91 kB 165.76 kB +0.40% 30.34 kB 30.46 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.51% 164.91 kB 165.76 kB +0.40% 30.34 kB 30.46 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.50% 168.64 kB 169.49 kB +0.37% 30.89 kB 31.01 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.50% 168.64 kB 169.49 kB +0.37% 30.89 kB 31.01 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.50% 170.30 kB 171.14 kB +0.50% 31.37 kB 31.53 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.50% 170.30 kB 171.14 kB +0.50% 31.37 kB 31.53 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.49% 172.69 kB 173.53 kB +0.35% 31.67 kB 31.78 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.49% 172.69 kB 173.53 kB +0.35% 31.67 kB 31.78 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.49% 173.23 kB 174.08 kB +0.39% 31.79 kB 31.91 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.49% 173.23 kB 174.08 kB +0.39% 31.79 kB 31.91 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.48% 176.45 kB 177.30 kB +0.38% 32.23 kB 32.35 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.48% 176.45 kB 177.30 kB +0.38% 32.23 kB 32.35 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +0.48% 176.27 kB 177.11 kB +0.33% 32.06 kB 32.16 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +0.48% 176.27 kB 177.11 kB +0.33% 32.06 kB 32.16 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.48% 176.52 kB 177.37 kB +0.37% 32.24 kB 32.36 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.48% 176.52 kB 177.37 kB +0.37% 32.24 kB 32.36 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.46% 183.04 kB 183.88 kB +0.34% 33.09 kB 33.20 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.46% 183.04 kB 183.88 kB +0.34% 33.09 kB 33.20 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.46% 184.19 kB 185.03 kB +0.31% 33.37 kB 33.47 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.46% 184.19 kB 185.03 kB +0.31% 33.37 kB 33.47 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.46% 184.24 kB 185.09 kB +0.32% 33.38 kB 33.49 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.46% 184.24 kB 185.09 kB +0.32% 33.38 kB 33.49 kB
oss-experimental/react-markup/cjs/react-markup.react-server.production.js +0.40% 356.18 kB 357.59 kB +0.28% 66.02 kB 66.21 kB
oss-experimental/react-markup/cjs/react-markup.react-server.development.js +0.22% 636.93 kB 638.33 kB +0.16% 112.71 kB 112.90 kB

Generated by 🚫 dangerJS against 98b425c


if (__DEV__) {
expect(normalizeCodeLocInfo(ownerStack)).toBe(
'\n in getData (at **)' +
Copy link
Collaborator

Choose a reason for hiding this comment

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

😍

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.

4 participants