Certain non-Latin field name in a class always cause a crash with Unity Editor on Mac machine.

Issue #568 resolved
j s created an issue

Hi.

I bought it from Asset store and it’s very good asset for me.

I have used it very well with Windows machine but I have a little problem with Mac.

I’m Korean and sometimes I write code with Korean characters.

So far, I had used only windows machine for Android build.

But recently I started to use mac machine for iOS build.

I found a bug of Odin Inspector, so I report it.

1. What happened?

When I use 7 or more Korean characters for a field name in a class,

Unity Editor crashes if I try to modify the field with Mac machine.

I have no problem with Windows machine.

I just temporary avoid the problem by changing the field name with English characters.

2. How can we reproduce it?

If you write a field name with Korean, Chinese or Japanese characeter and the length is 7 or longer,

you may not be able to change the value in Unity Editor on Mac machine because of a crash.

Example code will be like this:

==================================================

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NonLatinFieldNameBugOnMacUnity : MonoBehaviour
{
public string 한글한글한글한글 = ““; // Eight Korean characters
public string 汉语汉语汉语汉语 = ““; // Eight Chinese characters
public string ひらがなひらがな = ““; // Eight Japanese characters
}

==================================================

I can modify the field if Odin Inspector is not imported.

And if the length of the field name is 6 or less, it also doesn’t crash.

3. If screenshots would help explain or demonstrate your issue, please include these.

-

4. What version of Unity are you using?

2018.4.8f1

the latest one

5. What version of Odin are you using? (See “Tools > Odin Inspector > About”)

2.1.4

the latest one

6. Do you have Editor Only mode enabled?

No

7. What operating system are you on?

macOS Mojave 10.14.6

Comments (7)

  1. mSkull001
    • changed status to open

    My first guess would be that this is an issue with Unity itself. Odin Inspector shouldn't really care which characters you're using.

    Do you have a crash log? I can take a look at that and see if I can spot where the crash occurs.

    This should tell you where you can find the Unity log files: https://docs.unity3d.com/Manual/LogFiles.html

  2. j s reporter

    I also tried with Unity 2018.4.7 but it stil crashes. I also reported to Unity Technogies.

    I attached the log file. About 300 lines of the first part of the file have been deleted by me.

    The attached file contains the log:

    Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: aString != nil'

    and

    libc++abi.dylib: terminating with uncaught exception of type NSException

    And it also contains stacktrace and log for theads of the process. But I don’t know what it means.

    It may be a problem of Odin, Unity Editor or Mac OS. But I have no idea of the problem.

    I hope this problem will be solved. Thank you.

  3. j s reporter

    I also tested with Unity 2018.4.8 and Odin 2.1.4 but still always crash happends.
    If I uninstall Odin Inspector, it works find on the Mac.

    The attached log file said the crash was happened at Sirenix.OdinInspector.Editor.InspectorUtilities.EndDrawPropertyTree.
    So I’m now guessing it’s a problem of property drawer of Odin inspector.

    It may be or may not be related to Unicode.
    https://unicode.org/reports/tr15/
    Windows uses Normalization Form C (NFC) and Mac uses Normalization Form D (NFD).
    But I don’t know why it crashes only if the length of field name is 7 or more of Korean characters and I tried to modify it.
    It doesn’t crash if the length of field name is 6 or less.

  4. Tor Esa Vestergaard

    Judging by the stacktrace you’ve provided, the crash is in fact happening inside Unity’s Undo.FlushUndoRecordObjects method, down in Unity native C++ land. We need to call this method at the given time. As such, I’ll have to close the issue here, as there’s nothing we can really do about this on our end. If you ever see anything that indicates we can do something to help, please don’t hesitate to reopen the issue Meanwhile we can only hope Unity can fix this.

  5. Log in to comment