Search Issue Tracker

Fixed in 2022.3.21f1

Fixed in 2023.1.X

Votes

0

Found in

2022.3.4f1

2023.1.3f1

Issue ID

UUM-41834

Regression

Yes

[Android] [IL2CPP] Accessing a particle system's frameOverTime.curve when GameObject has been disabled crashes a Player built with IL2CPP

IL2CPP

-

Reproduction steps:
1. Open the attached project "ReproProj"
2. Build And Run the “/Assets/test.unity” Scene
3. Tap the white button
4. Tap the white button once again

Expected result: The player does not crash and continues to run
Actual result: The player crashes

Reproducible with: 2022.2.14f1, 2022.3.4f1
Not reproducible with: 2021.3.28f1, 2022.2.13f1, 2023.1.3f1, 2023.2.0a21

Reproducible with devices:
VLNQA00318, Oneplus OnePlus 7 Pro (GM1913), Android 11, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640

Not reproducible with devices:
VLNQA00332, Samsung Galaxy XCover4 (SM-G390F), Android 9, CPU: Exynos 7 Quad 7570, GPU: Mali-T720
VLNQA00325, Samsung Galaxy Note10 (SM-N970F), Android 12, CPU: Exynos 9 (9825), GPU: Mali-G76
VLNQA00231, Samsung Galaxy A5(2017) (SM-A520F), Android 8.0.0, CPU: Exynos 7 Octa 7880, GPU: Mali-T830
VLNQA00231, Huawei HUAWEI Mate 20 Pro (LYA-L29), Android 9, CPU: HiSilicon Kirin 980, GPU: Mali-G76

Testing environment: Windows 10 Enterprise 21H2

Notes:
- Does not reproduce with Mono Scripting Backend, but the button is rendered lower than with IL2CPP
- This might be a GC issue in IL2CPP, where accessing a destroyed animation curve throws a buffer overflow exception
- This reproduces while using UI extensions + UI particle system with a sprite sheet active (with the curve)
- Temporary workaround is to store the frameOverTime struct locally and not access the actual PS one

  1. Resolution Note (fix version 2022.3.21f1):

  2. Resolution Note (fix version 2023.1):

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.