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

[CI] Tests sometimes fail, probably because sync framework is called for short-lived test accounts #1273

Closed
rfc2822 opened this issue Jan 28, 2025 · 6 comments · Fixed by #1299
Assignees
Labels
bug Something isn't working

Comments

@rfc2822
Copy link
Member

rfc2822 commented Jan 28, 2025

Sometimes instrumented tests fail with an error that shows that Hilt is not initialized for a test (always a different one), although it is:

 at.bitfire.davdroid.sync.account.AccountsCleanupWorkerTest > testCleanUpServices_oneAccount[virtual] FAILED 
	java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
		at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)

Copy/paste from the chat:

It's always the same problem that haunts us since we have tests that create accounts. Also related to the "test account" type I had earlier. I think the probem is that if an account is created for testing purposes, after some (short) time a sync is initiated by the sync framework. This then fails because the syncer uses Hilt, which may not be initialized correctly (because it's initialized for the tests, not for the sync job).

I thought it shouldn't appear if we delete the test account quick enough after creating it, normally that's enough. But I guess sometimes tests take longer OR maybe the account has been deleted and re-created by the next test so quickly that the sync framework things the account was permanently available.

So I see two possibilities:

  • use a "test account" account type for testing, which doesn't have associated sync authorities, so the sync framework won't call the syncer when such an account is created – requires adapting everything to accept two account types
  • get the sync framework to sync only when we want, by editing sync_contacts.xml (and the other ones) – we can set "automatic sync" to 0 basically and it should work. However there were some rare firmwares in earlier times which seemed to disable the sync framefork for these types permanently, without the possibility to enable it by a setSyncEnabled() again

Maybe we should give the second version another try, because we know have much better sync framework integration and can make sure the setSyncEnable calls are actually done. Possibily when I tried that the last time (years ago) I forgot some call and then there was a problem on those devices

Yes it's … cumbersome ^^

But regarding your PR, I just ran the test again and now they worked

But we should solve that problem for all time … ideally in 4.5 ^^ Annoys me too and tests should be reproducible


See also: #1286

@rfc2822 rfc2822 added the bug Something isn't working label Jan 28, 2025
@rfc2822 rfc2822 changed the title [CI] Tests sometimes fail because syncers are created for test accounts [CI] Tests sometimes fail, probably because sync framework is called for short-lived test accounts Jan 28, 2025
@rfc2822
Copy link
Member Author

rfc2822 commented Jan 30, 2025

Logs around a crash (this time in Hilt_ContactsSyncAdapterService):

