Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

[Crash] java.util.ConcurrentModificationException at java.util.ArrayDeque$DeqIterator.next(ArrayDeque.java:625) #20029

Closed
sv-ohorvath opened this issue Jun 15, 2021 · 5 comments · Fixed by #20170
Assignees
Labels
b:crash Crashes Fenix: should link to Sentry, Crash-Stats or GPlay info 🐞 bug Crashes, Something isn't working, .. eng:bug-auto-found Bug found via automated tests eng:qa:verified QA Verified S2 Major Functionality/product severely impaired and a satisfactory workaround doesn't exist

Comments

@sv-ohorvath
Copy link
Contributor

sv-ohorvath commented Jun 15, 2021

Steps to reproduce

Similar to #20031. Both caught while running an automated test for switching locales. Can also be reproduced manually.

  1. Fresh install
  2. Go to Settings>Language
  3. Select a language (e.g. Romanian)
  4. Select French
  5. Select "Use system language" or another language.

Expected behavior

Languages get changed

Actual behavior

App crashes.

Device information

  • Device vendor/model and Android version: Pixel 2 (Android 9)
  • Firefox for Android version: Nightly 91.0a1, 6/14

6c45a4f0-97dc-4e95-a210-205d26fff631
java.util.ConcurrentModificationException


java.util.ConcurrentModificationException at java.util.ArrayDeque$DeqIterator.next(ArrayDeque.java:625) at androidx.navigation.NavController$1.onStateChanged(NavController.java:2) at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:3) at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:9) at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:9) at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:5) at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:2) at androidx.fragment.app.Fragment.performStart(Fragment.java:7) at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:3) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:28) at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:4) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:97) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3) at androidx.fragment.app.FragmentManager.dispatchStart(FragmentManager.java:3) at androidx.fragment.app.FragmentController.dispatchStart(FragmentController.java:1) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:9) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:1) at org.mozilla.fenix.HomeActivity.access$onStart$s-594849490(HomeActivity.kt:1) at org.mozilla.fenix.HomeActivity$onStart$1.invoke(HomeActivity.kt:1) at androidx.core.app.AppOpsManagerCompat.measureNoInline(AppOpsManagerCompat.java:2) at org.mozilla.fenix.HomeActivity.onStart(HomeActivity.kt:1) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391) at android.app.Activity.performStart(Activity.java:7165) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2975) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:55) at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:4782) at android.app.ActivityThread.access$3200(ActivityThread.java:200) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1826) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6718) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

┆Issue is synchronized with this Jira Task

@sv-ohorvath sv-ohorvath added 🐞 bug Crashes, Something isn't working, .. b:crash Crashes Fenix: should link to Sentry, Crash-Stats or GPlay info labels Jun 15, 2021
@github-actions github-actions bot added the needs:triage Issue needs triage label Jun 15, 2021
@sv-ohorvath sv-ohorvath added the S2 Major Functionality/product severely impaired and a satisfactory workaround doesn't exist label Jun 15, 2021
@amedyne amedyne removed the needs:triage Issue needs triage label Jun 21, 2021
@amedyne amedyne added this to Ready for Engineering (min-5 ; max-22) in Android Engineering Team Kanban board via automation Jun 21, 2021
@mcarare
Copy link
Contributor

mcarare commented Jun 22, 2021

@sv-ohorvath Can you reproduce this consistently? I tried on different devices and I cannot reproduce it.

@sv-ohorvath
Copy link
Contributor Author

@sv-ohorvath Can you reproduce this consistently? I tried on different devices and I cannot reproduce it.

No, not consistently, but after a few tries. I think it's important to clear the app profile if you don't get the crash after switching languages a few times. And also to keep switching languages fast, not just the two, maybe you get a crash after the 3rd-4th switch.

@mcarare
Copy link
Contributor

mcarare commented Jun 23, 2021

@sv-ohorvath Thank you for your input, already tried that. Does the crash only happen when you select "Follow device language" or you can reproduce it without ever selecting that option?

@sv-ohorvath
Copy link
Contributor Author

@sv-ohorvath Thank you for your input, already tried that. Does the crash only happen when you select "Follow device language" or you can reproduce it without ever selecting that option?

Had to double-check that. It crashes when you select another language too.

@mcarare mcarare self-assigned this Jun 25, 2021
@mcarare mcarare moved this from Ready for Engineering (min-5 ; max-22) to In Development (WIP limit - 15) in Android Engineering Team Kanban board Jun 25, 2021
mcarare added a commit to mcarare/fenix that referenced this issue Jun 25, 2021
mcarare added a commit to mcarare/fenix that referenced this issue Jun 25, 2021
@mcarare mcarare moved this from In Development (WIP limit - 15) to Dev Complete (WIP limit - 5) in Android Engineering Team Kanban board Jun 25, 2021
@codrut-topliceanu codrut-topliceanu moved this from Dev Complete (WIP limit - 5) to Review in progress (WIP limit - 11) in Android Engineering Team Kanban board Jul 6, 2021
@mergify mergify bot closed this as completed in #20170 Jul 7, 2021
Android Engineering Team Kanban board automation moved this from Review in progress (WIP limit - 11) to Done Jul 7, 2021
@mcarare mcarare added the eng:qa:needed QA Needed label Jul 7, 2021
@mcarare mcarare reopened this Jul 7, 2021
Android Engineering Team Kanban board automation moved this from Done to In Development (WIP limit - 15) Jul 7, 2021
@mcarare mcarare moved this from In Development (WIP limit - 15) to Reviewer approved, ready for test (WIP limit - ?) in Android Engineering Team Kanban board Jul 7, 2021
codrut-topliceanu pushed a commit to codrut-topliceanu/fenix that referenced this issue Jul 8, 2021
@sflorean
Copy link
Contributor

sflorean commented Jul 9, 2021

No issues found when testing on Nightly 7/9 and following the steps provided above.
Devices:

  • Google Pixel 3 (Android 11)
  • Google Pixel (Android 10)
  • Google Pixel 3 XL (Android 9)

@sflorean sflorean closed this as completed Jul 9, 2021
Android Engineering Team Kanban board automation moved this from Reviewer approved, ready for test (WIP limit - ?) to Done Jul 9, 2021
@sflorean sflorean added eng:qa:verified QA Verified and removed eng:qa:needed QA Needed labels Jul 9, 2021
@sv-ohorvath sv-ohorvath added the eng:bug-auto-found Bug found via automated tests label Jul 9, 2021
czlucius pushed a commit to czlucius/fenix that referenced this issue Aug 20, 2021
czlucius pushed a commit to czlucius/fenix that referenced this issue Aug 22, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
b:crash Crashes Fenix: should link to Sentry, Crash-Stats or GPlay info 🐞 bug Crashes, Something isn't working, .. eng:bug-auto-found Bug found via automated tests eng:qa:verified QA Verified S2 Major Functionality/product severely impaired and a satisfactory workaround doesn't exist
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

4 participants