I’m working with an unreliable server to which the connection is sometimes lost while I’m working on my project. However when the server is down (or not responding) and I save or check out an asset, I’m seeing this window:
However when I click cancel it won’t go away and the editor is and remains completely unuseable until the connection to the server is regained. There is no way to force disconnection since all the other windows cannot be brought into focus anymore. I have to kill the editor via the task manager and lose all my work. This is an annoyance and I hope it can be fixed!
What version of 4.7 are you using, and are you using the binary version installed by the Launcher or did you build the Engine from source code?
I tried to reproduce this by using a project that is set up to use Perforce as source control, then disconnected from the network. Once I had disconnected, none of the Perforce functionality in the Engine worked, and I was unable to see the message window that you provided a screenshot of. Are the connectivity issues that you are experiencing happening at the server you are using for your Perforce repository, or are they happening at your side of the connection?
Thanks for your reply. I’m using 4.7.6 and the version installed by the Launcher.
It’s not so much about disconnecting, it’s a special time out case, where the source control status can’t verify if the server is still there or not, or when the source control window is waiting for a reply of the server that will never come.
The time-out is probably too long and when we click cancel, the time-out is not overruled and the source control window remains in this waiting state, even when we click continue.
This may happen when the server is overloaded or simply when the connection is unreliable. During these periods, Perforce will also often be in a hanging state, trying to complete commands that take forever to complete, so this is happening at server side.
It may also happen if the client computer has internet connection issues, in particular when the internet connection is lost and windows reports the internet connection as ‘local only’ during execution of a command
I did some checking with our tools team and discovered that this issue had actually been reported by a few of our artists when working from home. A ticket had been entered for the issue (UE-7680), but when it was investigated it was determined that the root cause of this issue seems to lie within the P4API.
What seems to happen is that P4 hits an internal timeout if it cannot connect with the server. Unfortunately, when this happens the call in the P4API cannot be cancelled, only waited on. Also unfortunately, the timeout in P4 cannot be configured, and appears to be set to about 20 seconds. When the timeout gets triggered, the P4 thread gets stuck and cannot shift into the cancellation routine. This results in what you were seeing, with the window seeming to be stuck on the screen and nothing else can be done.
Would you be able to provide some idea of how often this affects you?
It depends on server load. With a lot of people pulling data from the server at once, saving and checking out files becomes a slow process and the server becomes prone to timing out. It does not happen often, I would say just a few times per month, so it’s not critical to our workflow.
I understand this is a problem inherent to Perforce, but as a possible workaround it would be great if the P4API call itself could be wrapped in a seperate thread such that we can at least hide the UE4 window and continue working or choose to Save and make writable, until the server responds again. The cancel button is not of much use currently.
I entered a new ticket with a feature request to investigate the possibility of allowing the Editor to continue to be used after the connection to the Perforce server has timed out (UE-16729). It certainly does not seem to be desirable that this will prevent the Editor from being used until a connection is made successfully. Hopefully we will be able to find a good way to improve on this.
I checked the feature request I had entered and it is currently in Backlogged status. I updated the ticket to reflect your additional interest, but I am not sure if there will be any traction on this right away.
wow this reply was so fast!
how did you unlink perforce from unreal?
ive been at it for a while, and i remember setting up perforce was a bear.
(sorry if this shows up multiple times. I refreshed the page and it was gone. Im having bad luck with electronics lately)
Unfortunately there does not appear to have been any work done on the feature request that I entered for this. The feature request ticket (UE-16729) is available on our public bug tracker if you want to keep an eye on it.
Unfortunately we do not currently have any workarounds for this particular issue. The ticket that I had entered previously asking for a way to close/move the message window is still open, but also still in a Backlogged state. I updated my previous comment to include a link to that ticket on our public issue tracker site, so you can check its status in the future.