01-30 13:28:20.798   591   935 I AccountManagerService: notifying package=com.google.android.gm for userId=0, sending broadcast of android.accounts.action.VISIBLE_ACCOUNTS_CHANGED
01-30 13:28:20.798   591   935 I AccountManagerService: notifying package=com.android.vending for userId=0, sending broadcast of android.accounts.action.VISIBLE_ACCOUNTS_CHANGED
01-30 13:28:20.798   591   935 I AccountManagerService: notifying package=com.google.android.gms for userId=0, sending broadcast of android.accounts.action.VISIBLE_ACCOUNTS_CHANGED
01-30 13:28:20.798   591   935 I AccountManagerService: notifying package=com.android.providers.calendar for userId=0, sending broadcast of android.accounts.action.VISIBLE_ACCOUNTS_CHANGED
01-30 13:28:20.798   591   935 I AccountManagerService: callingUid=10415, userId=0 removed account
01-30 13:28:20.798   591   935 I AccountManagerService: the accountType= at.bitfire.davdroid.address_book changed with useCase=removeAccount for userId=0, sending broadcast of android.accounts.LOGIN_ACCOUNTS_CHANGED
01-30 13:28:20.799   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.800   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.801   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.801   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.801   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.801   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.801   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.801   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.801   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.802   591   935 I AccountManagerService: the account with type=at.bitfire.davdroid.address_book removed while useCase=removeAccount for userId=0, sending broadcast of android.accounts.action.ACCOUNT_REMOVED
01-30 13:28:20.802  1761 14713 I Icing   : updateResources: need to parse bhyl{com.google.android.gms}
01-30 13:28:20.806   591   591 W JobScheduler: Job didn't exist in JobStore: 9d7de2e {SyncManager} #1000/1006 @[email protected]/bitfire.at.davdroid:android
01-30 13:28:20.809  1761 14713 I Icing   : updateResources: need to parse bhyl{com.google.android.gms}
01-30 13:28:20.816  1761 14713 I Icing   : updateResources: need to parse bhyl{com.google.android.gms}
01-30 13:28:20.818 14732 14749 I TestRunner: finished: test_renameAccount_retainsGroups(at.bitfire.davdroid.resource.LocalAddressBookTest)
01-30 13:28:20.822   591   591 W JobScheduler: Job didn't exist in JobStore: 94f14f7 {SyncManager} #1000/1005 @[email protected]/bitfire.at.davdroid:android
01-30 13:28:20.823 12256 12440 I OtherContactsProvider: handle returning directory metadata
01-30 13:28:20.827 12256 12256 I GnpSdk  : Intent received for action [android.accounts.LOGIN_ACCOUNTS_CHANGED] package [com.google.android.contacts].
01-30 13:28:20.827 12256 12256 I GnpSdk  : Phenotype initialized.
01-30 13:28:20.827 12256 12256 I GnpSdk  : Validation OK for action [android.accounts.LOGIN_ACCOUNTS_CHANGED].
01-30 13:28:20.827 12256 12293 I GnpSdk  : Started Broadcast execution [99].
01-30 13:28:20.829   591  1914 D AccountManagerService: Visibility was not initialized
01-30 13:28:20.831 11194 11194 I Finsky  : [2] ygd.onTrimMemory(11): Memory trim requested to level 40
01-30 13:28:20.831 11194 11194 I Finsky  : [2] acpx.accept(139): Flushing in-memory image cache
01-30 13:28:20.837 12256 12293 I GnpSdk  : Executing action in BroadcastReceiver [android.accounts.LOGIN_ACCOUNTS_CHANGED].
01-30 13:28:20.838 14732 14749 I UiAutomationPermGranter: Attempting to grant android.permission.READ_CALENDAR to at.bitfire.davdroid
01-30 13:28:20.840 12256 12293 I GnpSdk  : Finished Broadcast execution [99].
01-30 13:28:20.841  6160 12344 I GnpSdk  : (REDACTED) Finished Broadcast execution [%d].
01-30 13:28:20.842 12256 13135 I SdnProvider: Creating directory cursor
01-30 13:28:20.847  1761  2949 I PeopleGalProvider: Gal directories started.
01-30 13:28:20.847  1761  2949 I PeopleGalProvider: Method 1 completed.
01-30 13:28:20.848  1761  2949 I PeopleGalProvider: Method 1 finished successfully.
01-30 13:28:20.852  6160  6187 I elwy    : (REDACTED) %s TNG App is logging Clearcut event named %s with the %s account state and %s source
01-30 13:28:20.852  6160  6187 I exyw    : InvalidateAndScheduleSync start
01-30 13:28:20.854  6160  6160 I avir    : (REDACTED) Refusing EXCLUSIVE task %s, it is already pending. Try again in %d seconds.
01-30 13:28:20.856 14732 14749 I UiAutomationPermGranter: Attempting to grant android.permission.WRITE_CALENDAR to at.bitfire.davdroid
01-30 13:28:20.858 14732 14749 I javaClass: Initializing calendar provider
01-30 13:28:20.859  6160  6160 I GnpSdk  : (REDACTED) Intent received for action [%s] package [%s].
01-30 13:28:20.859  6160  6160 I GnpSdk  : Phenotype initialized.
01-30 13:28:20.859  6160  6160 I GnpSdk  : (REDACTED) Validation OK for action [%s].
01-30 13:28:20.859  6160  6160 I GnpSdk  : (REDACTED) Submitting Broadcast execution [%d] to tiktok executor.
01-30 13:28:20.860  6160 12102 I GnpSdk  : (REDACTED) Executing action in BroadcastReceiver [%s].
01-30 13:28:20.865   591  1833 D ShortcutService: Getting shortcuts for launcher= com.google.android.asuser=0 pkg=com.google.android.contacts
01-30 13:28:20.865   591   628 D ShortcutService: Getting shortcuts for launcher= com.android.systemuiuser=0 pkg=com.google.android.gm
01-30 13:28:20.865  1264 12392 I ContactDirectoryManager: deleted 0 stale rows which don't have any relevant directory
01-30 13:28:20.866 12555 12587 I GoogleRestoreGmsAccounts: GMSCore Auth returned 1 accounts.
01-30 13:28:20.866 12555 12587 I GoogleRestoreGmsAccounts: GoogleOwnersProvider returned 1 accounts.
01-30 13:28:20.870  1264 12392 I ContactDirectoryManager: Discovered 2 contact directories in 118ms
01-30 13:28:20.871   591  1849 D ShortcutService: Getting shortcuts for launcher= com.google.android.asuser=0 pkg=com.google.android.contacts
01-30 13:28:20.872   591  1914 W PermissionManagerService: Datasource android.content.AttributionSource@506d179c protecting data with platform defined runtime permission android.permission.READ_CONTACTS while not having android.permission.UPDATE_APP_OPS_STATS
01-30 13:28:20.874  1264 12392 I ContactsProvider: Accounts changed
01-30 13:28:20.879  6160  6187 I exyo    : (REDACTED) GMSCore Auth returned %d accounts.
01-30 13:28:20.879  6160  6187 I exyo    : (REDACTED) GoogleOwnersProvider returned %d accounts.
01-30 13:28:20.884 12168 14295 W ContentResolver: Failed to get type for: content://com.android.calendar (Unknown URL content://com.android.calendar)
01-30 13:28:20.886  1264 12392 I ContactsProvider: Accounts changed
01-30 13:28:20.887 14116 14163 I Safetyhub.GmsAccounts: GMSCore Auth returned 1 accounts.
01-30 13:28:20.887 14116 14163 I Safetyhub.GmsAccounts: GoogleOwnersProvider returned 1 accounts.
01-30 13:28:20.891   591   806 D ShortcutService: Saving package item com.google.android.gm to /data/system_ce/0/shortcut_service/packages/com.google.android.gm.xml
01-30 13:28:20.891   591   628 D ShortcutService: Getting shortcuts for launcher= com.google.android.asuser=0 pkg=com.google.android.gm
01-30 13:28:20.903   591   628 D ShortcutService: Getting shortcuts for launcher= com.google.android.apps.nexuslauncheruser=0 pkg=com.google.android.gm
01-30 13:28:20.909  1761  4891 I PeopleGalProvider: Gal directories started.
01-30 13:28:20.909  1761  4891 I PeopleGalProvider: Method 1 completed.
01-30 13:28:20.909  1761  4891 I PeopleGalProvider: Method 1 finished successfully.
01-30 13:28:20.913 12966 13014 W miq     : [Hub Libraries] LoggingHelper: Deleted account notification channel group.
01-30 13:28:20.915   591  1119 W JobScheduler: Job didn't exist in JobStore: b489ccf {androidx.work.systemjobscheduler} #u0a167/555001190 @[email protected]/androidx.work.impl.background.systemjob.SystemJobService
01-30 13:28:20.917  1264 12389 I ContactDirectoryManager: deleted 0 stale rows which don't have any relevant directory
01-30 13:28:20.917  1264 12389 I ContactDirectoryManager: Discovered 2 contact directories in 114ms
01-30 13:28:20.928   591   935 D ShortcutService: rescanPackageIfNeeded [email protected], forceRescan=false , isNewApp=false
01-30 13:28:20.938 14116 14163 I Safetyhub.GmsAccounts: GMSCore Auth returned 1 accounts.
01-30 13:28:20.938 14116 14163 I Safetyhub.GmsAccounts: GoogleOwnersProvider returned 1 accounts.
01-30 13:28:20.953   591   935 D ShortcutService: rescanPackageIfNeeded [email protected], forceRescan=false , isNewApp=false
01-30 13:28:20.954  6160 12102 I GnpSdk  : (REDACTED) Finished Broadcast execution [%d].
01-30 13:28:20.956 12256 13135 I OtherContactsProvider: handle returning directory metadata
01-30 13:28:20.956  6160  6160 I exxv    : DeviceAccountsChangedReceiver#onReceive
01-30 13:28:20.956  6160  6195 I elwy    : (REDACTED) %s TNG App is logging Clearcut event named %s with the %s account state and %s source
01-30 13:28:20.962 12168 12669 W ContentResolver: Failed to get type for: content://com.android.calendar (Unknown URL content://com.android.calendar)
01-30 13:28:20.985 12966 13014 W miq     : [Hub Libraries] LoggingHelper: Deleted account notification channel group.
01-30 13:28:20.985 12256 13135 I SdnProvider: Creating directory cursor
01-30 13:28:20.990  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync start
01-30 13:28:20.990  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync before invalidate
01-30 13:28:20.992 14116 14163 I Safetyhub.GmsAccounts: GMSCore Auth returned 1 accounts.
01-30 13:28:20.992 14116 14163 I Safetyhub.GmsAccounts: GoogleOwnersProvider returned 1 accounts.
01-30 13:28:20.998  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync after invalidate
01-30 13:28:20.998  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync after notifyLocalStateChange
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: An unhandled exception was thrown by the app.
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at dagger.hilt.android.internal.testing.TestApplicationComponentManager.generatedComponent(TestApplicationComponentManager.java:96)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at dagger.hilt.android.testing.HiltTestApplication.generatedComponent(HiltTestApplication.java:50)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at dagger.hilt.EntryPoints.get(EntryPoints.java:59)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.createComponent(ServiceComponentManager.java:70)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.generatedComponent(ServiceComponentManager.java:58)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at at.bitfire.davdroid.sync.Hilt_ContactsSyncAdapterService.generatedComponent(Hilt_ContactsSyncAdapterService.java:54)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at at.bitfire.davdroid.sync.Hilt_ContactsSyncAdapterService.inject(Hilt_ContactsSyncAdapterService.java:48)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at at.bitfire.davdroid.sync.Hilt_ContactsSyncAdapterService.onCreate(Hilt_ContactsSyncAdapterService.java:25)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4977)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at android.os.Handler.dispatchMessage(Handler.java:107)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at android.os.Looper.loopOnce(Looper.java:232)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at android.os.Looper.loop(Looper.java:317)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at android.app.ActivityThread.main(ActivityThread.java:8705)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at java.lang.reflect.Method.invoke(Native Method)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-30 13:28:20.998 14732 14732 W AndroidJUnitRunner: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-30 13:28:21.001 14732 14732 D AndroidJUnitRunner: Reporting the crash to an event service.
01-30 13:28:21.001 14732 14732 W TestEventClient: Process crashed before connection to orchestrator
01-30 13:28:21.001 14732 14732 I AndroidJUnitRunner: Bringing down the entire Instrumentation process.
01-30 13:28:21.002  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync after work scheduled
01-30 13:28:21.004 14732 14732 E MonitoringInstr: Exception encountered by: at.bitfire.davdroid.sync.ContactsSyncAdapterService@6975b6a. Dumping thread state to outputs and pining for the fjords.
01-30 13:28:21.004 14732 14732 E MonitoringInstr: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at dagger.hilt.android.internal.testing.TestApplicationComponentManager.generatedComponent(TestApplicationComponentManager.java:96)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at dagger.hilt.android.testing.HiltTestApplication.generatedComponent(HiltTestApplication.java:50)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at dagger.hilt.EntryPoints.get(EntryPoints.java:59)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.createComponent(ServiceComponentManager.java:70)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.generatedComponent(ServiceComponentManager.java:58)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_ContactsSyncAdapterService.generatedComponent(Hilt_ContactsSyncAdapterService.java:54)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_ContactsSyncAdapterService.inject(Hilt_ContactsSyncAdapterService.java:48)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_ContactsSyncAdapterService.onCreate(Hilt_ContactsSyncAdapterService.java:25)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4977)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at android.os.Handler.dispatchMessage(Handler.java:107)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at android.os.Looper.loopOnce(Looper.java:232)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at android.os.Looper.loop(Looper.java:317)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at android.app.ActivityThread.main(ActivityThread.java:8705)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at java.lang.reflect.Method.invoke(Native Method)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-30 13:28:21.004 14732 14732 E MonitoringInstr: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-30 13:28:21.008  2413  2413 I GnpSdk  : Intent received for action [android.accounts.LOGIN_ACCOUNTS_CHANGED] package [com.google.android.apps.messaging].
01-30 13:28:21.008  2413  2413 I GnpSdk  : Phenotype initialized.
01-30 13:28:21.008  2413  2413 I GnpSdk  : Validation OK for action [android.accounts.LOGIN_ACCOUNTS_CHANGED].
01-30 13:28:21.008  2413  2413 I GnpSdk  : Submitting Broadcast execution [152702619] to tiktok executor.
01-30 13:28:21.010  6160  6187 I exyo    : (REDACTED) GMSCore Auth returned %d accounts.
01-30 13:28:21.010  6160  6187 I exyo    : (REDACTED) GoogleOwnersProvider returned %d accounts.
01-30 13:28:21.017   591   670 D ShortcutService: rescanPackageIfNeeded [email protected], forceRescan=false , isNewApp=false
01-30 13:28:21.023   591   602 I system_server: Background concurrent mark compact GC freed 24MB AllocSpace bytes, 16(464KB) LOS objects, 40% free, 35MB/59MB, paused 4.122ms,2.014ms total 218.990ms
01-30 13:28:21.024 12256 13135 I OtherContactsProvider: handle returning directory metadata
01-30 13:28:21.029 14732 14732 E THREAD_STATE:   Thread[binder:14732_1,5,main]

