I have:
Signal crashes with all it's services randomly and doens't recover from this until I manually run the app.
This is very difficult because i don't know when it crashed and it seems to be random
Actual result: Signal is not running with all it's services. Which made me think that signal has problems with message retrieval. (see: https://github.com/WhisperSystems/Signal-Android/issues/5452)
Expected result: Signal should run normally.
Device: Vodafone 890N
Android version: 4.4.4
Signal version: 3.15.2
https://gist.github.com/towlie/0807777c9c51d3593157afe905104bc6
About the xprivacy stuff, Signal is fully whitelisted there like the google apps.
Unfortunately there's no crash in that log.
But it's probably pretty hard to catch it if it happens during a 6 hour time period. I guess you could keep your phone connected to your computer and use adb logcat with some filters.
I will try that with "catlog" by filtering error events only.
I saw that signal runs two different services. Is it normal that one of them gets closed over some time? Today I saw that signal was only running one service (keycaching) and messageretrieval was missing until I opened signal.
Is it normal that one of them gets closed over some time?
I don't think it is. Make sure you don't have any battery optimizations, firewalls or other stuff that might interfere or kill processes.
Oh it wasn't the retrieval service it was the keycaching service. I disabled all optimizations. I cannot imagine which app could interfere because there are other apps running fine like whatsapp.
This is what I got last night. https://gist.github.com/towlie/a851729d68b3e7e008c846970e4b42cf
The Keycaching Service did not recover. But doesn seem to influence Signal.
Could you also try to catch the exception that makes it crash?
I guess you could filter with strings:
at org.thoughtcrime
at org.whispersystems
exception
with case ignored.
(Maybe logcat even has some built-in feature to do that, don't know)
Totally normal for Android to stop all running services for an app. If there's any kind of memory pressure at all, that's how Android responds. We run the KeyCachingService as a "foreground service" when you have a password set, but even that can be stopped by Android if it decides to. This has no effect on whether the app is able to retrieve messages or not.
The only thing that should have any effect is if you (or any task killer app) "force stops" Signal. That will prevent the system from delivering GCM events to the app.
I will try to catch this complete crash then. If it occurs again.
Edit:
And if this is caused by android itself then I wonder why signal doesn't / didn't restart.
All I could see is this. So no exception.
Is there a better way to find the cause?
05-10 14:33:20.117 I/ActivityManager(978): Process org.thoughtcrime.securesms (pid 4455) has died.
05-10 14:33:20.117 W/ActivityManager(978): Scheduling restart of crashed service org.thoughtcrime.securesms/.service.MessageRetrievalService in 1000ms
05-10 14:33:20.117 W/ActivityManager(978): Scheduling restart of crashed service org.thoughtcrime.securesms/.service.KeyCachingService in 11000ms
05-10 14:33:21.147 I/ActivityManager(978): Start proc org.thoughtcrime.securesms for service org.thoughtcrime.securesms/.service.MessageRetrievalService: pid=13103 uid=10111 gids={50111, 3003, 1028, 1015, 3002}
Most helpful comment
Totally normal for Android to stop all running services for an app. If there's any kind of memory pressure at all, that's how Android responds. We run the KeyCachingService as a "foreground service" when you have a password set, but even that can be stopped by Android if it decides to. This has no effect on whether the app is able to retrieve messages or not.
The only thing that should have any effect is if you (or any task killer app) "force stops" Signal. That will prevent the system from delivering GCM events to the app.