Reproduction steps:
1. Open the attached “BugRepro” project
2. Click Window > Unity Version Control
3. In the Unity Version Control Window, create a new workspace
4. Select all files and check-in
5. Observe that Unity Version Control shows that all the checked-in files are deleted, although they still exist in the Assets folder
6. Click Undo
7. Observe that Unity Version Control shows that all the checked-in files are deleted, although they still exist in the Assets folder
8. Select all the items, including supposedly deleted ones
9. Checkin changes
10. Wait for the domain to reload
Expected result: Domain reloads properly, and any changes made are properly checked in
Actual result: Unity Version Control is not working properly and Unity Editor crashes after all the reproduction steps
Reproducible with: 2022.2.0a17, 2022.2.21f1, 2022.3.5f1
Not reproducible with: 2021.3.29f1, 2023.1.9f1, 2023.2.0b5
Fixed in: 2022.3.6f1
Couldn’t test with: 2022.2.0a1, 2022.2.0a16 (can’t check-in changes because of a GUI error)
Reproducible on: Ubuntu 23.04
Not reproducible on: Windows 10 Pro 22H2
First lines of the stack trace:
#0 0x0055825c63e20c in burst_signal_handler(int, siginfo_t*, void*)
#1 0x007fb6df2bae60 in funlockfile
#2 0x007fb58897e761 in mono_class_get_name
#3 0x0055825ca5be26 in void SerializableManagedRefTransfer::TransferTextBased<SerializableManagedRefBackupGenerator, YAMLRead>(Object*, SerializableManagedRef&, YAMLRead&, bool)
#4 0x0055825ca3b1ab in ManagedObjectHostTransferRedirect<MonoBehaviour>::Transfer(MonoBehaviour&, YAMLRead&)
#5 0x0055825cb6878f in SerializedFile::ReadObject(long, ObjectCreationMode, bool, TypeTree const*, bool, Object&, CacheReaderBase*) const
#6 0x0055825cb68000 in SerializedFile::ReadObject(long, ObjectCreationMode, bool, TypeTree const*, bool, Object&)
Note: The crash doesn’t reproduce every time using the same steps, sometimes it may involve multiple retries and closing the Editor