@rfc2822
Copy link
Member Author

rfc2822 commented Jan 30, 2025

Another run crashes in Hilt_OpenTasksSyncAdapterService:

01-30 13:38:08.324 16435 16451 I TestRunner: started: testUpdate_RunAllMigrations(at.bitfire.davdroid.settings.AccountSettingsTest)
01-30 13:38:08.325  1066  1066 I Multidevice: [cbtz] Updated accounts sent. [CONTEXT service_id=348 ]
01-30 13:38:08.328 16435 16451 D WM-ForceStopRunnable: The default process name was not specified.
01-30 13:38:08.328 16435 16451 D WM-ForceStopRunnable: Performing cleanup operations.
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: An unhandled exception was thrown by the app.
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at dagger.hilt.android.internal.testing.TestApplicationComponentManager.generatedComponent(TestApplicationComponentManager.java:96)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at dagger.hilt.android.testing.HiltTestApplication.generatedComponent(HiltTestApplication.java:50)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at dagger.hilt.EntryPoints.get(EntryPoints.java:59)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.createComponent(ServiceComponentManager.java:70)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.generatedComponent(ServiceComponentManager.java:58)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.generatedComponent(Hilt_OpenTasksSyncAdapterService.java:54)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.inject(Hilt_OpenTasksSyncAdapterService.java:48)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.onCreate(Hilt_OpenTasksSyncAdapterService.java:25)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4977)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at android.os.Handler.dispatchMessage(Handler.java:107)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at android.os.Looper.loopOnce(Looper.java:232)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at android.app.ActivityThread.main(ActivityThread.java:8705)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at java.lang.reflect.Method.invoke(Native Method)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-30 13:38:08.330 16435 16435 W AndroidJUnitRunner: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-30 13:38:08.333 16435 16435 D AndroidJUnitRunner: Reporting the crash to an event service.
01-30 13:38:08.333 16435 16435 W TestEventClient: Process crashed before connection to orchestrator
01-30 13:38:08.333 16435 16435 I AndroidJUnitRunner: Bringing down the entire Instrumentation process.
01-30 13:38:08.334 12256 12256 I GnpSdk  : Intent received for action [android.accounts.LOGIN_ACCOUNTS_CHANGED] package [com.google.android.contacts].
01-30 13:38:08.337 12256 12256 I GnpSdk  : Phenotype initialized.
01-30 13:38:08.337 12256 12256 I GnpSdk  : Validation OK for action [android.accounts.LOGIN_ACCOUNTS_CHANGED].
01-30 13:38:08.337  2413 15430 I GnpSdk  : Finished Broadcast execution [237006962].
01-30 13:38:08.338 16435 16435 E MonitoringInstr: Exception encountered by: at.bitfire.davdroid.sync.OpenTasksSyncAdapterService@1f5fa98. Dumping thread state to outputs and pining for the fjords.
01-30 13:38:08.338 16435 16435 E MonitoringInstr: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at dagger.hilt.android.internal.testing.TestApplicationComponentManager.generatedComponent(TestApplicationComponentManager.java:96)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at dagger.hilt.android.testing.HiltTestApplication.generatedComponent(HiltTestApplication.java:50)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at dagger.hilt.EntryPoints.get(EntryPoints.java:59)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.createComponent(ServiceComponentManager.java:70)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.generatedComponent(ServiceComponentManager.java:58)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.generatedComponent(Hilt_OpenTasksSyncAdapterService.java:54)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.inject(Hilt_OpenTasksSyncAdapterService.java:48)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.onCreate(Hilt_OpenTasksSyncAdapterService.java:25)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4977)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at android.os.Handler.dispatchMessage(Handler.java:107)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at android.os.Looper.loopOnce(Looper.java:232)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at android.app.ActivityThread.main(ActivityThread.java:8705)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at java.lang.reflect.Method.invoke(Native Method)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-30 13:38:08.338 16435 16435 E MonitoringInstr: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-30 13:38:08.343  2413  2980 I InvalidateAndScheduleSy: InvalidateAndScheduleSync start
01-30 13:38:08.343  2413  2980 I InvalidateAndScheduleSy: InvalidateAndScheduleSync before invalidate
01-30 13:38:08.344  2413  2413 I GnpSdk  : Intent received for action [android.accounts.LOGIN_ACCOUNTS_CHANGED] package [com.google.android.apps.messaging].
01-30 13:38:08.344  2413  2413 I GnpSdk  : Phenotype initialized.
01-30 13:38:08.344  2413  2413 I GnpSdk  : Validation OK for action [android.accounts.LOGIN_ACCOUNTS_CHANGED].
01-30 13:38:08.344  2413  2413 I GnpSdk  : Submitting Broadcast execution [232470892] to tiktok executor.
01-30 13:38:08.347  2413 15430 I GnpSdk  : Executing action in BroadcastReceiver [android.accounts.LOGIN_ACCOUNTS_CHANGED].
01-30 13:38:08.350  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync after invalidate
01-30 13:38:08.351  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync after notifyLocalStateChange
01-30 13:38:08.350 16435 16435 E THREAD_STATE:   Thread[Profile Saver,5,system]
01-30 13:38:08.350 16435 16435 E THREAD_STATE:
01-30 13:38:08.350 16435 16435 E THREAD_STATE:   Thread[main,5,main]
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     dalvik.system.VMStack.getThreadStackTrace(Native Method)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Thread.getStackTrace(Thread.java:1841)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Thread.getAllStackTraces(Thread.java:1909)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     androidx.test.runner.MonitoringInstrumentation.getThreadState(MonitoringInstrumentation.java:735)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     androidx.test.runner.MonitoringInstrumentation.dumpThreadStateToOutputs(MonitoringInstrumentation.java:730)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     androidx.test.runner.MonitoringInstrumentation.onException(MonitoringInstrumentation.java:724)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     androidx.test.runner.AndroidJUnitRunner.onException(AndroidJUnitRunner.java:639)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.app.ActivityThread.handleCreateService(ActivityThread.java:4987)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.os.Handler.dispatchMessage(Handler.java:107)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.os.Looper.loopOnce(Looper.java:232)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.app.ActivityThread.main(ActivityThread.java:8705)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.reflect.Method.invoke(Native Method)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:
01-30 13:38:08.350 16435 16435 E THREAD_STATE:   Thread[MockWebServer 39155,5,main]
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     libcore.io.Linux.poll(Native Method)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     libcore.io.BlockGuardOs.poll(BlockGuardOs.java:283)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     android.system.Os.poll(Os.java:531)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     libcore.io.IoBridge.poll(IoBridge.java:864)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:194)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:451)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.ServerSocket.implAccept(ServerSocket.java:569)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.ServerSocket.accept(ServerSocket.java:537)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.acceptConnections(MockWebServer.kt:425)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.access$acceptConnections(MockWebServer.kt:101)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$start$$inlined$execute$default$1.runOnce(TaskQueue.kt:221)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:
01-30 13:38:08.350 16435 16435 E THREAD_STATE:   Thread[MockWebServer /127.0.0.1:47322,5,main]
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead0(Native Method)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead(SocketInputStream.java:118)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:173)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:143)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okio.InputStreamSource.read(JvmOkio.kt:93)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:128)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okio.RealBufferedSource.exhausted(RealBufferedSource.kt:200)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.processOneRequest(MockWebServer.kt:589)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.handle(MockWebServer.kt:552)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$serveConnection$$inlined$execute$default$1.runOnce(TaskQueue.kt:220)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:
01-30 13:38:08.350 16435 16435 E THREAD_STATE:   Thread[FinalizerWatchdogDaemon,5,system]
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Thread.sleep(Native Method)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Thread.sleep(Thread.java:450)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Thread.sleep(Thread.java:355)
01-30 13:38:08.350 16435 16435 E THREAD_STATE:     java.lang.Daemons$FinalizerWatchdogDaemon.sleepForNanos(Daemons.java:517)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Daemons$FinalizerWatchdogDaemon.waitForProgress(Daemons.java:580)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:448)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Daemons$Daemon.run(Daemons.java:131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[MockWebServer /127.0.0.1:56436,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead0(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead(SocketInputStream.java:118)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:173)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:143)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.InputStreamSource.read(JvmOkio.kt:93)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:128)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.RealBufferedSource.exhausted(RealBufferedSource.kt:200)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.processOneRequest(MockWebServer.kt:589)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.handle(MockWebServer.kt:552)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$serveConnection$$inlined$execute$default$1.runOnce(TaskQueue.kt:220)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_3,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[OkHttp TaskRunner,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[InstrumentationConnectionThread,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.MessageQueue.nativePollOnce(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.MessageQueue.next(MessageQueue.java:346)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.Looper.loopOnce(Looper.java:189)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.HandlerThread.run(HandlerThread.java:85)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[Signal Catcher,10,system]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_5,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[ReferenceQueueDaemon,5,system]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Object.wait(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Object.wait(Object.java:405)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Object.wait(Object.java:543)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:251)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Daemons$Daemon.run(Daemons.java:131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[MockWebServer 33389,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.Linux.poll(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.BlockGuardOs.poll(BlockGuardOs.java:283)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.system.Os.poll(Os.java:531)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.IoBridge.poll(IoBridge.java:864)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:194)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:451)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.ServerSocket.implAccept(ServerSocket.java:569)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.ServerSocket.accept(ServerSocket.java:537)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.acceptConnections(MockWebServer.kt:425)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.access$acceptConnections(MockWebServer.kt:101)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$start$$inlined$execute$default$1.runOnce(TaskQueue.kt:221)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[queued-work-looper,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.MessageQueue.nativePollOnce(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.MessageQueue.next(MessageQueue.java:346)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.Looper.loopOnce(Looper.java:189)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.HandlerThread.run(HandlerThread.java:85)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_8,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_6,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_2,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[OkHttp TaskRunner,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Object.wait(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$RealBackend.coordinatorWait(TaskRunner.kt:294)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.awaitTaskToRun(TaskRunner.kt:218)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:59)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[DefaultDispatcher-worker-1,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:855)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:803)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:751)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[MockWebServer /127.0.0.1:38778,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead0(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead(SocketInputStream.java:118)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:173)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:143)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.InputStreamSource.read(JvmOkio.kt:93)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:128)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.RealBufferedSource.exhausted(RealBufferedSource.kt:200)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.processOneRequest(MockWebServer.kt:589)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.handle(MockWebServer.kt:552)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$serveConnection$$inlined$execute$default$1.runOnce(TaskQueue.kt:220)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[OkHttp TaskRunner,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[arch_disk_io_3,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3466)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3437)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1071)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_7,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[UiAutomation,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.MessageQueue.nativePollOnce(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.MessageQueue.next(MessageQueue.java:346)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.Looper.loopOnce(Looper.java:189)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.os.HandlerThread.run(HandlerThread.java:85)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_1,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[Instr: at.bitfire.davdroid.HiltTestRunner,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:926)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:780)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:67)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:2207)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:2126)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.sqlite.db.framework.FrameworkSQLiteDatabase.execSQL(FrameworkSQLiteDatabase.kt:246)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.WorkDatabase_Impl$1.createAllTables(WorkDatabase_Impl.java:73)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.room.RoomOpenHelper.onCreate(RoomOpenHelper.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onCreate(FrameworkSQLiteOpenHelper.kt:244)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:410)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:177)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:632)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:451)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.model.SystemIdInfoDao_Impl.getWorkSpecIds(SystemIdInfoDao_Impl.java:156)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.background.systemjob.SystemJobScheduler.reconcileJobs(SystemJobScheduler.java:313)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.utils.ForceStopRunnable.cleanUp(ForceStopRunnable.java:291)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.utils.ForceStopRunnable.forceStopRunnable(ForceStopRunnable.java:254)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:136)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.testing.SynchronousSerialExecutor.execute(SynchronousSerialExecutor.kt:38)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.utils.taskexecutor.TaskExecutor.executeOnTaskThread(TaskExecutor.java:46)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:260)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.WorkManagerImplExtKt.createWorkManager(WorkManagerImplExt.kt:58)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.impl.WorkManagerImplExtKt.createWorkManager$default(WorkManagerImplExt.kt:33)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.testing.TestWorkManagerImplKt.createTestWorkManagerImpl(TestWorkManagerImpl.kt:47)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.testing.WorkManagerTestInitHelper.initializeTestWorkManager(WorkManagerTestInitHelper.java:130)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.work.testing.WorkManagerTestInitHelper.initializeTestWorkManager(WorkManagerTestInitHelper.java:63)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     at.bitfire.davdroid.TestUtils.setUpWorkManager(TestUtils.kt:35)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     at.bitfire.davdroid.TestUtils.setUpWorkManager$default(TestUtils.kt:31)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     at.bitfire.davdroid.settings.AccountSettingsTest.setUp(AccountSettingsTest.kt:36)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.reflect.Method.invoke(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.test.internal.runner.junit4.statement.RunBefores.evaluate(RunBefores.java:76)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     dagger.hilt.android.internal.testing.MarkThatRulesRanRule$1.evaluate(MarkThatRulesRanRule.java:108)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner.run(ParentRunner.java:413)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.Suite.runChild(Suite.java:128)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.Suite.runChild(Suite.java:27)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runners.ParentRunner.run(ParentRunner.java:413)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runner.JUnitCore.run(JUnitCore.java:137)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.junit.runner.JUnitCore.run(JUnitCore.java:115)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:68)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:463)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2594)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[OkHttp TaskRunner,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[binder:16435_4,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[OkHttp icloud.com,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead0(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead(SocketInputStream.java:118)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:173)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:143)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:920)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:884)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:799)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:772)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.InputStreamSource.read(JvmOkio.kt:93)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:128)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.RealBufferedSource.request(RealBufferedSource.kt:209)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.RealBufferedSource.require(RealBufferedSource.kt:202)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.kt:89)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.kt:618)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.kt:609)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskQueue$execute$1.runOnce(TaskQueue.kt:98)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[MockWebServer /127.0.0.1:54714,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead0(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.socketRead(SocketInputStream.java:118)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:173)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.SocketInputStream.read(SocketInputStream.java:143)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.InputStreamSource.read(JvmOkio.kt:93)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:128)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.RealBufferedSource.exhausted(RealBufferedSource.kt:200)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.processOneRequest(MockWebServer.kt:589)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$SocketHandler.handle(MockWebServer.kt:552)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$serveConnection$$inlined$execute$default$1.runOnce(TaskQueue.kt:220)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[arch_disk_io_1,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3466)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3437)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1071)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[DefaultDispatcher-worker-2,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:855)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:803)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:751)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[FinalizerDaemon,5,system]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Object.wait(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Object.wait(Object.java:405)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:207)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:228)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:331)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Daemons$Daemon.run(Daemons.java:131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[DefaultDispatcher-worker-3,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:855)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:803)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:751)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[Jit thread pool worker thread 0,5,system]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[Okio Watchdog,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1757)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.AsyncTimeout$Companion.awaitTimeout$okio(AsyncTimeout.kt:320)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okio.AsyncTimeout$Watchdog.run(AsyncTimeout.kt:186)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[arch_disk_io_0,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3466)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3437)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1071)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[HeapTaskDaemon,5,system]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[arch_disk_io_2,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     jdk.internal.misc.Unsafe.park(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3466)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3437)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1071)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[MockWebServer 47501,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.Linux.poll(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.BlockGuardOs.poll(BlockGuardOs.java:283)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.system.Os.poll(Os.java:531)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.IoBridge.poll(IoBridge.java:864)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:194)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:451)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.ServerSocket.implAccept(ServerSocket.java:569)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.ServerSocket.accept(ServerSocket.java:537)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.acceptConnections(MockWebServer.kt:425)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.access$acceptConnections(MockWebServer.kt:101)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$start$$inlined$execute$default$1.runOnce(TaskQueue.kt:221)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.351 16435 16435 E THREAD_STATE:   Thread[MockWebServer 33341,5,main]
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.Linux.poll(Native Method)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.BlockGuardOs.poll(BlockGuardOs.java:283)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.ForwardingOs.poll(ForwardingOs.java:573)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     android.system.Os.poll(Os.java:531)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     libcore.io.IoBridge.poll(IoBridge.java:864)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:194)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:451)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.ServerSocket.implAccept(ServerSocket.java:569)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.net.ServerSocket.accept(ServerSocket.java:537)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.acceptConnections(MockWebServer.kt:425)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer.access$acceptConnections(MockWebServer.kt:101)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.mockwebserver.MockWebServer$start$$inlined$execute$default$1.runOnce(TaskQueue.kt:221)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:     java.lang.Thread.run(Thread.java:1012)
01-30 13:38:08.351 16435 16435 E THREAD_STATE:
01-30 13:38:08.352 16435 16435 E MonitoringInstr: Dying now...
01-30 13:38:08.353 12256 15469 I GnpSdk  : Started Broadcast execution [206].
01-30 13:38:08.353 16435 16435 D AndroidRuntime: Shutting down VM
01-30 13:38:08.356 16435 16451 D WM-PackageManagerHelper: Skipping component enablement for androidx.work.impl.background.systemalarm.RescheduleReceiver
--------- beginning of crash
01-30 13:38:08.357 16435 16435 E AndroidRuntime: FATAL EXCEPTION: main
01-30 13:38:08.357 16435 16435 E AndroidRuntime: Process: at.bitfire.davdroid, PID: 16435
01-30 13:38:08.357 16435 16435 E AndroidRuntime: java.lang.RuntimeException: Unable to create service at.bitfire.davdroid.sync.OpenTasksSyncAdapterService: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4990)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:107)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:232)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:8705)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: Caused by: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at dagger.hilt.android.internal.testing.TestApplicationComponentManager.generatedComponent(TestApplicationComponentManager.java:96)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at dagger.hilt.android.testing.HiltTestApplication.generatedComponent(HiltTestApplication.java:50)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at dagger.hilt.EntryPoints.get(EntryPoints.java:59)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.createComponent(ServiceComponentManager.java:70)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.generatedComponent(ServiceComponentManager.java:58)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.generatedComponent(Hilt_OpenTasksSyncAdapterService.java:54)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.inject(Hilt_OpenTasksSyncAdapterService.java:48)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.onCreate(Hilt_OpenTasksSyncAdapterService.java:25)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4977)
01-30 13:38:08.357 16435 16435 E AndroidRuntime: 	... 9 more
01-30 13:38:08.357 16435 16435 D MonitoringInstr: Handling an uncaught exception thrown on the thread main.
01-30 13:38:08.357 16435 16435 D MonitoringInstr: java.lang.RuntimeException: Unable to create service at.bitfire.davdroid.sync.OpenTasksSyncAdapterService: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4990)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.os.Handler.dispatchMessage(Handler.java:107)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.os.Looper.loopOnce(Looper.java:232)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.os.Looper.loop(Looper.java:317)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.app.ActivityThread.main(ActivityThread.java:8705)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at java.lang.reflect.Method.invoke(Native Method)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: Caused by: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at dagger.hilt.android.internal.testing.TestApplicationComponentManager.generatedComponent(TestApplicationComponentManager.java:96)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at dagger.hilt.android.testing.HiltTestApplication.generatedComponent(HiltTestApplication.java:50)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at dagger.hilt.EntryPoints.get(EntryPoints.java:59)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.createComponent(ServiceComponentManager.java:70)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at dagger.hilt.android.internal.managers.ServiceComponentManager.generatedComponent(ServiceComponentManager.java:58)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.generatedComponent(Hilt_OpenTasksSyncAdapterService.java:54)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.inject(Hilt_OpenTasksSyncAdapterService.java:48)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.onCreate(Hilt_OpenTasksSyncAdapterService.java:25)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4977)
01-30 13:38:08.357 16435 16435 D MonitoringInstr: 	... 9 more
01-30 13:38:08.358 16435 16435 D AndroidJUnitRunner: We've already handled this exception java.lang.IllegalStateException. Ignoring.
01-30 13:38:08.358   591  1877 V AccountManagerService: addAccountExplicitly: caller's uid=10419, pid=16435, packageName=at.bitfire.davdroid, accountType=bitfire.at.davdroid
01-30 13:38:08.358  2413  2793 I InvalidateAndScheduleSy: InvalidateAndScheduleSync after work scheduled
01-30 13:38:08.364 16435 16435 W MonitoringInstr: Invoking default uncaught exception handler com.android.internal.os.RuntimeInit$KillApplicationHandler@4bc0a2f (a class com.android.internal.os.RuntimeInit$KillApplicationHandler)
01-30 13:38:08.364 12256 15469 I GnpSdk  : Executing action in BroadcastReceiver [android.accounts.LOGIN_ACCOUNTS_CHANGED].
01-30 13:38:08.369  2413  2413 I GnpSdk  : Finished Broadcast execution [232470892].

