Saving a prefab freezes the editor indefinetely if the PlasticSCM tab is open

There is a breaking bug which hampers production for all team members when working with plastic in unity.

Unity: 2020.3.40f1
Version Control: 1.17.2
PlasticSCM: 11.0.16.7460

Issue is very simple, if you save a prefab while the PlasticSCM tab is open (does NOT have to be in focus) in the editor triggers ProjectBrowser.OnGUI.Repaint in very strange intervals. Sometimes it could happen instantly after opening the editor, sometime it happens after you save 2-3 times, sometimes it happens after 5-10 times, but it will ALWAYS happen no matter what without any fault, its a ticking time-bug waiting to happen.

8495576--1130726--plasticeditorfreezebug.png

The ONLY workaround that I found which have been implemented team-wide is to NOT have the PlasticSCM tab open in the editor i.e. Rightclick (PlasticSCM) → Close Tab. This solves the issue and this never happens. As soon as you open the PlasticSCM tab, the bug may happen at the prev. mentioned intervals.

While writing this message the message is still up and the editor is not responsive and still stuck.

8495576--1130729--plasticeditorfreezebug2.png

I searched the forums and found that this bug may have been present and fixed earlier but only for the case of launching the editor where PlasticSCM could get stuck if certain conditions had been met (Not being logged in, loosing internet connection etc.)

However this is not fixed and I have seen no mention of this bug in the forums. This happens for all team members (10+) if the PlasticSCM tab is open.

Hey @FadiBotoros ,

Thanks for reporting this. Unfortunately, I have been unable to reproduce this behaviour. In the below screenshot, you can see I have created a simple prefab from the Main Camera object in the sample scene, and any changes I make to this prefab are saved automatically and displayed as a change in the Plastic SCM window. Is there something I have done wrong with my reproduction steps?

I used version 1.17.2 of the package as you have reported, but I notice that there is a newer version (1.17.6) available for this Unity version. Can you please update to this version and confirm whether the issue persists?

Issue still persists on Version Control Package 1.17.6

8524580--1137203--projectbrowserbug.png

As mentioned in my original post, this does not always happen. Sometimes it happens instantly sometimes it happens after a few tries. This bug just happened because I accidentally left the PlasticSCM tab open and was in the process of moving a gameobject in the scene and pressing Ctrl-S (not modifying a prefab).

Usually the fastest way to reproduce the issue is to (very quickly) make changes and save them without giving the editor time to refresh. This forces the editor to freeze like this. I tried to reproduce this bug multiple times after it having triggered already and I had to force close the editor in task manager but it was not possible to reporoduce. So it may have something to do with executing a specific set of actions before it triggering.

So this just happened as the first thing when launching unity today and saving a change made to a prefab.
It seems like a different process froze up the editor but the behavior is consistent with the previous one “ProjectBrowser.OnGUI.repaint”

8535209--1139753--inspectorwindowrepaintfreeze.PNG

Are you able to share your Editor log after reproducing the issue?

You may also find some useful information in the unityplastic.debug.log (Version Control plugin log) found here: %localappdata%\plastic4\logs\

I’ve been running into this issue as well. I checked my logs and found an error (pasted below). The exclusive checkout error is strange because my PlastiSCM user is the one whom has it exclusively checked out. I redacted my email in the logs.

PlasticSCM: 11.0.16.7411
Unity3D: 2021.3.7f1
Version Control: 1.17.6

