scubajeff / lespas

Les Pas, photo album app for Nextcloud user
Apache License 2.0
446 stars 22 forks source link

Location Search crashes #158

Closed steviehs closed 6 months ago

steviehs commented 9 months ago

On all the devices I tested so far, Les Pas crashes more ore less immediately, when I try location search. The first time it set up some locations, then it crashed, next time it crashed approx 1sec after showing one location folder.

My pictures are all synced locally to the device (approx 20k pics in 7GB).

If I can activate any logging, please let me know. les pas is installed via F-Droid.

Version is 2.9.6

scubajeff commented 9 months ago

Hi, steve, how are you doing?

I just did a location search in my phone, it works. So i guess there must be something wrong with EXIF reading. Have you tried location search function with previous version of Les Pas? You can try install a logcat app like this one, I believe it can catch crash log.

steviehs commented 9 months ago

HI Jeff,

great to hear from you, I am doing fine, hope you too?

so, I did: adb logcat --buffer=crash while starting the location search and this is the result, is this helpful?

01-05 17:44:15.915 23839 25998 E AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-3 01-05 17:44:15.915 23839 25998 E AndroidRuntime: Process: site.leos.apps.lespas, PID: 23839 01-05 17:44:15.915 23839 25998 E AndroidRuntime: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at java.util.Objects.checkIndex(Objects.java:359) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at java.util.ArrayList.get(ArrayList.java:434) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at site.leos.apps.lespas.search.LocationSearchHostFragment$LocationSearchViewModel$job$1.invokeSuspend(LocationSearchHostFragment.kt:210) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) 01-05 17:44:15.915 23839 25998 E AndroidRuntime: Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@6b404d3, Dispatchers.IO]

scubajeff commented 9 months ago

Yes, it's helpful. Thank you. I will start debugging next week. I'm currently not with my computer.

steviehs commented 9 months ago

Yes, it's helpful. Thank you. I will start debugging next week. I'm currently not with my computer.

Whaaaaat? :-)))

Enjoy!

scubajeff commented 8 months ago

The crash was caused by zero result return from OpenStreetMap geocoder API, not sure whether this is a temporarily network/server problem or some changes of the new version of OSM library (updated in the latest release of Les Pas). Anyway, a fix will be included in next Les Pas release. However, this fix only addresses the crash issue, geocode result might still not available, that means those photos can't be grouped into places.

steviehs commented 8 months ago

ah, great to hear that... I will test again then... Thanks for lespas!!! I use it a lot!

steviehs commented 8 months ago

Hi Jeff, unfortunately no change with 2.9.7:

01-28 14:53:15.652 31645 32756 E AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-1 01-28 14:53:15.652 31645 32756 E AndroidRuntime: Process: site.leos.apps.lespas, PID: 31645 01-28 14:53:15.652 31645 32756 E AndroidRuntime: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at java.util.Objects.checkIndex(Objects.java:359) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at java.util.ArrayList.get(ArrayList.java:434) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at site.leos.apps.lespas.search.LocationSearchHostFragment$LocationSearchViewModel$job$1.invokeSuspend(LocationSearchHostFragment.kt:209) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) 01-28 14:53:15.652 31645 32756 E AndroidRuntime: Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@af7fb05, Dispatchers.IO]

Cheers Steve

scubajeff commented 7 months ago

That's bad. I'm gonna put a safety check for zero size array before reading it this time. And will also upgrade the underneath OSMAdroid library.

steviehs commented 7 months ago

Yes, the more robust, the better. You never know, how messed up all this meta data could be ;-)

steviehs commented 6 months ago

thanks! now there are no crashes anymore!