Search Issue Tracker

Not Reproducible

Votes

5

Found in

2019.3.0b2

2019.3.0f6

2020.1

Issue ID

1216719

Regression

Yes

[Android] ConcurrentDictionary crashes on IL2CPP

IL2CPP

-

Steps to reproduce:
1. Open user's attached project "Minimal.zip"
2. Build it to Android
3. Run the app with the Logcat

Expected results: IL2CPP builds are able to use ConcurrentDictionary without errors
Actual results: IL2CPP build throw errors when ConcurrentDictionary is used

Reproducible with: 2019.3.0b2, 2019.3.0f6, 2020.1.0a21

VLNQA00091, Google Pixel 2 XL (Pixel 2 XL), Android 10, CPU: Snapdragon 835 MSM8998, GPU: Adreno (TM) 540
VLNQA00315, Samsung Galaxy Note10 (SM-N970U), Android 9, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00175, Samsung Galaxy Note9 (SM-N960F), Android 9, CPU: Exynos 9 Series 9810, GPU: Mali-G72
VLNQA00319, Google Pixel 4 (Pixel 4), Android 10, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640

Not Reproducible with: 2017.4.36f1, 2018.4.17f1, 2019.3.0b1

  1. Response avatar

    Resolution Note:

    The issue was retested and we are unable to reproduce it anymore

Comments (2)

  1. 514326d1c705f945791681c52536de8d?d=mm

    Protagonist

    Feb 21, 2020 21:03

    I discovered this problem while trying to use a cloud native messaging technology called NATS that uses ConcurrentDictionary. A few other NATS users using Unity have run into this problem:

    https://github.com/nats-io/nats.net/issues/361
    https://github.com/nats-io/nats.net/issues/358

  2. 514326d1c705f945791681c52536de8d?d=mm

    Protagonist

    Feb 21, 2020 20:40

    I wonder if this is related to this problem:

    https://forum.heroiclabs.com/t/unity-2019-2-background-exception-when-socket-connects/361/18

    ...where they report:

    It appears that in Unity 2019.2 and above Unity have changed the default .NET profile. A .NET profile describes to the Roslyn compiler toolchain what collection of DLLs are available from the standard library. I don’t know whether this change was intended by them or a bug in the latest release of the game engine. It’s unclear from their release notes or online resources why they’ve made this change.

    The result of it is that the System.Diagnostics.Tracing namespace is no longer available in the .NET profile which Unity uses. This affects how we trace the low level details in the socket libraries we use. The only solution I’ve found which resolves the issue fully so far is to strip out usages of that namespace. I’ll have to dig further in the new year to understand whether the change that Unity has made was intentional.

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.