Search Issue Tracker
Fixed
Fixed in 1.8.14
Votes
0
Found in [Package]
1.8.13
Issue ID
BUR-2641
Regression
No
Assert conditional on ENABLE_UNITY_COLLECTIONS_CHECKS and UNITY_DOTS_DEBUG stripped out of player builds with UNITY_DOTS_DEBUG defined
Steps to reproduce:
1. Download the attached user's project "DoubleConditionalReport.zip"
2. Make a Windows Standalone Player build
3. Open the player and observe how there is no crash when a job is accessing a bounds index
4. Modify "Assets/Test.cs" by commenting the code for jobA and uncomment jobB
5. Make another Player build and observe the crash
Expected Results: player doesn't crash
Actual Results: player crashes
Reproducible with: Entities 1.0.16 (2022.3.22f1, 2023.2.16f1, 6000.0.0b13)
Could not effectively test with Entities higher than 1.0.16 due to the package being locally modified
Could not test on 2021.3.36f1 due to package errors when downgrading
Testing Environment: Windows 11
Not reproducible on: No other environment tested
Notes:
-Player crash log attached "Player.log"
-JobA is not crashing since AssertIndexInRange is not being called because it has 2 conditionals: [Conditional("ENABLE_UNITY_COLLECTIONS_CHECKS"), Conditional("UNITY_DOTS_DEBUG")]
-For player builds, the customer defines the UNITY_DOTS_DEBUG define to ensure that collection checks are enabled throughout all the dots packages
-Customer noticed that the bounds check on BlobArray is not working on player builds (if you index out of bounds, no exception is thrown). This works as expected in the editor but not in player builds. After some investigation, it appears that this bug affects methods with multiple 'Conditional' attributes in code from the packages
-Having these bounds checks run is absolutely critical for the customer, as if they are being discarded they often get invalid memory accesses, memory overwriting, or other unexplained crashes much after the fact which are nearly impossible to diagnose
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- UnityLinker causes crash when outputting snapshot data for very large projects
- Camera Preview does not detect multiple cameras with same GameObject name
- Crash on TypeTreeIterator::Children() when renaming a corrupted asset while Asset Serialization is set to Mixed
- Cameras (Camera.targetDisplay) render only to Display 0 in the Player when Multi-Display setup is used and DX12 API is set
- [Vulkan] _CameraOpaqueTexture produces a feedback effect on Android Adreno devices when using Vulkan
Add comment