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

fix: Prevent crash when resuming class component inside SuspenseList #18432

Conversation

eps1lon
Copy link
Collaborator

@eps1lon eps1lon commented Mar 29, 2020

Summary

Test for #18429 (includes a fix but it's unclear if the semantics are correct)

Test Plan

Might be interesting add matchers for the case where one of the error boundaries is actually triggered. No longer concerned with error boundaries. They caused the crash originally but the bug could be reduced to basic class components.

@codesandbox-ci
Copy link

codesandbox-ci bot commented Mar 29, 2020

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 58f6c6a:

Sandbox Source
infallible-kalam-6i0s3 Configuration

@sizebot
Copy link

sizebot commented Mar 29, 2020

Details of bundled changes.

Comparing: 689d275...58f6c6a

react-test-renderer

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-test-renderer.development.js +0.1% +0.1% 574.38 KB 574.8 KB 119.56 KB 119.64 KB UMD_DEV
react-test-renderer.production.min.js 0.0% 🔺+0.1% 73.49 KB 73.51 KB 22.42 KB 22.44 KB UMD_PROD
react-test-renderer-shallow.development.js 0.0% 0.0% 38.4 KB 38.4 KB 9.3 KB 9.3 KB UMD_DEV
react-test-renderer-shallow.production.min.js 0.0% -0.1% 12.92 KB 12.92 KB 3.95 KB 3.94 KB UMD_PROD
react-test-renderer.development.js +0.1% +0.1% 547.53 KB 547.93 KB 118.13 KB 118.21 KB NODE_DEV
react-test-renderer.production.min.js 0.0% 🔺+0.1% 73.3 KB 73.33 KB 22.12 KB 22.13 KB NODE_PROD
ReactTestRenderer-dev.js +0.1% +0.1% 580.07 KB 580.51 KB 122.57 KB 122.66 KB FB_WWW_DEV