java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)
at dagger.hilt.android.internal.testing.TestApplicationComponentManager.generatedComponent(TestApplicationComponentManager.java:96)
at dagger.hilt.android.testing.HiltTestApplication.generatedComponent(HiltTestApplication.java:50)
at dagger.hilt.EntryPoints.get(EntryPoints.java:59)
at dagger.hilt.android.internal.managers.ServiceComponentManager.createComponent(ServiceComponentManager.java:70)
at dagger.hilt.android.internal.managers.ServiceComponentManager.generatedComponent(ServiceComponentManager.java:58)
at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.generatedComponent(Hilt_OpenTasksSyncAdapterService.java:54)
at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.inject(Hilt_OpenTasksSyncAdapterService.java:48)
at at.bitfire.davdroid.sync.Hilt_OpenTasksSyncAdapterService.onCreate(Hilt_OpenTasksSyncAdapterService.java:25)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:4977)
at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8705)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)

@rfc2822
Copy link
Member Author

rfc2822 commented Feb 1, 2025

And again:

 Starting 170 tests on virtual

virtual Tests 93/170 completed. (0 skipped) (0 failed)

> Task :app:virtualOseDebugAndroidTest

at.bitfire.davdroid.sync.account.AccountsCleanupWorkerTest > testCleanUpServices_oneAccount[virtual] FAILED 
	java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
		at dagger.hilt.internal.Preconditions.checkState(Preconditions.java:83)

