Phone rebooting when mobile network is unreachable

FloatingPoint

Member
Jun 10, 2015
43
4
0
Recently, an Xperia M2 of ours started to reboot from time to time. It seems to be related to disconnects from mobile network:
  • When no SIM card was inserted, reboots occured every few minutes
  • Also when signal is weak, the phone reboots every few minutes
  • Turning mobile data on/off also causes crashes sometimes
  • Yesterday, the phone rebooted exactly every 30 minutes while mobile data was turned on
The phone is running the latest stock firmware. Here's the relevant part of the log:
--------- beginning of crash

08-29 15:25:50.163 E/AndroidRuntime( 770): *** FATAL EXCEPTION IN SYSTEM PROCESS: NetworkStats

08-29 15:25:50.163 E/AndroidRuntime( 770): java.lang.RuntimeException: Error receiving broadcast Intent { act=com.android.server.action.NETWORK_STATS_POLL flg=0x14 (has extras) } in [email protected]

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:882)

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.os.Handler.handleCallback(Handler.java:739)

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.os.Handler.dispatchMessage(Handler.java:95)

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.os.Looper.loop(Looper.java:211)

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.os.HandlerThread.run(HandlerThread.java:61)

08-29 15:25:50.163 E/AndroidRuntime( 770): Caused by: java.lang.IllegalArgumentException: tried recording negative data

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.net.NetworkStatsHistory.recordData(NetworkStatsHistory.java:304)

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.net.NetworkStatsHistory.recordHistory(NetworkStatsHistory.java:377)

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.net.NetworkStatsHistory.recordEntireHistory(NetworkStatsHistory.java:353)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsCollection.recordHistory(NetworkStatsCollection.java:224)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsCollection.read(NetworkStatsCollection.java:288)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsCollection.read(NetworkStatsCollection.java:262)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsRecorder$CombiningRewriter.read(NetworkStatsRecorder.java:303)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.internal.util.FileRotator.readFile(FileRotator.java:372)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.internal.util.FileRotator.rewriteSingle(FileRotator.java:242)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.internal.util.FileRotator.rewriteActive(FileRotator.java:184)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsRecorder.forcePersistLocked(NetworkStatsRecorder.java:240)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsRecorder.maybePersistLocked(NetworkStatsRecorder.java:227)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:971)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:914)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsService.access$600(NetworkStatsService.java:136)

08-29 15:25:50.163 E/AndroidRuntime( 770): at com.android.server.net.NetworkStatsService$3.onReceive(NetworkStatsService.java:703)

08-29 15:25:50.163 E/AndroidRuntime( 770): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:872)

08-29 15:25:50.163 E/AndroidRuntime( 770): ... 4 more

08-29 15:25:50.175 D/ActivityManager( 770): New dropbox entry: system_server, system_server_crash, 94e67198-5dd2-4a3d-af5e-5f7b9ef92cae

08-29 15:25:50.175 I/ActivityManager( 770): A system dump is comming => Stay in memory

08-29 15:25:50.372 D/ActivityManager( 770): System dump requested by: system_server (crash)

08-29 15:25:50.381 D/ActivityManager( 770): Sync fs

08-29 15:25:50.526 D/ActivityManager( 770): Sync done

08-29 15:25:50.533 I/ActivityManager( 770): Continue force dump

08-29 15:25:50.536 I/ActivityManager( 770): Do sysrq

Also, starting from yesterday, accessing Data usage crashes the Settings app. I guess that's only corrupt data remaining from one of the system crashes. Relevant logs:
08-30 09:37:10.229 D/SubSettings(23848): Launching fragment com.android.settings.DataUsageSummary

08-30 09:37:10.417 D/TelephonyManager(23848): getDataEnabled: retVal=false

08-30 09:37:10.421 D/DataUsage(23848): generating cs=1596232800000 to ce=1598911200000 waiting for hs=1594483200000

08-30 09:37:10.429 D/DataUsage(23848): generating cs=1593554400000 to ce=1596232800000 waiting for hs=1594483200000

08-30 09:37:10.454 E/AndroidRuntime(23848): FATAL EXCEPTION: AsyncTask #3

08-30 09:37:10.454 E/AndroidRuntime(23848): Process: com.android.settings, PID: 23848

08-30 09:37:10.454 E/AndroidRuntime(23848): java.lang.RuntimeException: An error occured while executing doInBackground()

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.os.AsyncTask$3.done(AsyncTask.java:304)

08-30 09:37:10.454 E/AndroidRuntime(23848): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)

08-30 09:37:10.454 E/AndroidRuntime(23848): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)

08-30 09:37:10.454 E/AndroidRuntime(23848): at java.util.concurrent.FutureTask.run(FutureTask.java:242)

08-30 09:37:10.454 E/AndroidRuntime(23848): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

08-30 09:37:10.454 E/AndroidRuntime(23848): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

08-30 09:37:10.454 E/AndroidRuntime(23848): at java.lang.Thread.run(Thread.java:818)

08-30 09:37:10.454 E/AndroidRuntime(23848): Caused by: java.lang.IllegalArgumentException: tried recording negative data

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.os.Parcel.readException(Parcel.java:1559)

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.os.Parcel.readException(Parcel.java:1505)

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.net.INetworkStatsSession$Stub$Proxy.getSummaryForAllUid(INetworkStatsSession.java:257)

08-30 09:37:10.454 E/AndroidRuntime(23848): at com.android.settings.net.SummaryForAllUidLoader.loadInBackground(SummaryForAllUidLoader.java:62)

08-30 09:37:10.454 E/AndroidRuntime(23848): at com.android.settings.net.SummaryForAllUidLoader.loadInBackground(SummaryForAllUidLoader.java:27)

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312)

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:69)

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:57)

08-30 09:37:10.454 E/AndroidRuntime(23848): at android.os.AsyncTask$2.call(AsyncTask.java:292)

08-30 09:37:10.454 E/AndroidRuntime(23848): at java.util.concurrent.FutureTask.run(FutureTask.java:237)

08-30 09:37:10.454 E/AndroidRuntime(23848): ... 3 more

08-30 09:37:10.688 I/Process (23848): Sending signal. PID: 23848 SIG: 9

08-30 09:37:10.757 I/ActivityManager( 732): Process com.android.settings (pid 23848) has died


Has someone experienced this kind of problem before? I can only think of factory resetting the phone as a possible solution, so any ideas are appreciated.