react-dom

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-dom-server.browser.development.js 0.0% -0.0% 134.74 KB 134.74 KB 34.47 KB 34.47 KB UMD_DEV
react-dom.profiling.min.js 0.0% 0.0% 126.65 KB 126.68 KB 39.64 KB 39.65 KB NODE_PROFILING
react-dom-unstable-fizz.browser.development.js 0.0% -0.1% 3.35 KB 3.35 KB 1.27 KB 1.27 KB UMD_DEV
ReactDOM-dev.js 0.0% 0.0% 962.83 KB 963.27 KB 214.16 KB 214.25 KB FB_WWW_DEV
react-dom-unstable-fizz.browser.production.min.js 0.0% -0.3% 1.19 KB 1.19 KB 701 B 699 B UMD_PROD
ReactDOM-prod.js 0.0% 0.0% 399.14 KB 399.25 KB 72.49 KB 72.52 KB FB_WWW_PROD
ReactDOM-profiling.js 0.0% 0.0% 416.8 KB 416.91 KB 75.5 KB 75.52 KB FB_WWW_PROFILING
react-dom-unstable-fizz.browser.development.js 0.0% -0.1% 2.95 KB 2.95 KB 1.18 KB 1.18 KB NODE_DEV
react-dom-unstable-fizz.browser.production.min.js 0.0% -0.3% 1 KB 1 KB 612 B 610 B NODE_PROD
react-dom-test-utils.development.js 0.0% -0.0% 59.24 KB 59.24 KB 15.65 KB 15.65 KB UMD_DEV
react-dom-test-utils.production.min.js 0.0% -0.0% 12.26 KB 12.26 KB 4.55 KB 4.55 KB UMD_PROD
ReactDOMTesting-dev.js 0.0% 0.0% 919.56 KB 920 KB 205.39 KB 205.49 KB FB_WWW_DEV
ReactDOMTesting-prod.js 0.0% 0.0% 393.32 KB 393.43 KB 71.77 KB 71.8 KB FB_WWW_PROD
react-dom-test-utils.development.js 0.0% -0.0% 54.7 KB 54.7 KB 15.04 KB 15.04 KB NODE_DEV
ReactDOMTesting-profiling.js 0.0% 0.0% 393.32 KB 393.43 KB 71.77 KB 71.8 KB FB_WWW_PROFILING
react-dom-test-utils.production.min.js 0.0% -0.0% 12.12 KB 12.12 KB 4.48 KB 4.48 KB NODE_PROD
react-dom-server.node.production.min.js 0.0% -0.0% 20.49 KB 20.49 KB 7.53 KB 7.52 KB NODE_PROD
react-dom-server.browser.production.min.js 0.0% -0.0% 20.08 KB 20.08 KB 7.38 KB 7.38 KB NODE_PROD
react-dom.development.js 0.0% 0.0% 939.07 KB 939.48 KB 205.21 KB 205.28 KB UMD_DEV
react-dom-unstable-native-dependencies.development.js 0.0% -0.0% 57.71 KB 57.71 KB 14.37 KB 14.37 KB UMD_DEV
react-dom.production.min.js 0.0% 0.0% 122.52 KB 122.55 KB 39.14 KB 39.15 KB UMD_PROD
ReactDOMForked-dev.js 0.0% 0.0% 962.83 KB 963.27 KB 214.16 KB 214.25 KB FB_WWW_DEV
react-dom-unstable-native-dependencies.production.min.js 0.0% -0.0% 10.32 KB 10.32 KB 3.5 KB 3.5 KB UMD_PROD
ReactDOMServer-dev.js 0.0% -0.0% 135.47 KB 135.47 KB 34.6 KB 34.6 KB FB_WWW_DEV
react-dom.profiling.min.js 0.0% 0.0% 126.35 KB 126.38 KB 40.43 KB 40.43 KB UMD_PROFILING
ReactDOMForked-prod.js 0.0% 0.0% 399.14 KB 399.25 KB 72.49 KB 72.52 KB FB_WWW_PROD
react-dom.development.js 0.0% 0.0% 894.09 KB 894.49 KB 202.71 KB 202.79 KB NODE_DEV
ReactDOMForked-profiling.js 0.0% 0.0% 416.8 KB 416.91 KB 75.5 KB 75.52 KB FB_WWW_PROFILING
react-dom-unstable-native-dependencies.development.js 0.0% -0.0% 54.72 KB 54.72 KB 14.15 KB 14.14 KB NODE_DEV
react-dom-unstable-fizz.node.development.js 0.0% -0.1% 3.69 KB 3.69 KB 1.34 KB 1.34 KB NODE_DEV
react-dom.production.min.js 0.0% 0.0% 122.67 KB 122.69 KB 38.36 KB 38.37 KB NODE_PROD
react-dom-unstable-native-dependencies.production.min.js 0.0% 0.0% 10.05 KB 10.05 KB 3.38 KB 3.38 KB NODE_PROD
react-dom-unstable-fizz.node.production.min.js 0.0% -0.2% 1.16 KB 1.16 KB 664 B 663 B NODE_PROD

react-art

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
ReactART-dev.js +0.1% +0.1% 579.34 KB 579.78 KB 121.66 KB 121.76 KB FB_WWW_DEV
ReactART-prod.js 🔺+0.1% 🔺+0.1% 234.2 KB 234.32 KB 39.83 KB 39.86 KB FB_WWW_PROD
react-art.development.js +0.1% +0.1% 657.51 KB 657.93 KB 137.98 KB 138.05 KB UMD_DEV
react-art.production.min.js 0.0% 🔺+0.1% 109.02 KB 109.05 KB 33.06 KB 33.08 KB UMD_PROD
react-art.development.js +0.1% +0.1% 560.76 KB 561.16 KB 120.37 KB 120.46 KB NODE_DEV
react-art.production.min.js 0.0% 🔺+0.1% 74.01 KB 74.04 KB 22.21 KB 22.22 KB NODE_PROD