virtual Tests 130/170 completed. (0 skipped) (1 failed)
Finished 130 tests on virtual

> Task :app:virtualOseDebugAndroidTest
Tests on virtual failed: There was 1 failure(s).
Test run failed to complete. Instrumentation run failed due to Process crashed.
Logcat of last crash: 
Process: at.bitfire.davdroid, PID: 1906
java.lang.RuntimeException: Unable to create service at.bitfire.davdroid.sync.ContactsSyncAdapterService: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.
	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4664)
	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2264)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:205)
	at android.os.Looper.loop(Looper.java:294)
	at android.app.ActivityThread.main(ActivityThread.java:8177)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

@rfc2822 rfc2822 mentioned this issue Feb 1, 2025
5 tasks
@rfc2822
Copy link
Member Author

rfc2822 commented Feb 3, 2025

I think this is a bit an unwanted issue 😄 But we need reliable tests.

When I run the current instrumentation tests locally on an (Android 15) emulator, every second time (or so) they fail. So it's quite reproducible.

Does that happen for you too? @ArnyminerZ @sunkup

@sunkup
Copy link
Member

sunkup commented Feb 4, 2025

Does that happen for you too? @ArnyminerZ @sunkup

It does actually - but only on the Android 15 preview emulator. I can't get it to fail on the non-preview Android 15 emulator.

