Open matt-msi opened 2 years ago
Here is another one where the symptom was more severe than a black spot on the map, in this case the app ANRed after a tile load took 10 seconds. Should there be a timeout?
11-12 03:11:47.107 D/WindowManager( 1273): notifyANR took 127ms 11-12 03:11:47.107 W/InputDispatcher( 1273): Canceling events for 1d962bd com.atakmap.app.civ/com.atakmap.app.ATAKActivity (server) because it is unresponsive 11-12 03:11:47.204 I/am_anr ( 1273): [0,6158,com.atakmap.app.civ,680017479,Input dispatching timed out (1d962bd com.atakmap.app.civ/com.atakmap.app.ATAKActivity (server) is not responding. Waited 5000ms for MotionEvent(deviceId=2, source=0x00001002, displayId=0, action=DOWN, actionButton=0x00000000, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, classification=NONE, edgeFlags=0x00000000, xPrecision=2.0, yPrecision=2.0, xCursorPosition=nan, yCursorPosition=nan, pointers=[0: (231.8, 38.0)]), policyFlags=0x62000000)] 11-12 03:11:49.734 W/atakmap.app.ci( 6158): Long monitor contention with owner TileProxy[a. Google Hybrid]-0 (11187) at com.atakmap.map.layer.raster.mobac.MobacMapTile com.atakmap.map.layer.raster.mobac.CustomMobacMapSource.loadTile(int, int, int, android.graphics.BitmapFactory$Options)(CustomMobacMapSource.java:134) waiters=2 in com.atakmap.map.layer.raster.mobac.MobacMapTile com.atakmap.map.layer.raster.mobac.CustomMobacMapSource.loadTile(int, int, int, android.graphics.BitmapFactory$Options) for 10.022s 11-12 03:11:49.734 I/dvm_lock_sample( 6158): [com.atakmap.app.civ,0,TileProxy[a. Google Hybrid]-2,10022,CustomMobacMapSource.java,108,com.atakmap.map.layer.raster.mobac.MobacMapTile com.atakmap.map.layer.raster.mobac.CustomMobacMapSource.loadTile(int, int, int, android.graphics.BitmapFactory$Options),-,134,com.atakmap.map.layer.raster.mobac.MobacMapTile com.atakmap.map.layer.raster.mobac.CustomMobacMapSource.loadTile(int, int, int, android.graphics.BitmapFactory$Options),100] 11-12 03:11:49.735 E/MobacTileClient2( 6158): IO Error during tile download, a. Google Hybrid (3, 3, 7) 11-12 03:11:49.735 E/MobacTileClient2( 6158): java.net.NoRouteToHostException 11-12 03:11:49.735 E/MobacTileClient2( 6158): at com.atakmap.map.layer.raster.mobac.CustomMobacMapSource.loadTile(CustomMobacMapSource.java:132) 11-12 03:11:49.735 E/MobacTileClient2( 6158): at com.atakmap.map.layer.raster.mobac.MobacTileClient2.getTileData(MobacTileClient2.java:281) 11-12 03:11:49.735 E/MobacTileClient2( 6158): at com.atakmap.map.layer.raster.tilematrix.TileProxy$TileFetchTask.run(TileProxy.java:273) 11-12 03:11:49.735 E/MobacTileClient2( 6158): at com.atakmap.map.layer.raster.tilematrix.TileProxy$Downloader.run(TileProxy.java:227) 11-12 03:11:49.735 E/MobacTileClient2( 6158): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 11-12 03:11:49.735 E/MobacTileClient2( 6158): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 11-12 03:11:49.735 E/MobacTileClient2( 6158): at java.lang.Thread.run(Thread.java:923) 11-12 03:11:49.749 I/InputDispatcher( 1273): Dropping event because there is no touched foreground window in display 0 or gesture monitor to receive it. 11-12 03:11:49.754 E/GLQuadTileNode4( 6158): asynchronous read error 11-12 03:11:49.763 I/tombstoned( 599): received crash request for pid 6158 11-12 03:11:49.763 I/tombstoned( 599): found intercept fd 512 for pid 6158 and type kDebuggerdJavaBacktrace 11-12 03:11:49.764 I/atakmap.app.ci( 6158): Wrote stack traces to tombstoned
I have been having the same problem for rendering imagery from the filesystem. If a tile has not rendered yet, and if I enter a menu which halts the rendering of the map, the tiles that of which have not loaded in yet, do not load. Causing the non-rendered tiles to become black and remain that way indefinitely until a restart of ATAK. Switching between imagery does not solve the issue either. This is repeatable in my case across different devices and on different sets of imagery.
Just a heads up - we made a few changes to offload processing from the main thread to background threads. It does not completely address black map tile issues but thought we would share it anyway since we are seeing ANR issues in the latest 4.5 offerings on Google Play on Samsung. Stand by for PR.
We have seen a few times where loading an imported map causes strange artifacts. The only way to recover from this condition is by zooming in and out several times or restarting the application. Is it possible for the application to retry failed tile downloads automatically?