Search Issue Tracker

Won't Fix

Votes

41

Found in

2022.3.16f1

2023.2.4f1

2023.3.0b1

Issue ID

UUM-59652

Regression

No

Crash on TransformAccessClearCallback when undoing ModularAvatar > Setup Outfit

-

Reproduction steps:
1. Open the attached project "ReproProj"
2. Open the “/Assets/scene.unity” Scene
3. Right-click “test“ GameObject (shapell > test)
4. Select ModularAvatar > Setup Outfit
5. Press CTRL + Z
6. Repeat steps 3 - 5

Expected result: Editor does not crash and continues to run
Actual result: Editor crashes

Reproducible with: 2022.3.16f1, 2023.2.4f1, 2023.3.0b1
Could not test with: 2021.3.33f1 (No ModularAvatar option)

Reproducible on: Windows 10 Enterprise 21H2
Not reproducible on: No other environment tested

Note:
- Modular Avatar is a 3rd party plugin

  1. Resolution Note:

    The crash in TransformAccessClearCallback comes from TransformAccess data that was saved into Undo being changed without updating the Undo System. This happens during a call to a user function called RebuildLock called after the undo data has been finalised. When attempting to undo, none of the relevant Transforms exist any more and clearing/applying the serialised data regarding those Transforms fails.

    Any code where new objects are created but not explicitly saved into the Undo System cannot be considered fully undoable. Additionally the Undo System cannot be expected to recover gracefully when the data it was provided is incomplete or incorrect, it is simply pointing to invalid memory once something changes without it being informed.

    In this case the constructor OnewayArmatureLock creates hundreds of unsaved Transforms and then baseBonesAccessor is switched to this list, making the TransformAccessArray data that was saved to the Undo System invalid.

    The crash described can be avoided by registering all the 'baseBone' Transforms using Undo.RegisterCreatedObjectUndo(baseBone, "") to ensure that the Transforms referred to in the TransformAccessArray contained in the Undo action still exist.

    Alternatively if the _baseBonesAccessor TransformAccessArray is disposed using _baseBonesAccessor.Dispose() before being directly overwritten the memory is cleared correctly and the Undo system is updated accordingly.

Comments (2)

  1. harald313101

    Feb 16, 2025 22:30

    Hello Everyone,
    My name is Juliet Harald, and I’m from New Hampshire, I lost access to my crypto wallet when I mistakenly deleted the Seed Phrase to my wallet, and I couldn’t access my crypto wallet for weeks. It all became weird when I started getting emails of funds being transferred out of my crypto wallet. I saw $650K withdrawn from my account in a day and I was devastated, it felt like my world was coming down on me. I was torn apart and was in a debt crisis until a colleague of mine told me about Morphohack Cyber Service, a data and crypto wallet recovery service. I sent an email to (Morphohack@cyberservices .com) and the team responded immediately, providing me with support and assistance. I couldn’t believe it when Morphohack Cyber Service was able to trace and retrieve my crypto wallet, tracing all the funds that were withdrawn from my wallet, I’m hugely grateful for the services of Morphohack Cyber Service in helping me get back my crypto wallet and crypto funds. Their services were amazing and professional.
    Contact them via E-Mail(MORPHOHACK@CYBERSERVICES. COM) Whats -App(+1 213 6 72 4092)

  2. anton313101

    Feb 15, 2025 04:22

    My crypto wallet was compromised when I lost my seed phrase.
    Hackers got a hold of my crypto wallet after I lost the seed phrase to my crypto wallet which I had saved to my email.
    I had to go through all possible options to get it figured out but I couldn’t, the support system of Coinbase couldn’t help even when I had secured my account with the special seed phrase for extra security, and that was how I lost access to $2m worth of crypto coins.
    This was investment from my business partners which I had secured in my crypto wallet. Fortunately, I happen to stumble upon a post about MorphoHack Cyber Service, a crypto wallet and funds recovery company. I contacted this team and told them about the whole situation, while I was a bit reluctant about trusting them with my information, it happened there was nothing I couldn’t do to get my funds back so I went with everything they asked, and to my greatest satisfaction, MorphoHack cyber-service was able to give me access to my crypto wallet including securing my crypto wallet from future attempts. I’m in shock and short of words but if you wish to get a hold of them, you can find their contact details below. 
    MAIL:MorphoHack@CyberServices .com
    WHATS APP:+1 213  672- 4092

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.