@rfc2822
Copy link
Member Author

rfc2822 commented Feb 4, 2025

Replaced our real SyncAdapter with a fake SyncAdapter that only prints why it was called:

    override fun onBind(intent: Intent?): IBinder {
        //return syncAdapter.get().syncAdapterBinder

        val fakeAdapter = object: AbstractThreadedSyncAdapter(this, false) {
            override fun onPerformSync(
                account: Account,
                extras: Bundle,
                authority: String,
                provider: ContentProviderClient,
                syncResult: SyncResult
            ) {
                logger.warning("fakeSyncAdapter onPerformSync(account=$account, extras=$extras, authority=$authority, syncResult=$syncResult)")
                for (key in extras.keySet())
                    logger.warning("\textras[$key] = ${extras[key]}")
                throw NotImplementedError()
            }
        }
        return fakeAdapter.syncAdapterBinder
    }

Got again contacts and calendar sync adapters and they always have extras[initialize] = true. Perhaps the problem is related to this initialization.

16:44:56.360 24529-24931 global                          W  fakeSyncAdapter onPerformSync(account=Account {name=Test Account, type=bitfire.at.davdroid}, extras=Bundle[mParcelledData.dataSize=40], authority=com.android.calendar, syncResult=SyncResult: stats [])
16:44:56.361 24529-24931 global                          W  	extras[initialize] = true

@rfc2822 rfc2822 linked a pull request Feb 4, 2025 that will close this issue
@rfc2822 rfc2822 self-assigned this Feb 5, 2025
@rfc2822 rfc2822 linked a pull request Feb 6, 2025 that will close this issue
@github-project-automation github-project-automation bot moved this from Todo to Done in DAVx⁵ Releases Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment