Search Issue Tracker

Fixed

Fixed in 2020.3.48f1, 2021.3.26f1, 2022.2.18f1, 2023.1.0b14, 2023.2.0a9

Votes

0

Found in

2020.3.44f1

2021.3.18f1

2022.2.5f1

2023.1.0b2

2023.2.0a1

Issue ID

UUM-26417

Regression

No

Editor crashes on CollectAllSceneManagerAndObjectIDs when changing Asset Serialization Mode to Force Binary

--

-

Reproduction steps:
1. Open the “IN_30918_Project“ project
2. Open Project Settings and navigate to the Editor tab
3. Change Asset Serialization Mode from Force Text to Force Binary

Expected result: the Editor does not crash
Actual result: the Editor crashes

Reproduced in: 2020.3.44f1, 2021.3.18f1, 2022.2.5f1, 2023.1.0b2, 2023.2.0a1

Reproduced using: macOS 13.0.1 (Intel), macOS 13.2 (M1) (by user)

Notes:
1. IMPORTANT: before downgrading/upgrading the project pre-change the Universal RP version in “manifest.json” to a supported one. Otherwise, it stops being reproducible
2. By looking at the version control diff after the crash, the user saw that some assets have successfully been converted to binary assets
3. When reopening the project after the crash Asset Serialization Mode is shown as Force Binary. The crash can be reproduced again when changing to Force Text and back to Force Binary

First few crash stack frames (2023.2.0a1):
1. 0x00000102ce6a05 in CollectUsedSceneObjects(UnityScene const&, dynamic_array<int, 0ul>&, dynamic_array<int, 0ul>&, TransferInstructionFlags)
2. 0x00000102ce8730 in CollectAllSceneManagerAndObjectIDs(UnityScene const&, dynamic_array<int, 0ul>&, TransferInstructionFlags)
3. 0x00000102ce9788 in CalculateAllLevelManagersAndUsedSceneObjects(UnityScene const&, dynamic_array<WriteData, 0ul>&, TransferInstructionFlags, bool)
4. 0x00000102ce93b7 in SaveScene(UnityScene const&, core::basic_string<char, core::StringStorageDefault<char> > const&, core::hash_map<long long, int, core::hash<long long>, std::_{_}1::equal_to<long long> >{_}, TransferInstructionFlags)_
5. 0x00000102f14357 in EditorSceneManager::SerializeSceneIntoFile(UnityScene&, core::basic_string<char, core::StringStorageDefault<char> > const&, TransferInstructionFlags, core::hash_map<long long, int, core::hash<long long>, std::1::equal_to<long long> >)

First few crash stack frames (2021.3.18f1):
1. 0x00000101cfacc0 in CollectAllSceneManagerAndObjectIDs(UnityScene const&, dynamic_array<int, 0ul>&, TransferInstructionFlags)
2. 0x00000101cfc190 in CalculateAllLevelManagersAndUsedSceneObjects(UnityScene const&, dynamic_array<WriteData, 0ul>&, TransferInstructionFlags, bool)
3. 0x00000101cfbd2c in SaveScene(UnityScene const&, core::basic_string<char, core::StringStorageDefault<char> > const&, std::_{_}1::map<long long, int, std::{_}{_}1::less<long long>, std::{_}{_}1::allocator<std::{_}_1::pair<long long const, int> > >*, TransferInstructionFlags)
4. 0x00000101a121c4 in EditorSceneManager::SerializeSceneIntoFile(UnityScene&, core::basic_string<char, core::StringStorageDefault<char> > const&, TransferInstructionFlags, std::_{_}1::map<long long, int, std::{_}{_}1::less<long long>, std::{_}{_}1::allocator<std::{_}_1::pair<long long const, int> > >*)

  1. Resolution Note (fix version 2023.2.0a9):

    This crash happened because:
    - When reserializing the scenes, EditorSceneManager.OpenScene is called
    - When opening the scene, the EditorSceneManager.sceneOpened event is fired
    - The com.unity.multiplayer.samples.coop package is hooked up to this event and it ends up unloading the scene by calling RestoreSceneManagerSetup

    Fixed in 2023.2.0a9 by not issuing 'sceneOpening' and 'sceneOpened' events when reserializing scenes

  2. Resolution Note (fix version 2023.1.0b14):

    Fixed in 2023.1.0b14

  3. Resolution Note (fix version 2022.2.18f1):

    Fixed in 2022.2.18f1

  4. Resolution Note (fix version 2021.3.26f1):

    Fixed in 2021.3.26f1

  5. Resolution Note (fix version 2020.3.48f1):

    Fixed in 2020.3.48f1

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.