react-native-renderer

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
ReactNativeRenderer-dev.js +0.1% +0.1% 657.75 KB 658.19 KB 142.09 KB 142.17 KB RN_FB_DEV
ReactNativeRenderer-prod.js 🔺+0.1% 🔺+0.1% 269.03 KB 269.21 KB 46.67 KB 46.7 KB RN_FB_PROD
ReactNativeRenderer-profiling.js +0.1% +0.1% 280.86 KB 281.05 KB 48.92 KB 48.97 KB RN_FB_PROFILING
ReactFabric-dev.js +0.1% +0.1% 636.9 KB 637.34 KB 137.35 KB 137.42 KB RN_OSS_DEV
ReactFabric-prod.js 🔺+0.1% 🔺+0.1% 260.86 KB 261.05 KB 45.16 KB 45.2 KB RN_OSS_PROD
ReactFabric-profiling.js +0.1% +0.1% 272.7 KB 272.89 KB 47.4 KB 47.44 KB RN_OSS_PROFILING
ReactFabric-dev.js +0.1% +0.1% 639.61 KB 640.05 KB 137.67 KB 137.75 KB RN_FB_DEV
ReactFabric-prod.js 🔺+0.1% 🔺+0.1% 261.01 KB 261.2 KB 45.19 KB 45.23 KB RN_FB_PROD
ReactNativeRenderer-dev.js +0.1% +0.1% 655.04 KB 655.48 KB 141.74 KB 141.82 KB RN_OSS_DEV
ReactFabric-profiling.js +0.1% +0.1% 272.85 KB 273.04 KB 47.43 KB 47.47 KB RN_FB_PROFILING
ReactNativeRenderer-prod.js 🔺+0.1% 🔺+0.1% 268.88 KB 269.07 KB 46.64 KB 46.67 KB RN_OSS_PROD
ReactNativeRenderer-profiling.js +0.1% +0.1% 280.72 KB 280.91 KB 48.9 KB 48.95 KB RN_OSS_PROFILING

react-reconciler

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-reconciler-reflection.development.js 0.0% -0.0% 15.56 KB 15.56 KB 4.73 KB 4.73 KB NODE_DEV
react-reconciler-reflection.production.min.js 0.0% -0.1% 2.58 KB 2.58 KB 1.09 KB 1.09 KB NODE_PROD
react-reconciler.development.js +0.1% +0.1% 601.13 KB 601.53 KB 126.68 KB 126.76 KB NODE_DEV
react-reconciler.production.min.js 0.0% 0.0% 79.25 KB 79.28 KB 23.34 KB 23.34 KB NODE_PROD

Size changes (experimental)

Generated by 🚫 dangerJS against 58f6c6a

@sizebot
Copy link

sizebot commented Mar 29, 2020

Details of bundled changes.

Comparing: 689d275...58f6c6a

react-native-renderer

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
ReactNativeRenderer-dev.js +0.1% +0.1% 655.02 KB 655.46 KB 141.73 KB 141.82 KB RN_OSS_DEV
ReactNativeRenderer-prod.js 🔺+0.1% 🔺+0.1% 268.87 KB 269.05 KB 46.63 KB 46.67 KB RN_OSS_PROD
ReactNativeRenderer-profiling.js +0.1% +0.1% 280.71 KB 280.9 KB 48.89 KB 48.94 KB RN_OSS_PROFILING
ReactFabric-dev.js +0.1% +0.1% 636.88 KB 637.32 KB 137.34 KB 137.42 KB RN_OSS_DEV
ReactFabric-prod.js 🔺+0.1% 🔺+0.1% 260.85 KB 261.04 KB 45.15 KB 45.19 KB RN_OSS_PROD
ReactFabric-profiling.js +0.1% +0.1% 272.69 KB 272.88 KB 47.4 KB 47.43 KB RN_OSS_PROFILING

