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(app, android): fix TaskExecutor ConcurrentModificationException #5230

Merged
merged 4 commits into from
Apr 29, 2021

Conversation

mikehardy
Copy link
Collaborator

@mikehardy mikehardy commented Apr 28, 2021

Description

The new TaskExecutor code in #4981 is great but it is new and had a concurrency issue causing a redbox on CatalystInstance shutdown, which shows up as a redbox in dev when you reload the app

Related issues

Fixes #5225
Related #5233 - redbox detection was flaky and I don't want to delay this fix, split it to separate PR

Release Summary

Each commit is separate with a conventional commit message

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • Yes
  • My change supports the following platforms;
    • Android
    • iOS
  • My change includes tests;
    • e2e tests added or updated in packages/\*\*/e2e
    • jest tests added or updated in packages/\*\*/__tests__
  • I have updated TypeScript types that are affected by my change.
  • This is a breaking change;
    • Yes
    • No

Test Plan

Redbox was reproducible in E2E suite after Detox reloaded the app, but the tests continued running under the redbox, so it passed CI. Fixed root cause of the initial bug and locally have redbox detection working but needs de-flaking


Think react-native-firebase is great? Please consider supporting the project with any of the below:

Access to the collection of TaskExecutors wasn't correctly synchronized
in all places

Fixes #5225
@vercel
Copy link

vercel bot commented Apr 28, 2021

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/invertase/react-native-firebase/9NUGhx73kXgUZREbzdkTtcJZcEyh
✅ Preview: https://react-native-f-git-mikehardy-issue5225-task-executor-cme-6d4b34.vercel.app

@mikehardy mikehardy added the Workflow: Pending Merge Waiting on CI or similar label Apr 28, 2021
@codecov
Copy link

codecov bot commented Apr 28, 2021

Codecov Report

Merging #5230 (05d795f) into master (574f691) will not change coverage.
The diff coverage is n/a.

❗ Current head 05d795f differs from pull request most recent head 7d07d85. Consider uploading reports for the commit 7d07d85 to get more accurate results

@@           Coverage Diff           @@
##           master    #5230   +/-   ##
=======================================
  Coverage   88.86%   88.86%           
=======================================
  Files         109      109           
  Lines        3743     3743           
  Branches      360      360           
=======================================
  Hits         3326     3326           
  Misses        370      370           
  Partials       47       47           

@mikehardy mikehardy force-pushed the @mikehardy/issue5225-task-executor-cme branch from 824bea5 to 7d07d85 Compare April 29, 2021 15:49
@mikehardy mikehardy changed the title fix(app, android): fix TaskExecutor ConcurrentModificationException, add E2E redbox test fix(app, android): fix TaskExecutor ConcurrentModificationException Apr 29, 2021
@mikehardy mikehardy removed the Workflow: Pending Merge Waiting on CI or similar label Apr 29, 2021
@mikehardy mikehardy merged commit 0d9146e into master Apr 29, 2021
@mikehardy mikehardy deleted the @mikehardy/issue5225-task-executor-cme branch April 29, 2021 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

When i tap R on metro after reload it shows the error Exception in native call from js
1 participant