XCSoar icon indicating copy to clipboard operation
XCSoar copied to clipboard

Map database causes freeze

Open Ozgrin opened this issue 1 year ago • 9 comments

XCSoar versions having and not having the problem

Broken:

  • 7.37
  • 7.38
  • 7.39

Which XCSoar version is the last one you know that did not show the problem?

  • 7.36

System information

Realme C30s, Android 12. Build number RMX3690_12.A.48

Steps to reproduce the behaviour

Launch XCSoar and load a map database (.xcm). As soon as the map database finishes loading, the app freezes and does not respond to touch response, swipe gestures, etc. I tried using 3 different map databases files (the Israel high res & regular Israel file from the XCSoar repository, as well as a custom Israel high res made by a member of my club), all cause the same freeze.

Expected behavior

App should function normally without freezing & accept touch input & swipe gestures.

Actual behavior

No response to the touch screen, also probably nothing going on in the background (couldn't get a GPS fix)

Do you have any idea what may have caused this?

Do you have an idea how to solve the issue?

Ozgrin avatar Aug 29 '23 05:08 Ozgrin

I tested both israel maps and cannot reproduce a freeze. Is it when you load any map? Can you try removing all files from Site config and try again?

lordfolken avatar Aug 30 '23 05:08 lordfolken

I tested both israel maps and cannot reproduce a freeze. Is it when you load any map? Can you try removing all files from Site config and try again?

I tried removing all site files (waypoints, airspaces and maps) and tested both Denmark and Germany maps at random. Both worked fine. Israel maps still cause the freeze, even without all the other files. Just a guess - could this be about my phone struggling with rendering the map on the screen? My reasoning is that my device gets a GPS fix before the maps ever load up, so if it's a foreign map it's offscreen, and sure enough if I load my local map the app freezes as soon as the "loading terrain file" bar finishes.

Ozgrin avatar Aug 30 '23 18:08 Ozgrin

This happens in sim mode aswell, for both denmark and israel? If you belive gps fix to be the problem, can you try it indoors in fly mode? Can you try old releases? Htrps://download. Xcsoar.org/releases

In any case can you try to get the log? (Google files app Screenshot_20230831-080302 Then xcsoar.log

The maps are produced the same way, so there isnt really a difference between them. The terrain loading process is asynchronus since a couple of versions.

lordfolken avatar Aug 31 '23 06:08 lordfolken

I think this could be the ANR bug that got reported on Google Play a few times. It's an endless loop in Angle::AsBearing() which I believe gets caused by an uninitialised Angle variable with a random value that is extremely big/small or even infinite or NaN. No matter how I tried, I was never able to find out where this uninitialised variable comes from. I always thought it could be some problem before the first GPS fix is received, and some part of XCSoar omits the check whether some field has a value.

MaxKellermann avatar Aug 31 '23 06:08 MaxKellermann

I tried it in sim mode with the Denmark map - as soon as the map loaded the app fixed me on Denmark, started drawing the terrain and froze.

xcsoar.log

I'm attaching my log file. I'll try to use an older release as well and report back.

Ozgrin avatar Aug 31 '23 07:08 Ozgrin

Okay - 7.35 works! I guess I'll stick with this one for now.

Ozgrin avatar Aug 31 '23 08:08 Ozgrin

Does 7.36 work? For this piece of information to be useful for us, we need to know exactly what the first version with the problem was.

MaxKellermann avatar Aug 31 '23 08:08 MaxKellermann

Does 7.36 work? For this piece of information to be useful for us, we need to know exactly what the first version with the problem was.

7.36 works. 7.37 is the first one that doesn't (just tried both of them)

Ozgrin avatar Aug 31 '23 08:08 Ozgrin

I kept trying, and I also tried to inject bad values into XCSoar, but couldn't reproduce this problem. I guess I really need a device that is able to reproduce this.

MaxKellermann avatar Feb 26 '24 22:02 MaxKellermann