react-art

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-art.development.js +0.1% +0.1% 540.95 KB 541.34 KB 116.64 KB 116.72 KB NODE_DEV
react-art.production.min.js 0.0% 0.0% 71.48 KB 71.51 KB 21.58 KB 21.59 KB NODE_PROD
ReactART-dev.js +0.1% +0.1% 607.42 KB 607.86 KB 127.33 KB 127.41 KB FB_WWW_DEV
ReactART-prod.js 🔺+0.1% 🔺+0.1% 243.12 KB 243.25 KB 41.26 KB 41.29 KB FB_WWW_PROD
react-art.development.js +0.1% 0.0% 636.89 KB 637.3 KB 134.28 KB 134.35 KB UMD_DEV
react-art.production.min.js 0.0% 0.0% 106.44 KB 106.47 KB 32.3 KB 32.32 KB UMD_PROD

react-test-renderer

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-test-renderer-shallow.development.js 0.0% 0.0% 38.39 KB 38.39 KB 9.29 KB 9.29 KB UMD_DEV
react-test-renderer-shallow.production.min.js 0.0% -0.1% 12.91 KB 12.91 KB 3.94 KB 3.93 KB UMD_PROD
react-test-renderer.development.js +0.1% +0.1% 547.51 KB 547.91 KB 118.11 KB 118.2 KB NODE_DEV
react-test-renderer.production.min.js 0.0% 🔺+0.1% 73.28 KB 73.3 KB 22.1 KB 22.11 KB NODE_PROD
ReactTestRenderer-dev.js +0.1% +0.1% 580.06 KB 580.5 KB 122.57 KB 122.65 KB FB_WWW_DEV
react-test-renderer.development.js +0.1% +0.1% 574.36 KB 574.77 KB 119.55 KB 119.62 KB UMD_DEV
react-test-renderer.production.min.js 0.0% 🔺+0.1% 73.46 KB 73.49 KB 22.4 KB 22.42 KB UMD_PROD

react-dom

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-dom.production.min.js 0.0% 0.0% 118.57 KB 118.59 KB 37.25 KB 37.27 KB NODE_PROD
react-dom-test-utils.development.js 0.0% -0.0% 59.23 KB 59.23 KB 15.64 KB 15.64 KB UMD_DEV
ReactDOMTesting-profiling.js 0.0% 0.0% 406.06 KB 406.17 KB 73.78 KB 73.81 KB FB_WWW_PROFILING
react-dom.profiling.min.js 0.0% 0.0% 122.42 KB 122.45 KB 38.42 KB 38.43 KB NODE_PROFILING
react-dom-test-utils.production.min.js 0.0% -0.0% 12.25 KB 12.25 KB 4.55 KB 4.54 KB UMD_PROD
react-dom-unstable-fizz.browser.production.min.js 0.0% -0.1% 1.17 KB 1.17 KB 692 B 691 B UMD_PROD
react-dom-server.node.production.min.js 0.0% -0.0% 20.03 KB 20.03 KB 7.44 KB 7.44 KB NODE_PROD
ReactDOMForked-dev.js 0.0% 0.0% 1008.69 KB 1009.13 KB 224.19 KB 224.27 KB FB_WWW_DEV
ReactDOMForked-prod.js 0.0% 0.0% 424.81 KB 424.93 KB 76.99 KB 77.03 KB FB_WWW_PROD
react-dom-unstable-fizz.node.development.js 0.0% -0.1% 3.68 KB 3.68 KB 1.33 KB 1.33 KB NODE_DEV
react-dom.development.js 0.0% 0.0% 908.92 KB 909.33 KB 199.94 KB 200.02 KB UMD_DEV
ReactDOMForked-profiling.js 0.0% 0.0% 442.53 KB 442.64 KB 80.06 KB 80.09 KB FB_WWW_PROFILING
react-dom-unstable-fizz.node.production.min.js 0.0% -0.2% 1.15 KB 1.15 KB 655 B 654 B NODE_PROD
react-dom.production.min.js 0.0% 0.0% 118.49 KB 118.52 KB 38.03 KB 38.04 KB UMD_PROD
react-dom-server.browser.production.min.js 0.0% -0.0% 19.71 KB 19.71 KB 7.34 KB 7.34 KB UMD_PROD
react-dom.profiling.min.js 0.0% 0.0% 122.2 KB 122.23 KB 39.23 KB 39.25 KB UMD_PROFILING
ReactDOMTesting-dev.js 0.0% 0.0% 946.31 KB 946.75 KB 211.3 KB 211.37 KB FB_WWW_DEV
react-dom.development.js 0.0% 0.0% 865.19 KB 865.59 KB 197.53 KB 197.61 KB NODE_DEV
ReactDOMTesting-prod.js 0.0% 0.0% 406.06 KB 406.17 KB 73.78 KB 73.81 KB FB_WWW_PROD
ReactDOM-dev.js 0.0% 0.0% 1008.69 KB 1009.13 KB 224.19 KB 224.27 KB FB_WWW_DEV
ReactDOMServer-dev.js 0.0% -0.0% 136.32 KB 136.32 KB 34.74 KB 34.74 KB FB_WWW_DEV
ReactDOM-prod.js 0.0% 0.0% 424.81 KB 424.93 KB 76.99 KB 77.03 KB FB_WWW_PROD
react-dom-test-utils.development.js 0.0% -0.0% 54.69 KB 54.69 KB 15.03 KB 15.03 KB NODE_DEV
ReactDOMServer-prod.js 0.0% -0.0% 46.62 KB 46.62 KB 10.86 KB 10.86 KB FB_WWW_PROD
react-dom-unstable-fizz.browser.development.js 0.0% -0.1% 2.94 KB 2.94 KB 1.17 KB 1.17 KB NODE_DEV
ReactDOM-profiling.js 0.0% 0.0% 442.53 KB 442.64 KB 80.06 KB 80.09 KB FB_WWW_PROFILING
react-dom-test-utils.production.min.js 0.0% -0.0% 12.1 KB 12.1 KB 4.47 KB 4.47 KB NODE_PROD
react-dom-unstable-native-dependencies.development.js 0.0% -0.0% 57.7 KB 57.7 KB 14.36 KB 14.36 KB UMD_DEV
react-dom-unstable-fizz.browser.production.min.js 0.0% -0.3% 1013 B 1013 B 604 B 602 B NODE_PROD
react-dom-unstable-native-dependencies.production.min.js 0.0% 0.0% 10.04 KB 10.04 KB 3.37 KB 3.37 KB NODE_PROD

react-reconciler

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-reconciler.development.js +0.1% +0.1% 578.98 KB 579.38 KB 122.47 KB 122.55 KB NODE_DEV
react-reconciler-reflection.development.js 0.0% -0.0% 15.55 KB 15.55 KB 4.73 KB 4.73 KB NODE_DEV
react-reconciler.production.min.js 0.0% 🔺+0.1% 76.32 KB 76.35 KB 22.63 KB 22.65 KB NODE_PROD
react-reconciler-reflection.production.min.js 0.0% -0.2% 2.57 KB 2.57 KB 1.09 KB 1.08 KB NODE_PROD

ReactDOM: size: 0.0%, gzip: -0.0%

Size changes (stable)

Generated by 🚫 dangerJS against 58f6c6a

@@ -885,6 +885,10 @@ function resumeMountClassInstance(
nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);
}

if (workInProgress.updateQueue === null) {
initializeUpdateQueue(workInProgress);
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This looks more like it's fixing symptoms.

The queue is emptied in resetWorkInProgress if current === null:

if (current === null) {
// Reset to createFiber's initial values.
workInProgress.childExpirationTime = NoWork;
workInProgress.expirationTime = renderExpirationTime;
workInProgress.child = null;
workInProgress.memoizedProps = null;
workInProgress.memoizedState = null;
workInProgress.updateQueue = null;

In updateClassComponent we resume in resumeMountClassInstance if current === null which straight goes to processUpdateQueue assuming the updateQueue has been initialized (but it isn't anymore).

Note that not reseting the updatedQueue in resetWorkInProgress fixes this as well while not failing any other test.

Copy link
Collaborator

@acdlite acdlite Mar 30, 2020

Choose a reason for hiding this comment

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

If the type were sound, the updateQueue on a class fiber should always be non-null. So my preference is to put the fix in resetWorkInProgress instead.

But also it's classes so whatever :D

Copy link
Collaborator

Choose a reason for hiding this comment

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

If you do move the fix to resetWorkInProgress, I would add a dev-only check to resumeMountClassInstance to guard against a regression.

if (__DEV__) {
  if (workInProgress.updateQueue === null) { 
    console.error('Internal error: Class fiber is missing an updateQueue');
  }
}

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

  • don't clear updateQueue in resetWorkInProgress
  • add warning if updateQueue is empty in resumeWorkInProgress:

    Class fiber is missing an updateQueue. This error is likely caused by a bug in React. Please file an issue.

@eps1lon eps1lon changed the title test(SuspenseList): Add failing test for error boundaries fix: Prevent crash when resuming class component inside SuspenseList Mar 30, 2020
Copy link
Collaborator

@gaearon gaearon left a comment

Choose a reason for hiding this comment

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

This makes sense to me but would be nice if @sebmarkbage could confirm

@gaearon
Copy link
Collaborator

gaearon commented Mar 31, 2020

@eps1lon Wanna do this change? #18432 (comment)

@eps1lon
Copy link
Collaborator Author

eps1lon commented Mar 31, 2020

@eps1lon Wanna do this change? #18432 (comment)

  1. - workInProgress.updateQueue = null
- workInProgress.updateQueue = null;
+ initializeUpdateQueue(workInProgress);

The first approach passed locally.

@eps1lon
Copy link
Collaborator Author

eps1lon commented Mar 31, 2020

I guess 2 it is (to have a sound type) if I follow

If the type were sound, the updateQueue on a class fiber should always be non-null.

@gaearon
Copy link
Collaborator

gaearon commented Mar 31, 2020

Sorry I'm not sure what you're asking. Can you rephase?

@eps1lon
Copy link
Collaborator Author

eps1lon commented Mar 31, 2020

Only 1 passes so I guess this is answered for me. I forgot a word there: "1. remove workInProgress.updateQueue = null"

@@ -546,7 +546,6 @@ export function resetWorkInProgress(
workInProgress.child = null;
workInProgress.memoizedProps = null;
workInProgress.memoizedState = null;
workInProgress.updateQueue = null;
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think this is going to break other things that are likely not covered by tests. We’ve had many bugs related to not resetting enough.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'd have to dive deeper to be able to fix this then. I tried initializeUpdateQueue(workInProgress) instead which caused a bunch of "Unexpected pop" or "Unexpected Fiber popped". Also tried

if (workInProgress.updateQueue !== null) {
  initializeUpdateQueue(workInProgress);
}

which caused the same issue

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nevermind. VSCode has problems with flow and didn't realize initializeUpdateQueue was never defined because I imported from the same line as import type. The ReferenceError was just buried below 5 screens of console errors.

@@ -546,7 +548,15 @@ export function resetWorkInProgress(
workInProgress.child = null;
workInProgress.memoizedProps = null;
workInProgress.memoizedState = null;
workInProgress.updateQueue = null;
// updateQueue must never be null on ClassComponent or HostRoot
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

In line with

// This is always non-null on a ClassComponent or HostRoot

would it make more sense to move this logic into a resetUpdateQueue inside ReactUpdatedQueue.js?

@sebmarkbage
Copy link
Collaborator

Thanks for the well written test! Opened another PR with a fix. https://github.com/facebook/react/pull/18448/files

The issue was that we were resuming in the first place. We shouldn't trigger the resume path here because it's not equipped for true resuming.

@eps1lon
Copy link
Collaborator Author

eps1lon commented Mar 31, 2020

Yeah my approach did not feel right. Thanks!

@eps1lon eps1lon deleted the test/suspenselist-reveal-together-error-boundary branch March 31, 2020 21:57
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.

6 participants