Search Issue Tracker

Fixed in 2019.2.X

Fixed in 2017.4.X, 2018.3.X, 2019.1.X

Votes

0

Found in

2017.4.0f1

2017.4.20f1

Issue ID

1126689

Regression

No

[Windows] Malformed utf16 surrogates in C# strings can cause the Unity Editor to crash or spam hundreds of Errors

Scripting

-

To reproduce:

1. Download attached project “MalformedStringInspectorCrashRepro.zip" and open in Unity
2. Set Scripting Runtime Version to .NET 4.x Equivalent
3. Open "ReproScene" scene
4. In the Hierarchy window select the "ReproObject" and make sure the Inspector panel has the "ReproScript" component expanded
5. Enter to Play mode
6. Click either of the "Set Serialized Field to X Surrogate" buttons in the Game window
7. Observe that the Editor will become unresponsive and Crashes within a few seconds
8. Reopen “MalformedStringInspectorCrashRepro.zip" project
9. Set Scripting Runtime Version to .NET 3.5 Equivalent
10. Open "ReproScene" scene
11. In the Hierarchy window select the "ReproObject" and make sure the Inspector panel has the "ReproScript" component expanded
12. Enter to Play mode
13. Click the "Set Serialized Field to Low Surrogate" button in the Game window
14. Observe that the Console will begin spamming unexpected info such as "Allocation of 256 bytes at <64-bit address>" and "Assertion failed: TLS Allocator ALLOC_TEMP_THREAD, underlying allocator ALLOC_TEMP_THREAD has unfreed allocations, size 4864". These log messages accumulate until the Editor is completely restarted, even if the string is set to a valid value.

Notes:
- This issue appears only on Windows, on macOS, everything seems works as expected
- Stack Trace is shared in Comments section

Reproduced on Unity 2017.4.0f1, 2017.4.20f2, 2018.3.6f1, 2019.1.0b4 and 2019.2.0a6

Add comment

Log in to post comment