Skip to content

Remove native -> js call noop-ing after early js error#47915

Closed
RSNara wants to merge 1 commit into
facebook:mainfrom
RSNara:export-D66394278
Closed

Remove native -> js call noop-ing after early js error#47915
RSNara wants to merge 1 commit into
facebook:mainfrom
RSNara:export-D66394278

Conversation

@RSNara
Copy link
Copy Markdown
Contributor

@RSNara RSNara commented Nov 22, 2024

Summary:

Purpose of this noop-ing

If an fatal js error happens during js runtime init, the js thread continues executing and raises yet another fatal error. That fatal is usually inactionable. This noop-ing was an attempt to prevent that second inactionable fatal from happening.

Problems with this noop-ing

I don't think this is the right approach: There could be legitimate reasons to continue executing native -> js calls post js fatal.

I don't think it does much: it doesn't noop native -> js calls executed on the runtime scheduler, which should be most of them. Note: Runtime scheduler executes several tasks on the same tick of runtime executor. So, if a runtime scheduler tasks raises a fatal erorr, subsequent runtime scheduler tasks will continue executing.

Changes

Instead of trying to prevent that fatal, just let it happen. We recently shipped changes that made sure the error reporting pipeline didn't report the second fatal: D66193194 and D66392706.

Safetly

This codepath is only executed after early js errors. There shouldn't be any in production right now. So the production impact is negligible.

We've spent a lot of time beefing up our early js pipeline. And it covers fatal js errors pretty comprehensively. So, whenever an early js error happens, subsequent js fatals should get reported and handled properly.

Changelog: [Internal]

Differential Revision: D66394278

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner labels Nov 22, 2024
@facebook-github-bot
Copy link
Copy Markdown
Contributor

This pull request was exported from Phabricator. Differential Revision: D66394278

Summary:

## Purpose of this noop-ing
If an fatal js error happens during js runtime init, the js thread continues executing and raises **yet another** fatal error. 

This noop-ing was an **attempt** to prevent that second inactionable fatal from happening: That fatal is usually inactionable.

## Problems with this noop-ing
I don't think this is the right approach: There could be legitimate reasons to continue executing native -> js calls post first js fatal.

I don't think it does *much*: it doesn't noop native -> js calls executed on the runtime scheduler, which should be most of them. 

## Changes

Instead of trying to prevent that fatal, just let it happen. Then, don't report the second fatal: D66193194 and D66392706.

## Safetly
The production impact is negligible: This codepath is executed only after early js errors. There shouldn't be any in production right now.

We've spent a lot of time making our javascript error handling pipeline's coverage compresive. So, after an early js fatal error happens, subsequent js fatals should get handled properly.

Changelog: [Internal]

Differential Revision: D66394278
@facebook-github-bot
Copy link
Copy Markdown
Contributor

This pull request was exported from Phabricator. Differential Revision: D66394278

@facebook-github-bot
Copy link
Copy Markdown
Contributor

This pull request has been merged in 69ecaef.

@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Dec 2, 2024
@react-native-bot
Copy link
Copy Markdown
Collaborator

This pull request was successfully merged by @RSNara in 69ecaef

When will my fix make it into a release? | How to file a pick request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants