-
Notifications
You must be signed in to change notification settings - Fork 24.5k
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
Infinite recursion in RCTFatal when the bundle fails to execute #5090
Comments
I believe I fixed this in 0cfe763 If an error happens as part of bridge init, the JS executor is invalidated and will no longer enqueue the JS call. |
@javache I encountered this error on master about 3 days ago, fyi. |
I don't believe 0cfe763 fixed this because the bug is present in 0.18.0rc. |
@philikon Can you provide an example of how to reproduce this? If something as fundamental as __fbBatchedBridge is broken, it should be caught during startup and cause the bridge to be invalidated. Either way, this bug should only be present when debugging using the Chrome executor. |
Using a new 0.18.0rc project. Replace the contents of
Doesn't need to run on chrome executor. |
I encountered this error, too. Hope to find a solution. |
I also see this error when i use 0.18.0-rc with bundled js. |
Me too @Creemli |
waiting for fix too |
@Purii I fixed this issue by copying the code from http://localhost:8081/index.ios.bundle to main.jsbundle. And it works well~~~ |
@Creemli doesn't work for me. Neither with |
I also got this error. |
This is now failing recursively because we check more carefully for an invalid bundle (5b4e873). I'm looking to see if there's any way we can bail out earlier in this case without breaking other debug tools. |
Does this mean, that there is something wrong with our code, or is it the packager which fails? |
@Purii: yes, please verify that the bundle you're trying to load in the packager is valid. |
@javache Running
The list looks similar on a new project with |
Seeing this after following the standard instructions from https://facebook.github.io/react-native/docs/getting-started.html#quick-start |
Seems to be fixed with |
I'm seeing this issue after upgrading a project from 0.15 to 0.18. I used |
I'm seeing this issue after trying to upgrade from 0.16 to 0.18. I also used |
Summary: This solves #5090. Since 5b4e873 we had better reporting for when calls from native to JS fail. When trying to load an invalid bundle, this would now cause a stackoverflow, since RCTFatal would schedule a JS call to log, which would RCTFatal, which would ... By invalidating the jsExecutor immediately after loading fails, we prevent any more attempts to log. We can't invalidate the whole bridge at this point since we still need the redbox module to actually display the error. public Reviewed By: majak Differential Revision: D2834251 fb-gh-sync-id: a3e2ad425e40560beae4d3eacb93f66ace5341bf
I'm seeing this issue in 0.18.0-rc, after upgrade to 0.18.0, it disappeared. |
Summary: This solves #5090. Since 5b4e873 we had better reporting for when calls from native to JS fail. When trying to load an invalid bundle, this would now cause a stackoverflow, since RCTFatal would schedule a JS call to log, which would RCTFatal, which would ... By invalidating the jsExecutor immediately after loading fails, we prevent any more attempts to log. We can't invalidate the whole bridge at this point since we still need the redbox module to actually display the error. public Reviewed By: majak Differential Revision: D2834251 fb-gh-sync-id: a3e2ad425e40560beae4d3eacb93f66ace5341bf
Summary: This solves facebook#5090. Since facebook@5b4e873 we had better reporting for when calls from native to JS fail. When trying to load an invalid bundle, this would now cause a stackoverflow, since RCTFatal would schedule a JS call to log, which would RCTFatal, which would ... By invalidating the jsExecutor immediately after loading fails, we prevent any more attempts to log. We can't invalidate the whole bridge at this point since we still need the redbox module to actually display the error. public Reviewed By: majak Differential Revision: D2834251 fb-gh-sync-id: a3e2ad425e40560beae4d3eacb93f66ace5341bf
Summary: This solves facebook#5090. Since facebook@5b4e873 we had better reporting for when calls from native to JS fail. When trying to load an invalid bundle, this would now cause a stackoverflow, since RCTFatal would schedule a JS call to log, which would RCTFatal, which would ... By invalidating the jsExecutor immediately after loading fails, we prevent any more attempts to log. We can't invalidate the whole bridge at this point since we still need the redbox module to actually display the error. public Reviewed By: majak Differential Revision: D2834251 fb-gh-sync-id: a3e2ad425e40560beae4d3eacb93f66ace5341bf
I downgrade to 0.16.0 version, over this problem. |
8ea9a1b released with 0.18.1 should be the fix. Let's close this and reopen if it still appears in 0.18.1 and later versions. |
just encountered this in 0.18.0 - somehow ReactLog.m was getting a new line (\n) prepended to the top of the file. Problem went away when it was removed. |
Just encountered this with 0.18.1. Didn't have it in 0.18-rc but since the update this is appearing for me as well |
Still get this issue in 0.18.1 Step:
[error][tid:com.facebook.React.JavaScript] Unable to execute JS call: __fbBatchedBridge is undefined Could someone can help on this case ? |
That means something went wrong with loading/executing your JS bundle. This task only concerns infinite recursion happening as a side-effect of that. Please open a new issue instead. |
also got this issue sometimes, using bundled js without dev mode in 0.19-rc |
@javache got this issue with 0.19 |
@stereodenis are you experiencing infinite recursion or seeing |
I saw this with 0.19 when I tried to run on device after upgraded from 0.13. I checked in the log and realized that |
@ide __fbBatchedBridge is undefined |
Please file a new issue when you're just seeing this error. |
RCTFatal calls _RCTLogNativeInternal which enqueues a JS call. This can fail because a previous RCTFatal occurred because the bundle failed to execute in the first place. So when RCTFatal fails, it ends up calling RCTFatal again in an infinite loop.
cc @javache
The text was updated successfully, but these errors were encountered: