Fixed
Status Update
Comments
du...@google.com <du...@google.com> #2
I was able to reproduce this issue. We should have a fix in rc02.
du...@google.com <du...@google.com>
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit f1d3eabbb463486932b3f31bfb1bbc49aff8e5e3
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Tue Feb 19 11:34:51 2019
Fixes a case where WorkManager needs to reschedule Workers after an unexpected application crash.
* This is different from a traditional force stop scenario. The app crashes while WorkManager is
managing a WorkRequest. This `Worker` should be retried after the app starts up.
Test: Added unit tests. Ran integration tests.
02-19 11:34:18.142 6344 6344 D WM-PackageManagerHelper: androidx.work.impl.background.systemjob.SystemJobService enabled
02-19 11:34:18.142 6344 6344 D WM-Schedulers: Created SystemJobScheduler and enabled SystemJobService
02-19 11:34:18.142 6344 6344 D WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.SystemAlarmService disabled
02-19 11:34:18.163 6344 6365 D WM-ForceStopRunnable: Found unfinished work, rescheduling.
02-19 11:34:18.170 6344 6365 D WM-SystemJobScheduler: Skipping scheduling b4d48f2b-e712-4585-8aae-80eed11e0618 because JobScheduler is aware of it already.
02-19 11:34:18.170 6344 6365 D WM-ForceStopRunnable: Unfinished Workers exist, rescheduling.
02-19 11:34:18.332 6344 6344 D WM-SystemJobService: onStartJob for b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:18.337 6344 6365 D WM-Processor: Processor: processing b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:18.338 6344 6365 D WM-WorkerWrapper: Delaying execution for com.perracolabs.workmanagerbug.WorkerTest because it is being executed before schedule.
02-19 11:34:18.486 6344 6344 D WM-Processor: Processor b4d48f2b-e712-4585-8aae-80eed11e0618 executed; reschedule = true
02-19 11:34:18.486 6344 6344 D WM-SystemJobService: b4d48f2b-e712-4585-8aae-80eed11e0618 executed on JobScheduler
02-19 11:34:28.514 6344 6344 D WM-SystemJobService: onStartJob for b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.514 6344 6365 D WM-Processor: Processor: processing b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.522 6344 6344 D WM-WorkerWrapper: Starting work for com.perracolabs.workmanagerbug.WorkerTest
02-19 11:34:28.528 6344 6365 D WM-WorkerWrapper: com.perracolabs.workmanagerbug.WorkerTest returned a Success {mOutputData=androidx.work.Data@0} result.
02-19 11:34:28.529 6344 6365 I WM-WorkerWrapper: Worker result SUCCESS for Work [ id=b4d48f2b-e712-4585-8aae-80eed11e0618, tags={ com.perracolabs.workmanagerbug.WorkerTest } ]
02-19 11:34:28.530 6344 6365 D WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver disabled
02-19 11:34:28.534 6344 6344 D WM-Processor: Processor b4d48f2b-e712-4585-8aae-80eed11e0618 executed; reschedule = false
02-19 11:34:28.534 6344 6344 D WM-SystemJobService: b4d48f2b-e712-4585-8aae-80eed11e0618 executed on JobScheduler
02-19 11:34:28.535 6344 6365 D WM-GreedyScheduler: Cancelling work ID b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.537 6344 6365 D WM-Processor: Processor stopping b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.537 6344 6365 D WM-Processor: WorkerWrapper could not be found for b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.537 6344 6365 D WM-StopWorkRunnable: StopWorkRunnable for b4d48f2b-e712-4585-8aae-80eed11e0618; Processor.stopWork = false
Fixes: b/124546316
Change-Id: I41cf0b113f4667bcd67efbf62bcbc110ad80103d
M work/workmanager/src/androidTest/java/androidx/work/impl/utils/ForceStopRunnableTest.java
M work/workmanager/src/main/java/androidx/work/impl/model/WorkSpecDao.java
M work/workmanager/src/main/java/androidx/work/impl/utils/ForceStopRunnable.java
https://android-review.googlesource.com/906605
https://goto.google.com/android-sha1/f1d3eabbb463486932b3f31bfb1bbc49aff8e5e3
Branch: androidx-master-dev
commit f1d3eabbb463486932b3f31bfb1bbc49aff8e5e3
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Tue Feb 19 11:34:51 2019
Fixes a case where WorkManager needs to reschedule Workers after an unexpected application crash.
* This is different from a traditional force stop scenario. The app crashes while WorkManager is
managing a WorkRequest. This `Worker` should be retried after the app starts up.
Test: Added unit tests. Ran integration tests.
02-19 11:34:18.142 6344 6344 D WM-PackageManagerHelper: androidx.work.impl.background.systemjob.SystemJobService enabled
02-19 11:34:18.142 6344 6344 D WM-Schedulers: Created SystemJobScheduler and enabled SystemJobService
02-19 11:34:18.142 6344 6344 D WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.SystemAlarmService disabled
02-19 11:34:18.163 6344 6365 D WM-ForceStopRunnable: Found unfinished work, rescheduling.
02-19 11:34:18.170 6344 6365 D WM-SystemJobScheduler: Skipping scheduling b4d48f2b-e712-4585-8aae-80eed11e0618 because JobScheduler is aware of it already.
02-19 11:34:18.170 6344 6365 D WM-ForceStopRunnable: Unfinished Workers exist, rescheduling.
02-19 11:34:18.332 6344 6344 D WM-SystemJobService: onStartJob for b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:18.337 6344 6365 D WM-Processor: Processor: processing b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:18.338 6344 6365 D WM-WorkerWrapper: Delaying execution for com.perracolabs.workmanagerbug.WorkerTest because it is being executed before schedule.
02-19 11:34:18.486 6344 6344 D WM-Processor: Processor b4d48f2b-e712-4585-8aae-80eed11e0618 executed; reschedule = true
02-19 11:34:18.486 6344 6344 D WM-SystemJobService: b4d48f2b-e712-4585-8aae-80eed11e0618 executed on JobScheduler
02-19 11:34:28.514 6344 6344 D WM-SystemJobService: onStartJob for b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.514 6344 6365 D WM-Processor: Processor: processing b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.522 6344 6344 D WM-WorkerWrapper: Starting work for com.perracolabs.workmanagerbug.WorkerTest
02-19 11:34:28.528 6344 6365 D WM-WorkerWrapper: com.perracolabs.workmanagerbug.WorkerTest returned a Success {mOutputData=androidx.work.Data@0} result.
02-19 11:34:28.529 6344 6365 I WM-WorkerWrapper: Worker result SUCCESS for Work [ id=b4d48f2b-e712-4585-8aae-80eed11e0618, tags={ com.perracolabs.workmanagerbug.WorkerTest } ]
02-19 11:34:28.530 6344 6365 D WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver disabled
02-19 11:34:28.534 6344 6344 D WM-Processor: Processor b4d48f2b-e712-4585-8aae-80eed11e0618 executed; reschedule = false
02-19 11:34:28.534 6344 6344 D WM-SystemJobService: b4d48f2b-e712-4585-8aae-80eed11e0618 executed on JobScheduler
02-19 11:34:28.535 6344 6365 D WM-GreedyScheduler: Cancelling work ID b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.537 6344 6365 D WM-Processor: Processor stopping b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.537 6344 6365 D WM-Processor: WorkerWrapper could not be found for b4d48f2b-e712-4585-8aae-80eed11e0618
02-19 11:34:28.537 6344 6365 D WM-StopWorkRunnable: StopWorkRunnable for b4d48f2b-e712-4585-8aae-80eed11e0618; Processor.stopWork = false
Fixes:
Change-Id: I41cf0b113f4667bcd67efbf62bcbc110ad80103d
M work/workmanager/src/androidTest/java/androidx/work/impl/utils/ForceStopRunnableTest.java
M work/workmanager/src/main/java/androidx/work/impl/model/WorkSpecDao.java
M work/workmanager/src/main/java/androidx/work/impl/utils/ForceStopRunnable.java
Description
Version used: 3.0.0-alpha08 or 3.0.0-alpha09
Devices/Android versions reproduced on: Samsung Galaxy S8 / Android 9
Starting with version 3.0.0-alpha08 of the Paging library, the MediatorResult.Success(false) value returned from a RemoteMediator.load(LoadType.REFRESH, state) call doesn’t trigger a RemoteMediator.load(LoadType.APPEND, state) call and doesn’t update PagingDataAdapter.loadStateFlow to notify that the refresh state has changed from LoadState.Loading to LoadState.NotLoading.
This bug can be reproduced by means of the following project, if you’ve changed the version of the Paging library it uses so that it’s equal to 3.0.0-alpha08 or 3.0.0-alpha09: