View Issue Details

IDProjectCategoryView StatusLast Update
0000539Medieval EngineersBugpublic2024-12-19 13:43
Reporterequinox Assigned Toequinox  
PrioritynormalSeverityminorReproducibilityrandom
Status assignedResolutionopen 
Product Version0.7.4.3BB0F4 
Target Version0.7.4.xh (unreleased) 
Summary0000539: Rare concurrency issue when reading from cache
Description
Exception occurred: VRage.MyUpdateSchedulerException: Failed to execute Void RunSingleFrame() on Medieval.MyMedievalGame
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at VRage.Collections.Cache.ConcurrentClockCache`2.TryGetInternal(TK& key, TV& value, Boolean quietly)
   at VRage.Collections.Cache.ConcurrentClockCache`2.TryRead(TK& key, TV& value, Boolean quietly)
   at Medieval.Entities.Components.Grid.MountPointTester.DoBlockMountPointsConnectWithCache(MountPointTestCacheKey& key, BoundingBox& intersectionBox)
   at Medieval.Entities.Components.Grid.MountPointTester.DoBlockMountPointsConnectWithCache(MyGridDataComponent gridData, MyBlock block1, MyBlock block2, BoundingBox& intersectionBox)
   at Medieval.Entities.Components.Grid.MountPointTester.DoBlockMountPointsConnect(MyBlock block1, MyGridDataComponent block1GridData, MyBlock block2, MyGridDataComponent block2GridData, BoundingBox& outConnectionBBox, Nullable`1 volumeCriteria)
   at Medieval.Entities.Components.Grid.MyGridBuildingComponent.ResolveAdjacency(MyBlock block1, MyBlock block2, BoundingBox& outConnectionBBox)

Since there's a well maintained, broadly used library for caching in dotnet now (https://github.com/bitfaster/BitFaster.Caching/) it's probably worth removing the custom implementation.

TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2024-12-19 13:43 equinox New Issue
2024-12-19 13:43 equinox Assigned To => equinox
2024-12-19 13:43 equinox Reproducibility have not tried => random
2024-12-19 13:43 equinox Status new => assigned