Crash on GMS update
Intra crashes if there's a relevant systemwide GMS update. The logs show
ChimeraModuleLdr: Module config changed, forcing restart due to module com.google.android.gms.flags Process : Sending signal. PID: 10926 SIG: 9 ... ActivityManager: Service done with onDestroy, but not inDestroying: ServiceRecord{7f1640d u0 com.google.android.gms/.icing.service.AppIndexingService}, app=ProcessRecord{ca2b025 0:com.google.android.gms/u0a22} ... lowmemorykiller: Error writing /proc/10926/oom_score_adj; errno=22 ActivityManager: Exception when unbinding service app.intra/.DnsVpnService ActivityManager: android.os.DeadObjectException ActivityManager: at android.os.BinderProxy.transactNative(Native Method) ActivityManager: at android.os.BinderProxy.transact(Binder.java:1127) ActivityManager: at android.app.IApplicationThread$Stub$Proxy.scheduleUnbindService(IApplicationThread.java:1100) ActivityManager: at com.android.server.am.ActiveServices.removeConnectionLocked(ActiveServices.java:2894) ActivityManager: at com.android.server.am.ActiveServices.unbindServiceLocked(ActiveServices.java:1758) ActivityManager: at com.android.server.am.ActivityManagerService.unbindService(ActivityManagerService.java:20538) ActivityManager: at android.app.ContextImpl.unbindService(ContextImpl.java:1695) ActivityManager: at com.android.server.connectivity.Vpn$3.interfaceRemoved(Vpn.java:1417) ActivityManager: at com.android.server.NetworkManagementService.lambda$notifyInterfaceRemoved$3(NetworkManagementService.java:482) ActivityManager: at com.android.server.-$$Lambda$NetworkManagementService$FsR_UD5xfj4hgrwGdX74wq881Bk.sendCallback(Unknown Source:2) ActivityManager: at com.android.server.NetworkManagementService.invokeForAllObservers(NetworkManagementService.java:442) ActivityManager: at com.android.server.NetworkManagementService.notifyInterfaceRemoved(NetworkManagementService.java:482) ActivityManager: at com.android.server.NetworkManagementService.access$700(NetworkManagementService.java:137) ActivityManager: at com.android.server.NetworkManagementService$NetdCallbackReceiver.onEvent(NetworkManagementService.java:821) ActivityManager: at com.android.server.NativeDaemonConnector.handleMessage(NativeDaemonConnector.java:160) ActivityManager: at android.os.Handler.dispatchMessage(Handler.java:102) ActivityManager: at android.os.Looper.loop(Looper.java:193) ActivityManager: at android.os.HandlerThread.run(HandlerThread.java:65) ActivityManager: at com.android.server.ServiceThread.run(ServiceThread.java:44) Vpn : setting state=DISCONNECTED, reason=agentDisconnect ConnectivityService: NetworkAgentInfo [VPN () - 142] EVENT_NETWORK_INFO_CHANGED, going from CONNECTED to DISCONNECTED ConnectivityService: NetworkAgentInfo [VPN () - 142] got DISCONNECTED, was satisfying 9 0
It looks like GMS does "kill -9" on all affected apps before an update. Most apps restart after the update completes, but this doesn't appear to apply to our foreground service.
GMS updates are relatively infrequent (~once a month) but this is still unfortunate and worth investigating.
The appearance of lowmemorykiller in the logs is interesting, but it may just indicate a cleanup operation that is failing because the process no longer exists after kill -9. Similarly, the DeadObjectException likely indicates that the system is trying to notify Intra that the VPN has been disconnected, but Intra is no longer running.