microg / IchnaeaNlpBackend

Backend for UnifiedNlp that uses Mozilla Location Service for geolocation.
116 stars 28 forks source link

Occasionally freezing #16

Open DocSniper opened 8 years ago

DocSniper commented 8 years ago

The plugin is occasionally freezing and when this happens the location can no more be determined in any app. The logcat doesn't give useful hints. Reinstalling does not help either. Someone else ?

DocSniper commented 8 years ago

Here a logcat when freezing and when I killed the task:

10-30 19:48:11.493 I/ActivityManager(17208): Start proc 18350:org.microg.nlp.backend.ichnaea/u0a413 for service org.microg.nlp.backend.ichnaea/.BackendService

10-30 20:34:50.960 I/Timeline(17957): Timeline: Activity_launch_request id:org.microg.nlp.backend.ichnaea time:22992816

be-neth commented 7 years ago

I confirm same freeze on my side. (Android 7.1)

After freezing I have a lot of stacktraces like this one:

02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper: android.os.DeadObjectException                                                        
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at android.os.BinderProxy.transactNative(Native Method)                             
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at android.os.BinderProxy.transact(Binder.java:615)                                 
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at org.microg.nlp.api.LocationBackend$Stub$Proxy.update(LocationBackend.java:157)   
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at org.microg.nlp.location.BackendHelper.update(BackendHelper.java:71)              
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at org.microg.nlp.location.BackendFuser.update(BackendFuser.java:83)                
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at org.microg.nlp.location.ThreadHelper.run(ThreadHelper.java:73)                   
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:278)
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Schedul$dThreadPoolExecutor.java:273)                                                                                                               
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
02-01 10:01:01.787  4415 11069 W NlpLocBackendHelper:   at java.lang.Thread.run(Thread.java:761)                                            
breversa commented 4 years ago

I’m having the same issue : randomly (once per week maybe ?), this backend seems to freeze and stop responding, preventing ANY other backend to provide a location. Nothing out of the ordinary shows on catlog either.

If I go to MicroG setting/location providers settings and tap "Mozilla Location Service"’s settings icon, the screen freezes. If I kill it by long-pressing the back button then open the settings again, I very quickly get a location, as expected.

Device : LG G4 H815 OS : LineageOS 16/Android 9 MicroG 0.2.10.19420 Mozilla NLP backend 1.8.8

Other backends : Local GSM Location 1.4.22 (https://github.com/n76/Local-GSM-Backend) DéjàVu 1.1.12 (https://github.com/n76/DejaVu) Nominatim NLP 1.2.2 (https://github.com/microg/NominatimGeocoderBackend)

pedrxd commented 4 years ago

After a bit of research it seem that a deadlock happend between the thread Main and other call Binder. Is related with the CellBackendHelper. Try with the Use Cell option unselected. I don't know so much about android so i can't help more than this. Here is a thread-report with the deadlock. threads_report.txt

breversa commented 4 years ago

That's highly interesting ! Thanks for the info ! :-) However, it does negate one of the most useful feature of that module, namely network location with wifi off.

Although coupled with LocalGsmNlpBackend (https://f-droid.org/packages/org.fitchfamily.android.gsmlocation/), it could do the trick… I always thought those two modules somehow conflicted with each other, while they very well may be complementary.

pedrxd commented 4 years ago

Yes... That is a big problem and it should be fixed. I write a 'fix' and for now work correctly. But is not the way it should be fixed. Test it if you want. Source code , go to release for download the apk.

breversa commented 4 years ago

@pedrxd : I installed your version, and so far so good, no freeze (but it’s only been two days so maybe more testing is in order). Of course, I had to uninstall the previous backend in order to install yours.