Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Bug LocalizeStringEvent ClearChangeHandler

Discussion in 'Localization Tools' started by Vlad0sZ, Feb 2, 2023.

  1. Vlad0sZ

    Vlad0sZ

    Joined:
    Apr 9, 2017
    Posts:
    6
    Hi, i have a problem:

    Localization package 1.3.2, (and trying in 1.4+ versions);

    I have an empty scene with only one LocalizeStringEvent component.
    When I exit the application it calls the methods
    OnDisable() and then OnDestroy().

    Both of these methods call ClearChangeHandler() method.

    Then I have an exception:



    Code (CSharp):
    1. NullReferenceException
    2.   at (wrapper managed-to-native) UnityEngine.Object.GetName(UnityEngine.Object)
    3.   at UnityEngine.Object.get_name () [0x00001] in C:\buildslave\unity\build\Runtime\Export\Scripting\UnityEngineObject.bindings.cs:194
    4.   at UnityEngine.Localization.Tables.LocalizationTable.VerifySharedTableDataIsNotNull () [0x00011] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Tables\LocalizationTable.cs:154
    5.   at UnityEngine.Localization.Tables.LocalizationTable.get_TableCollectionName () [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Tables\LocalizationTable.cs:43
    6.   at UnityEngine.Localization.Tables.DetailedLocalizationTable`1[TEntry].ToString () [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Tables\DetailedLocalizationTable.cs:634
    7.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].ToString () [0x00041] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:245
    8.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].get_DebugName () [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:79
    9.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.get_DebugName () [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:516
    10.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.get_DebugName () [0x00016] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:417
    11.   at UnityEngine.AddressableAssets.Utility.ResourceManagerDiagnostics.CalculateHashCode (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\Utility\ResourceManagerEventCollector.cs:56
    12.   at UnityEngine.AddressableAssets.Utility.ResourceManagerDiagnostics.OnResourceManagerDiagnosticEvent (UnityEngine.ResourceManagement.ResourceManager+DiagnosticEventContext eventContext) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\Utility\ResourceManagerEventCollector.cs:120
    13.   at UnityEngine.ResourceManagement.ResourceManager.PostDiagnosticEvent (UnityEngine.ResourceManagement.ResourceManager+DiagnosticEventContext context) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\ResourceManager.cs:323
    14.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].DecrementReferenceCount () [0x0004a] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:174
    15.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.DecrementReferenceCount () [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:527
    16.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.Release () [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:525
    17.   at UnityEngine.ResourceManagement.ResourceManager.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\ResourceManager.cs:611
    18.   at UnityEngine.AddressableAssets.AddressablesImpl.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\AddressablesImpl.cs:804
    19.   at UnityEngine.AddressableAssets.Addressables.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\Addressables.cs:1068
    20.   at UnityEngine.Localization.AddressablesInterface.ReleaseInternal (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Addressables\AddressablesInterface.cs:56
    21.   at UnityEngine.Localization.AddressablesInterface.SafeRelease (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x0000c] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Addressables\AddressablesInterface.cs:44
    22.   at UnityEngine.Localization.GetTableEntryOperation`2[TTable,TEntry].Destroy () [0x00011] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Operations\GetTableEntryOperation.cs:188
    23.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].DecrementReferenceCount () [0x000e4] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:187
    24.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.DecrementReferenceCount () [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:527
    25.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.Release () [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:525
    26.   at UnityEngine.ResourceManagement.ResourceManager.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\ResourceManager.cs:611
    27.   at UnityEngine.AddressableAssets.AddressablesImpl.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\AddressablesImpl.cs:804
    28.   at UnityEngine.AddressableAssets.Addressables.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\Addressables.cs:1068
    29.   at UnityEngine.Localization.AddressablesInterface.ReleaseInternal (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Addressables\AddressablesInterface.cs:56
    30.   at UnityEngine.Localization.AddressablesInterface.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Addressables\AddressablesInterface.cs:39
    31.   at UnityEngine.Localization.LocalizedString.ClearLoadingOperation () [0x00074] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Localized Reference\LocalizedString.cs:740
    32.   at UnityEngine.Localization.LocalizedString.remove_StringChanged (UnityEngine.Localization.LocalizedString+ChangeHandler value) [0x00046] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Localized Reference\LocalizedString.cs:131
    33.   at UnityEngine.Localization.Components.LocalizeStringEvent.ClearChangeHandler () [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Component Localizers\LocalizeStringEvent.cs:153
    34.   at UnityEngine.Localization.Components.LocalizeStringEvent.OnDisable () [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Component Localizers\LocalizeStringEvent.cs:104
    35.  
    36. Exception: Cannot decrement reference count for operation GetTableEntryOperation`2, Current Locale: Russian (ru), Selected Locale: Russian (ru), Table: TableReference(2e88aa99-eb6b-5c04-6aa3-09e2693f46e0 - Menu), Entry: TableEntryReference(4703172273283072), Fallback: True because it is already 0
    37.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].DecrementReferenceCount () [0x00011] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:169
    38.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.DecrementReferenceCount () [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:527
    39.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.Release () [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:525
    40.   at UnityEngine.ResourceManagement.ResourceManager.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\ResourceManager\ResourceManager.cs:611
    41.   at UnityEngine.AddressableAssets.AddressablesImpl.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\AddressablesImpl.cs:804
    42.   at UnityEngine.AddressableAssets.Addressables.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.addressables@1.19.17\Runtime\Addressables.cs:1068
    43.   at UnityEngine.Localization.AddressablesInterface.ReleaseInternal (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Addressables\AddressablesInterface.cs:56
    44.   at UnityEngine.Localization.AddressablesInterface.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Addressables\AddressablesInterface.cs:39
    45.   at UnityEngine.Localization.LocalizedString.ClearLoadingOperation () [0x00074] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Localized Reference\LocalizedString.cs:740
    46.   at UnityEngine.Localization.LocalizedString.remove_StringChanged (UnityEngine.Localization.LocalizedString+ChangeHandler value) [0x00046] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Localized Reference\LocalizedString.cs:131
    47.   at UnityEngine.Localization.Components.LocalizeStringEvent.ClearChangeHandler () [0x00001] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Component Localizers\LocalizeStringEvent.cs:153
    48.   at UnityEngine.Localization.Components.LocalizeStringEvent.OnDestroy () [0x00000] in D:\Repositories\SandBox Unity\Library\PackageCache\com.unity.localization@1.2.1\Runtime\Component Localizers\LocalizeStringEvent.cs:106
    49.  
    Because during onDestroy() in the AsyncOperationBase.Decrement Reference Count() method m_reference Count already becomes 0 after OnDisable() was called.
     

    Attached Files:

    • 2.png
      2.png
      File size:
      122.9 KB
      Views:
      60
    • 1.png
      1.png
      File size:
      123.8 KB
      Views:
      57
  2. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    7,876
  3. Vlad0sZ

    Vlad0sZ

    Joined:
    Apr 9, 2017
    Posts:
    6
    Ok. IN-30823

    And when application exited my StringTable (as ScriptableObject) is null and SharedData is null
     

    Attached Files:

    • 3.png
      3.png
      File size:
      150.7 KB
      Views:
      66
    karl_jones likes this.
  4. Vlad0sZ

    Vlad0sZ

    Joined:
    Apr 9, 2017
    Posts:
    6
    Hello, I think I've discovered a problem. IN-45044

    Watch steps:

    1) Create new project (I have Unity 2020.3.38f1)
    2) Add Localization Package (I have 1.4.4 version) and Addressables (1.21.8)
    3) Create Localization Settings, add locales (1 or many, it does not matter)
    4) Create Localization Table and 1 key inside.
    5) Create new scene, add canvas, add tmp text and localize it with created key

    >>> 6) Go to Addressables Settings, Enable Send Profiler Events

    7) Make addressables build and application build.
    8) Run application, wait for text localized
    9) Close application and go to player.log


    Okey, now I wanted to study this problem. I started Standalone Player in Debug mode.

    I had a breakpoint on these lines

    LocalizedString.cs:778 - when OnDisable is called (when closing the application) at LocalizeStringEvent

    Next point at AsyncOperationBase.cs:209 (method
    internal void DecrementReferenceCount());

    Here, for LocalizedString i have m_referenceCount = 1;

    Next, unity call Destroy() for operation and here called Addressables.SafeRelease
    at point GetTableEntryOperation.cs:236.

    And this called again AsyncOperationBase.cs:209 for GetTableEntryOperation.

    This called AsyncOperationBase.cs:214 (m_RM.postProfilerEvents is true)
    Go to inside m_RM.PostDiagnosticEvent()
    Go to inside m_diagnosticsHandler?.Invoke(context);

    And now you get into the method ResourceManagerDiagnostics.CalculateHashCode() -ResourceManagerEventCollector.cs:56

    Next check stacktrace---
    NullReferenceException
    at (wrapper managed-to-native) UnityEngine.Object.GetName(UnityEngine.Object)
    at UnityEngine.Object.get_name () [0x00001] in C:\buildslave\unity\build\Runtime\Export\Scripting\UnityEngineObject.bindings.cs:194
    at UnityEngine.Localization.Tables.LocalizationTable.VerifySharedTableDataIsNotNull () [0x00011] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Tables\LocalizationTable.cs:154
    at UnityEngine.Localization.Tables.LocalizationTable.get_TableCollectionName () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Tables\LocalizationTable.cs:43
    at UnityEngine.Localization.Tables.DetailedLocalizationTable`1[TEntry].ToString () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Tables\DetailedLocalizationTable.cs:686
    at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].ToString () [0x00041] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:291
    at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].get_DebugName () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:81
    at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.get_DebugName () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:575
    at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.get_DebugName () [0x00016] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:423
    at UnityEngine.AddressableAssets.Utility.ResourceManagerDiagnostics.CalculateHashCode (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\Utility\ResourceManagerEventCollector.cs:58


    Full Stack trace





    Code (csharp):
    1. NullReferenceException
    2.   at (wrapper managed-to-native) UnityEngine.Object.GetName(UnityEngine.Object)
    3.   at UnityEngine.Object.get_name () [0x00001] in C:\buildslave\unity\build\Runtime\Export\Scripting\UnityEngineObject.bindings.cs:194
    4.   at UnityEngine.Localization.Tables.LocalizationTable.VerifySharedTableDataIsNotNull () [0x00011] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Tables\LocalizationTable.cs:154
    5.   at UnityEngine.Localization.Tables.LocalizationTable.get_TableCollectionName () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Tables\LocalizationTable.cs:43
    6.   at UnityEngine.Localization.Tables.DetailedLocalizationTable`1[TEntry].ToString () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Tables\DetailedLocalizationTable.cs:686
    7.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].ToString () [0x00041] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:291
    8.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].get_DebugName () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:81
    9.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.get_DebugName () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:575
    10.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.get_DebugName () [0x00016] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:423
    11.   at UnityEngine.AddressableAssets.Utility.ResourceManagerDiagnostics.CalculateHashCode (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\Utility\ResourceManagerEventCollector.cs:58
    12.   at UnityEngine.AddressableAssets.Utility.ResourceManagerDiagnostics.OnResourceManagerDiagnosticEvent (UnityEngine.ResourceManagement.ResourceManager+DiagnosticEventContext eventContext) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\Utility\ResourceManagerEventCollector.cs:124
    13.   at UnityEngine.ResourceManagement.ResourceManager.PostDiagnosticEvent (UnityEngine.ResourceManagement.ResourceManager+DiagnosticEventContext context) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\ResourceManager.cs:367
    14.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].DecrementReferenceCount () [0x0004a] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:215
    15.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.DecrementReferenceCount () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:589
    16.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.Release () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:532
    17.   at UnityEngine.ResourceManagement.ResourceManager.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\ResourceManager.cs:710
    18.   at UnityEngine.AddressableAssets.AddressablesImpl.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\AddressablesImpl.cs:835
    19.   at UnityEngine.AddressableAssets.Addressables.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\Addressables.cs:1445
    20.   at UnityEngine.Localization.AddressablesInterface.ReleaseInternal (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Addressables\AddressablesInterface.cs:82
    21.   at UnityEngine.Localization.AddressablesInterface.SafeRelease (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x0000c] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Addressables\AddressablesInterface.cs:47
    22.   at UnityEngine.Localization.Operations.GetTableEntryOperation`2[TTable,TEntry].Destroy () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Operations\GetTableEntryOperation.cs:236
    23.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].DecrementReferenceCount () [0x000e4] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:229
    24.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.DecrementReferenceCount () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:589
    25.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.Release () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:532
    26.   at UnityEngine.ResourceManagement.ResourceManager.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\ResourceManager.cs:710
    27.   at UnityEngine.AddressableAssets.AddressablesImpl.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\AddressablesImpl.cs:835
    28.   at UnityEngine.AddressableAssets.Addressables.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\Addressables.cs:1445
    29.   at UnityEngine.Localization.AddressablesInterface.ReleaseInternal (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Addressables\AddressablesInterface.cs:82
    30.   at UnityEngine.Localization.AddressablesInterface.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Addressables\AddressablesInterface.cs:42
    31.   at UnityEngine.Localization.LocalizedString.ClearLoadingOperation () [0x0003e] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Localized Reference\LocalizedString.cs:783
    32.   at UnityEngine.Localization.LocalizedString.remove_StringChanged (UnityEngine.Localization.LocalizedString+ChangeHandler value) [0x0002d] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Localized Reference\LocalizedString.cs:147
    33.   at UnityEngine.Localization.Components.LocalizeStringEvent.ClearChangeHandler () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Component Localizers\LocalizeStringEvent.cs:159
    34.   at UnityEngine.Localization.Components.LocalizeStringEvent.OnDisable () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Component Localizers\LocalizeStringEvent.cs:106
    35.  
    36. (Filename: C:/buildslave/unity/build/Runtime/Export/Scripting/UnityEngineObject.bindings.cs Line: 194)
    37.  
    38. Exception: Cannot decrement reference count for operation GetTableEntryOperation`2, Current Locale: Russian (ru), Selected Locale: Russian (ru), Table: TableReference(c08f3a67-ef59-afa4-e802-fca5ece3d0f7 - SimpleTable), Entry: TableEntryReference(1702680502272), Fallback: False because it is already 0
    39.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].DecrementReferenceCount () [0x00011] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:210
    40.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.DecrementReferenceCount () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:589
    41.   at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.Release () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\AsyncOperations\AsyncOperationHandle.cs:532
    42.   at UnityEngine.ResourceManagement.ResourceManager.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\ResourceManager\ResourceManager.cs:710
    43.   at UnityEngine.AddressableAssets.AddressablesImpl.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\AddressablesImpl.cs:835
    44.   at UnityEngine.AddressableAssets.Addressables.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.addressables@1.21.8\Runtime\Addressables.cs:1445
    45.   at UnityEngine.Localization.AddressablesInterface.ReleaseInternal (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Addressables\AddressablesInterface.cs:82
    46.   at UnityEngine.Localization.AddressablesInterface.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Addressables\AddressablesInterface.cs:42
    47.   at UnityEngine.Localization.LocalizedString.ClearLoadingOperation () [0x0003e] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Localized Reference\LocalizedString.cs:783
    48.   at UnityEngine.Localization.LocalizedString.remove_StringChanged (UnityEngine.Localization.LocalizedString+ChangeHandler value) [0x0002d] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Localized Reference\LocalizedString.cs:147
    49.   at UnityEngine.Localization.Components.LocalizeStringEvent.ClearChangeHandler () [0x00001] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Component Localizers\LocalizeStringEvent.cs:159
    50.   at UnityEngine.Localization.Components.LocalizeStringEvent.OnDestroy () [0x00000] in D:\Repositories\TestProject Localization\Library\PackageCache\com.unity.localization@1.4.4\Runtime\Component Localizers\LocalizeStringEvent.cs:108
    51.  
    52. (Filename: D:/Repositories/TestProject Localization/Library/PackageCache/com.unity.addressables@1.21.8/Runtime/ResourceManager/AsyncOperations/AsyncOperationBase.cs Line: 210)
     

    Attached Files:

    Last edited: Jun 23, 2023
  5. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    7,876
    I have managed to recreate it locally. Thanks for the bug report!
    Looks like its an issue with our AsyncOperationHandle DebugName. This is used to display details about the operation, such as in the Addressables event viewer. I suspect its trying to get the table name in a load table operation before the table is loaded or after its released. We probably just need to override the DebugName to avoid using an invalid name.
    There could also be more going on here. Ill find out when I debug.
     
    Last edited: Jun 23, 2023
    Vlad0sZ likes this.
  6. Saltant

    Saltant

    Joined:
    Aug 15, 2018
    Posts:
    2
    Any news? Still getting this error when closing the application.
     
  7. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    7,876
    Saltant likes this.