Modify

Opened 3 years ago

Closed 3 years ago

#11555 closed defect (irreproducible)

Tilecache use sometimes scaled tiles instead of existing hires tiles

Reported by: mdk Owned by: mdk
Priority: minor Milestone:
Component: Core imagery Version: latest
Keywords: bing Cc:

Description

This is a complex case, I hope I can explain it in a understandable way.

Sometimes single tiles are missing. Especially Bing has sometimes tile server which failed, which cause patterns like

Tiles could be missing on each zoom level.

Assuming the above image use z17 (now we have z17 tiles in the cache) and zooming to z18. If now a tile is missing in z18, the tile cache is smart enough and try to fill the hole with a scaled version from z17.

But instead of replacing only the missing tile in z18, the cache takes a tile (which covered the missing z18 tile) from z17, scale it up to 2 by 2 tiles and use all 4 tiles for display, even if only one tile in z18 is missing! The three existing z18 tiles are ignored and “overwitten” with the scaled z17 tiles.

If you zoom in to z19, every thing could be fine like here (Bing has all z19 tiles, and we have the tiles in our cache):

But it could get even worst. Assuming a tile is missing in z19 and also the tile to fill the hole is missing in z18, the tile cache uses an existing tile from z17 and scale it up to 4 by 4 tiles. And again the cache is now using all 16 scaled tiles instead of the 15 z19 and only uses the scaled tile for the single missing z19 tile.
I found a case, where every thing was fine (see above), but when I scroll the slippy map a little bit to the west, I came to a tile missing as described above. Now the cache replaces a 4 by 4 are with double scaled tiles:

And if you scroll back to the ast, the hires z19 tiles are shown again.

The tile cache should only used scaled tiles if they are missing for a zoom level and not using all scaled tiles if he must scale a tile.

Attachments (4)

Missing_Bing_tiles.png (1.4 MB) - added by mdk 3 years ago.
2x2_tiles_blurred.png (1.1 MB) - added by mdk 3 years ago.
hires_tiles.png (1.3 MB) - added by mdk 3 years ago.
4x4_tiles_blurred.png (440.1 KB) - added by mdk 3 years ago.

Change History (14)

Changed 3 years ago by mdk

Attachment: Missing_Bing_tiles.png added

Changed 3 years ago by mdk

Attachment: 2x2_tiles_blurred.png added

Changed 3 years ago by mdk

Attachment: hires_tiles.png added

Changed 3 years ago by mdk

Attachment: 4x4_tiles_blurred.png added

comment:1 Changed 3 years ago by wiktorn

Milestone: 15.06
Owner: changed from team to wiktorn
Priority: normalminor
Status: newassigned

Understood, I'll take a look into this. Though I find this of lower priority bug, as once all tiles are downloaded, the image will look good.

comment:2 Changed 3 years ago by mdk

If a tiles failed loading (connection problem, timeout, ...), is there any mechanism that tries to reload the tile?

Bing has some kind of load balancing, where different servers are responsible for a defined set of tiles. If one of this server is down, the delivery of tiles failed for longer time and it looks like MS has no reliable fall back mechanisms. So the missing tile simply didn't appear in usable time. I saw this often, when I map in Nepal. Perhaps other regions, which are more often used, have more redundancy.

comment:3 Changed 3 years ago by mdk

Here is a similar problem with Bing tile server: #11565

comment:4 Changed 3 years ago by Don-vip

Milestone: 15.0615.07

skip milestone 15.06

comment:5 in reply to:  2 Changed 3 years ago by wiktorn

Owner: changed from wiktorn to mdk
Status: assignedneedinfo

I've just spent an evening on this but couldn't reproduce the problem. I've a copy of tiles on my local disk, so I can easily do some tests. For this example, assume that the tiles are for z5 to z12.

I've removed one tile from z12. Browsing the map in this place, I can see, that when I'm at z12 or closer, I get only missing tile replaced with the tile from z11. So works as expected. Also - the code looks like it uses part of tile from upper zoom level.

Can you prepare some test case based on 4-16 tiles, where you observe the improper behaviour?

Replying to mdk:

If a tiles failed loading (connection problem, timeout, ...), is there any mechanism that tries to reload the tile?

Bing has some kind of load balancing, where different servers are responsible for a defined set of tiles. If one of this server is down, the delivery of tiles failed for longer time and it looks like MS has no reliable fall back mechanisms. So the missing tile simply didn't appear in usable time. I saw this often, when I map in Nepal. Perhaps other regions, which are more often used, have more redundancy.

To reload the tile, you can use right-click menu action "Load All Tiles" or "Load All Error Tiles" which could do this. Doing this automatically could lead to DoS attack on failing server.

comment:6 Changed 3 years ago by Don-vip

Milestone: 15.0715.08

Milestone renamed

comment:7 Changed 3 years ago by Don-vip

@mdk: can you still reproduce the problem with latest?

comment:8 Changed 3 years ago by Don-vip

Milestone: 15.0815.09

comment:9 in reply to:  7 Changed 3 years ago by mdk

Replying to Don-vip:

@mdk: can you still reproduce the problem with latest?

Sorry, I wasn't able to reproduce it the last months. Normally I saw these problems in areas where only a few people use Bing (like Nepal and Lesotho). I think Bing has less or no redundancy there and a server failure will cause the observed missing tile pattern. Because this issue has less priority for me, you can close it. If the problem occurs again, it will surly pop up here again ;-)

comment:10 Changed 3 years ago by Don-vip

Keywords: bing added
Milestone: 15.09
Resolution: irreproducible
Status: needinfoclosed

ok thanks :)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain mdk.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.