Search Issue Tracker
Active
Under Consideration for 6000.4.X
Votes
0
Found in
6000.4.0a1
Issue ID
UUM-124997
Regression
No
InvalidOperationException error or crash when allocating a large NativeParallelHashSet
Reproduction steps:
1. Open the attached project "Project"
2. Attach “Assets/OverflowTest.cs“ to “MainCamera” GameObject
3. Enter the Play mode
4. Observe the console
Expected result: HashSet is created and memory is allocated for it
Actual result: InvalidOperation error is thrown or Editor crashes if the size is increased
Reproducible with: 2.4.2 (2022.3.39f1, 6000.0.12f1)
Couldn’t test with: 1.2.4 (2021.3.40f1) - (error CS0246: The type or namespace name 'NativeParallelHashSet<>' could not be found )
Reproducible on: Windows 10
Not reproducible on: No other environment tested
Notes:
Crashes when allocating a larger HashSet (double the initial capacity in OverflowTest.cs to reproduce the crash)
Calculations in the CalculateDataSize function in UnsafeParallelHashMap.cs appear to hit the integer limit which causes a negative value to be returned, changing var to long resolves the error, this can be seen in the “ProjectWithEditedHashSet“ project, the crash still occurs with the increased size though
First few lines of stack trace:
{noformat}0x00007FFBB304C68E (Unity) memcpy
0x00007FFBAF83FC11 (Unity) UnsafeUtility_CUSTOM_MemCpy
0x000001CBA100FD88 (Mono JIT Code) (wrapper managed-to-native) Unity.Collections.LowLevel.Unsafe.UnsafeUtility:MemCpy (void,void,long)
0x000001CC6D4E2B5B (Mono JIT Code) [.\Library\PackageCache\com.unity.collections\Unity.Collections\UnsafeParallelHashMap.cs:175] Unity.Collections.LowLevel.Unsafe.UnsafeParallelHashMapData:ReallocateHashMap<short3, bool> (Unity.Collections.LowLevel.Unsafe.UnsafeParallelHashMapData*,int,int,Unity.Collections.AllocatorManager/AllocatorHandle)
0x000001CC6D4E2953 (Mono JIT Code) [.\Library\PackageCache\com.unity.collections\Unity.Collections\UnsafeParallelHashMap.cs:1196] Unity.Collections.LowLevel.Unsafe.UnsafeParallelHashMap`2<short3, bool>:set_Capacity (int)
0x000001CC6D4E2893 (Mono JIT Code) [.\Library\PackageCache\com.unity.collections\Unity.Collections\NativeParallelHashMap.cs:169] Unity.Collections.NativeParallelHashMap`2<short3, bool>:set_Capacity (int)
0x000001CC6D4E2763 (Mono JIT Code) [.\Library\PackageCache\com.unity.collections\Unity.Collections\NativeParallelHashSet.cs:71] Unity.Collections.NativeParallelHashSet`1<short3>:set_Capacity (int) {noformat}
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- WebGPU: CreateRenderPipeline errors with ShaderVariantCollection warmup
- [Android][iOS][Legacy Input] The Input stops working when streaming a video on WebGL
- Warning in the Profiler window is white and hard to see
- Switching a Type QueryBlock to prefabs fails
- Search Index Manager allows deleting Empty Index List when clicking on “-“ button, throwing “ArgumentOutOfRangeException” error in the Console window
Add comment