2022-12-06 23:04:59,678 FALCON-ONE\jaden DEBUG CmProxy - Error invoking LockItems. These items are exclusively checked out by:
/Assets/_prefabs/Entities/Interactables/Openables/Cabinet.prefab (wk:hazmats:d799898b-77e6-4942-8b27-cffddf4165af owner:redactedemail@gmail.com)
.
at PlasticPipe.PlasticProtocol.Client.ClientTransport.SendAndWait (PlasticPipe.PlasticServer plasticServer, PlasticPipe.PlasticProtocol.Messages.PlasticMethods method, Codice.CM.Common.Credentials creds, PlasticPipe.PlasticProtocol.Messages.INetworkMessage msg, PlasticPipe.PlasticProtocol.Messages.INetworkMessage response, System.Boolean bRetryWriteMethod, Codice.Utils.Buffers.FlexibleBufferPool lz4BufferPool, PlasticPipe.PlasticProtocol.Client.ClientTransport+INegotiateActiveDirectory negotiateActiveDirectory, System.Int32 connTimeoutMsec, PlasticPipe.PlasticProtocol.Client.ClientTransport+IResolveCloudServer resolveCloudServer) [0x00342] in <1e51439243a4446392211eb63cd2b663>:0
at PlasticPipe.PlasticProtocol.Client.ClientTransport.SendAndWaitWithRetry (PlasticPipe.PlasticServer server, PlasticPipe.PlasticProtocol.Messages.PlasticMethods method, Codice.CM.Common.Credentials creds, PlasticPipe.PlasticProtocol.Messages.INetworkMessage msg, PlasticPipe.PlasticProtocol.Messages.INetworkMessage response, Codice.Utils.Buffers.FlexibleBufferPool lz4BufferPool, PlasticPipe.PlasticProtocol.Client.ClientTransport+INegotiateActiveDirectory negotiateActiveDirectory, System.Int32 connTimeoutMsec, PlasticPipe.PlasticProtocol.Client.ClientTransport+IResolveCloudServer resolveCloudServer) [0x00158] in <1e51439243a4446392211eb63cd2b663>:0
at PlasticPipe.PlasticProtocol.Client.ClientTransport.InvokeMethod (PlasticPipe.PlasticServer server, PlasticPipe.PlasticProtocol.Messages.PlasticMethods method, Codice.CM.Common.Credentials creds, PlasticPipe.PlasticProtocol.Messages.INetworkMessage msg, PlasticPipe.PlasticProtocol.Messages.INetworkMessage response) [0x00008] in <1e51439243a4446392211eb63cd2b663>:0
at Codice.Client.Common.Connection.PlasticProtocolCmProxy+PlasticProtocolMethodInvoker.DoInvokeMethod (PlasticPipe.PlasticServer server, Codice.CM.Common.Credentials creds, System.Exception& ex) [0x00002] in <1e51439243a4446392211eb63cd2b663>:0
2022-12-06 23:04:59,678 FALCON-ONE\jaden DEBUG CmProxy - InvokeRemoteMethod failed. Server = Firelight@cloud. Error = These items are exclusively checked out by:
/Assets/_prefabs/Entities/Interactables/Openables/Cabinet.prefab (wk:hazmats:d799898b-77e6-4942-8b27-cffddf4165af owner:redactedemail@gmail.com)
. retryOn = Authentication, HostUnreachable, ServerCertificate
2022-12-06 23:04:59,679 FALCON-ONE\jaden DEBUG WorkspaceTree - Clean() WkId d799898b-77e6-4942-8b27-cffddf4165af
2022-12-06 23:04:59,747 FALCON-ONE\jaden DEBUG ChannelCall - protocol:plasticproto sec:ssl sentb: 769|sendt: 0|recb: 3716|rect: 300|prt: 401|sert: 330|dest: 0|zip: 0| Firelight@cloud|GetBranchInfoByName
2022-12-06 23:04:59,748 FALCON-ONE\jaden DEBUG PlasticPipe - prt: 406|GetBranchInfoByName |Firelight@cloud
2022-12-06 23:05:00,222 FALCON-ONE\jaden DEBUG WorkspaceStatus: DiskChangesSearcher - Process changes: 860
2022-12-06 23:05:02,740 FALCON-ONE\jaden DEBUG WatcherFsNodeReader - FsWatcher. Event path:'d:\Firelight\hazmats\.plastic' type:Changed
2022-12-06 23:05:02,740 FALCON-ONE\jaden DEBUG WatcherFsNodeReader - FsWatcher. Event path:'d:\Firelight\hazmats\.plastic\plastic.trees.lck' type:Created
2022-12-06 23:05:02,740 FALCON-ONE\jaden DEBUG WatcherFsNodeReader - FsWatcher. Event path:'d:\Firelight\hazmats\.plastic' type:Changed

Oh is this whats happening? I will try closing that window.

I think this might actually be a thing, I had unity freeze in this same way multiple times after editing two prefabs. And now i’ve edited like 10 with no issue.

I’m using 2021.3.14

It’s of course up to preference, but anything ‘in’ unity is always going to be a buggy mess. I lost all faith with any built-in version control after collab.

I run Plastic SCM externally and find it a far more confident setup, so it’s tracking changes without any reliance on the editor. Not to mention dealing with plastic scm UI in the editor just feels clunky.

8832313--1202728--upload_2023-2-24_2-50-27.png

This isn’t a solution obviously as it doesn’t fix the built-in plugin; just sharing my experience in using the external version solely, which has been pretty solid.

Unfortunately, attempts at reproducing this have been in vain. Im guessing there is something specific within your lock rules. If you have a reproduction case for this, so that we can attempt a fix, please can you share it with us via a support ticket?

I’ll try when i have time, so far I haven’t had the tab up for the past few days and not a single freeze.

I reported this to our assigned ISS rep who brought this forward to the Plastic team, they were able to reproduce the bug and seem to have uploaded a silent fix (not mentioned in the changelog) with the latest version control package 2.0.1. It may have resolved this issue but I have not tested it extensively to make sure. However I have not experienced any freezes since updating it today.

As stated by @FadiBotoros , this is now fixed in version 2.0.1. Thanks to everyone who reported this and helped us track it down.

2 Likes

Awesome! 2.0.1 doesn’t seem to have appeared on my end yet, Unity 2021.3.14.