Fixed
Status Update
Comments
ra...@google.com <ra...@google.com>
[Deleted User] <[Deleted User]> #3
Thank you for the quick fix.
Is there an ETA for the next release?
Is there an ETA for the next release?
ra...@google.com <ra...@google.com> #4
2.2.0-rc01 should be out this week.
ra...@google.com <ra...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit a1957df3709a06f4e6482fb0e4d39ded4f230a70
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Mon Jul 29 09:48:05 2019
Workaround NPE in PersistableBundle.getExtras().
Test: Existing unit tests pass. Ran integration test app.
Fixes: b/138441699
Change-Id: I0b48e0009a7d83c343a3d26112b94c057470c281
M work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobService.java
https://android-review.googlesource.com/1092870
https://goto.google.com/android-sha1/a1957df3709a06f4e6482fb0e4d39ded4f230a70
Branch: androidx-master-dev
commit a1957df3709a06f4e6482fb0e4d39ded4f230a70
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Mon Jul 29 09:48:05 2019
Workaround NPE in PersistableBundle.getExtras().
Test: Existing unit tests pass. Ran integration test app.
Fixes:
Change-Id: I0b48e0009a7d83c343a3d26112b94c057470c281
M work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobService.java
[Deleted User] <[Deleted User]> #6
[Deleted User] <[Deleted User]> #7
Two more data points based on reports:
- We're only seeing this crash on Android 7.x
- Most common devices: Huawei Mate 10 lite, Huawei P9 lite, Samsung Galaxy S6
Still trying to repro - no luck so far with API 24 emulator.
ra...@google.com <ra...@google.com> #8
We're only seeing this crash on Android 7.x
This makes sense. Because ConstraintTrackingWorker
is only used in API 23-25.
ap...@google.com <ap...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 3d54e41768eb0bdfcad5e574cf6837cdd6520035
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Wed Nov 11 11:29:55 2020
Improve `ConstraintTrackingWorker.onStopped()`.
* We only stop a constraint tracking worker it was not already stopped.
Fixes: b/172946965
Test: Added unit tests and integration tests. All existing tests pass.
Change-Id: Ic71b308d30024b98f5eb9cb23691583794254379
M work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/MainActivity.java
M work/integration-tests/testapp/src/main/res/layout/activity_main.xml
M work/integration-tests/testapp/src/main/res/values/strings.xml
M work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java
M work/workmanager/src/main/java/androidx/work/impl/workers/ConstraintTrackingWorker.java
https://android-review.googlesource.com/1496844
Branch: androidx-master-dev
commit 3d54e41768eb0bdfcad5e574cf6837cdd6520035
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Wed Nov 11 11:29:55 2020
Improve `ConstraintTrackingWorker.onStopped()`.
* We only stop a constraint tracking worker it was not already stopped.
Fixes:
Test: Added unit tests and integration tests. All existing tests pass.
Change-Id: Ic71b308d30024b98f5eb9cb23691583794254379
M work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/MainActivity.java
M work/integration-tests/testapp/src/main/res/layout/activity_main.xml
M work/integration-tests/testapp/src/main/res/values/strings.xml
M work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java
M work/workmanager/src/main/java/androidx/work/impl/workers/ConstraintTrackingWorker.java
tb...@gmail.com <tb...@gmail.com> #10
I am also seeing something similar reported for a Huawei P8 Lite on Android 7.0
Fatal Exception: java.lang.StackOverflowError: stack size 1037KB
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.workers.ConstraintTrackingWorker.isRunInForeground(ConstraintTrackingWorker.java:187)
at androidx.work.impl.WorkerWrapper.resolve(WorkerWrapper.java:447)
at androidx.work.impl.WorkerWrapper.tryCheckForInterruptionAndResolve(WorkerWrapper.java:419)
at androidx.work.impl.WorkerWrapper.interrupt(WorkerWrapper.java:375)
at androidx.work.impl.Processor.interrupt(Processor.java:331)
at androidx.work.impl.Processor.stopWork(Processor.java:188)
at androidx.work.impl.utils.StopWorkRunnable.run(StopWorkRunnable.java:73)
at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:776)
Is this related at all? Or is it a separate issue?
Description
This crash is happening in our production app. I haven't been able to reproduce it locally, but looking at WorkManager's source, the cause seems pretty straightforward.
Here's the source for
ListenableWorker.stop
for version 2.5.0-beta01:And here's the source for
ConstraintTrackingWorker.onStopped
for version 2.5.0-beta01:stop
callsonStopped
which callsstop
and so on. My assumption is that one of these two methods should check if the worker has already been stopped before calling each other again.