In Development
Last Updated: 15 Oct 2024 11:35 by ADMIN
Anthony
Created on: 26 Jun 2024 10:31
Category: Map
Type: Bug Report
3
KeyNotFoundException when zooming in

Hi, we use the map control in our application.

We get random KeyNotFoundException in TilesDownloadManager when zooming in... 

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   in System.Collections.Concurrent.ConcurrentDictionary`2.get_Item(TKey key)
   in Telerik.Windows.Controls.Map.TilesDownloadManager.UpdateTileCache()
   in Telerik.Windows.Controls.Map.TilesDownloadManager.Process()
   in Telerik.Windows.Controls.Map.TilesDownloadManager.DownloaderThread()
   in System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   in System.Threading.ThreadHelper.ThreadStart()

 

System.Collections.Generic.KeyNotFoundException
  in System.Collections.Concurrent.ConcurrentDictionary`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(System.__Canon)
  in Telerik.Windows.Controls.Map.TilesDownloadManager.RemoveTile(Telerik.Windows.Controls.Map.TileId)
  in Telerik.Windows.Controls.Map.TilesDownloadManager.RemoveL1Cache()
  in System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
  in System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
  in System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
  in System.Threading.ThreadHelper.ThreadStart()

We use OpenStreetMapProvider and don't use tile caching.

Attached Files:
15 comments
ADMIN
Stenly
Posted on: 15 Oct 2024 11:35

Hello Anthony,

Thank you for your reply.

There is a fix that is currently being validated and it will be available for the next major release, which is scheduled for the middle of November.

With this being said, I hope the provided information will be of help to you. Please let me know if any additional assistance is required.

Regards,
Stenly
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Anthony
Posted on: 15 Oct 2024 08:34
hello
are there any news on this issue?
ADMIN
Stenly
Posted on: 06 Aug 2024 14:56

Hello Anthony,

By following the bug report, you will get notified via e-mail when its status gets changed.

With this being said, let me know if any additional assistance regarding this case is required.

Regards,
Stenly
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Anthony
Posted on: 31 Jul 2024 10:24
Thanks, Stenly!
Please keep us updated on this issue.
ADMIN
Stenly
Posted on: 31 Jul 2024 08:56

Hello Anthony,

We managed to reproduce this exception and based on it, I have created an item in our internal backlog and have linked it to this bug report so that we could review it and plan it. 

In the meantime, I could suggest following this bug report, so that a notification is received when its status is changed.

Additionally, as a token of gratitude for bringing this to our attention, I have updated your Telerik points.

Let me know if I can assist you further on this matter.

Regards,
Stenly
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Anthony
Posted on: 24 Jul 2024 10:28

Maybe, could you release a beta version of the package with advanced logging?
With information about threads and elements in the requests

we will provide these logs when an exception is thrown🤔

ADMIN
Stenly
Posted on: 19 Jul 2024 11:19

Hello Anthony,

I tried reproducing this again, however, I was unsuccessful.

Generally, the logic of the TilesDownloadManager class is executed on different threads, so, introducing blind fixes without first reproducing the exception, may interfere with its current logic and produce unwanted behavior.

With this in mind, are the mentioned steps in one of your previous replies the only approach for reproducing it?

Regards,
Stenly
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

ADMIN
Martin Ivanov
Posted on: 19 Jul 2024 09:24

Hello Anthony,

We are currently reviewing this case and will get back to you later today.

Regards,
Martin Ivanov
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Anthony
Posted on: 12 Jul 2024 10:16
and this
Anthony
Posted on: 12 Jul 2024 10:14

This is a matter of chance.
I think the error occurs here:

..\Controls\DataVisualization\Map\MultiScaleCore\TilesDownloadManager.cs

there is a possibility that requests[removed] will not be found

ADMIN
Stenly
Posted on: 12 Jul 2024 07:33

Hello Anthony,

I tested the application and tried the reproduction steps, however, I was not able to observe the exception. I left the application for more than half an hour without interacting with it and still, it did not raise the exception.

Is there something that I am missing when it comes to reproducing it apart from zooming in, waiting for some time, and then zooming in again? 

Regards,
Stenly
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Anthony
Posted on: 11 Jul 2024 09:40
I'm attaching a test application.
The exception occurs after zooming in, but very randomly.

Last time I caught it like this:
- launched the application
- actively scrolled and moved the map
- left it for about half an hour
- started to zoom in
- caught the error

log.txt:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   Ð² System.Collections.Concurrent.ConcurrentDictionary`2.get_Item(TKey key)
   Ð² Telerik.Windows.Controls.Map.TilesDownloadManager.UpdateTileCache()
   Ð² Telerik.Windows.Controls.Map.TilesDownloadManager.Process()
   Ð² Telerik.Windows.Controls.Map.TilesDownloadManager.DownloaderThread()
   Ð² System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   Ð² System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   Ð² System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   Ð² System.Threading.ThreadHelper.ThreadStart()
Attached Files:
Anthony
Posted on: 05 Jul 2024 10:18
version: 2024.1.312
Anthony
Posted on: 05 Jul 2024 08:11
ok, we will try to build a test application and describe the reproduction steps
ADMIN
Stenly
Posted on: 03 Jul 2024 09:03

Hello Anthony,

Thank you for reaching out to us.

We are not familiar with this exception. Is there any possibility to provide a bit more information? For example, are there any reproduction steps, and is this reproducible in a sample project or only in your main application?

I will be awaiting your reply, so I can assist you further on this matter.

Regards,
Stenly
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.