Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing map tiles #449

Open
fraxinas opened this issue Aug 15, 2022 · 5 comments
Open

Missing map tiles #449

fraxinas opened this issue Aug 15, 2022 · 5 comments

Comments

@fraxinas
Copy link

i've been having issues with missing map tiles.
i'm using Version 10.7 (x86_64, Qt 6.3.0) under KDE 5.96.0, Qt Version 5.15.5 on Wayland
Can't say for sure that this isn't an issue caused by something higher up than GPXSee itself though

grafik

in the log, i'm seeing messages like

https://tileserver.4umaps.com/14/8598/5538.png: Error transferring https://tileserver.4umaps.com/14/8598/5538.png - server replied:

/home/fraxinas/.cache/gpxsee/tiles/4UMaps/14-8604-5542.download: Zu viele Dateien geöffnet
https://a.tile.opentopomap.org/14/8682/5663.png: Operation abgebrochen

translated from german: "too many files open" & "operation aborted"

@tumic0
Copy link
Owner

tumic0 commented Aug 15, 2022

According to the attached picture, you are trying to fetch over 150 tiles with a size of ~20MB from the server. The 4umaps (the same applies to the OpenTopoMap server) server is very often overloaded so I guess the issue is on the server side (the partial rendered tiles also support this theory). Try the "basic" OpenStreetMap and see if you get similar errors - the OpenStreetMap servers are usually ready for such load.

@fraxinas
Copy link
Author

You're right, OpenStreetMap actually works fine.
However, the missing tiles never get fetched - i'd be okay if the download was throttled and then the tiles cached locally. But the way it is right now, unfortunately it's unusable.

@tumic0
Copy link
Owner

tumic0 commented Aug 16, 2022

Please try the latest version and see if it helps. A timeout handling issue has been fixed in 1efb4e4 so it might help in your case. But generally, overloaded servers will be problematic and there is not much one can do with them. If they respond with some error code, you can't distinguish it from a "real" network error and even in case the connection timeouts you can not make an unlimited number of retries (the current logic is no retry on any HTTP error code and 3 retries on a connection timeout for a single tile).

@fraxinas
Copy link
Author

I built 11.3 from git, it behaves the same exact same way unfortunately.
Maybe a way to manually trigger downloading tiles by clicking on them, zooming out and back in, switching map sources or something? Right now there simply is no apparant way to gather the missing tiles at all.

@tumic0
Copy link
Owner

tumic0 commented Aug 17, 2022

I built 11.3 from git, it behaves the same exact same way unfortunately.

The latest version from git should show up as 11.4, not 11.3.

Maybe a way to manually trigger downloading tiles by clicking on them, zooming out and back in, switching map sources or something? Right now there simply is no apparant way to gather the missing tiles at all.

At the moment there are two ways how to force a reload of tiles, that have previously returned an HTTP error:

  1. Application restart.
  2. The "clear cache" action.

The second one is unusable in this case as you also lose all other already downloaded tiles. The first one is somehow usable, but not on a regular basis, just for very rare situations. An action for a manual "error queue" reset which would trigger a refetch of the missing tiles would be possible, but I do not want to mess the map menu with it and in general I'm not sure whether I want such an action at all. Fetching the tiles should either work fully automatic, or not at all.

On the other hand, there are evidently servers like 4umaps that do not cancel connections or respond slow, but rather return HTTP errors like 403, when you want to much tiles from them (looks like some DOS attack prevention). And dealing "automatic" with them is almost impossible as you can not know which tile is really inaccessible and which is only temporarily unavailable and when will it become available (you can't repeatedly retry to fetch a tile which reported an error as the fetch happens on every map move)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants