- Added the ability to copy and restore a live session, preventing the need to archive it in first place, making the server exist fast (releasing the session lock very quickly) before showing the crash UI and before the next Editor instance could starts.
Details:
This bug could manifest if various ways. An issue causing this bug was fixed in 11252374. This bug can also be observed if the crash reporting process doesn't release its lock on the crashed session quickly. Archiving a session may takes several minutes (depending on the session size) and while a session is archiving, its database is locked and cannot be restored until the archiving process complets. When the Editor reboots after a crash, it searches for a session to recover, but skip over any session that is mounted/locked assuming the session is concurrently used by a concurrent Editor process, potentially preventing it from restoring. The optimal way to work around this problem is to skip the archiving step. Instead, the live session is never archived (saving a copy), which allows the recovery service to shutdown and release the session lock very quickly ensuring that the session will be unlocked when the Editor restarts. On Editor start, it a crashed session is found and the user decides to restore it, the live session is copied into a new live session.
This changelist also affect those other jira in the following ways:
#jira UE-87899 - Disaster recovery prevents showing the crash reporting UI in a timely manner if the session is large
- This CL changes execution order to shut down the recovery service ASAP to release the lock, but the optimization above make it super fast, so the UI should always be shown in a timely manner.
#jira UE-87927 - Disaster Recovery doesn't restore a crash from a restored session
- This CL ensures the recovery service release the session lock faster than the next instance of the Editor can start.
#jira UE-87900 - Disaster Recovery stops recording transactions if the UDP transport layer restarts or auto-repair
#jira UE-88517 - Concert Log Spam - (ConcertKeepAlive) discarded
- This CL fixes an issues with endpoints timeout logic.
#jira UE-81049 - Clean up the DisasterRecovery Intermediate directory
- This CL added code to clean up the intermediate directory left over by crashed client.
#rb Francis.Hurteau
[CL 11632069 by Patrick Laflamme in 4.25 branch]
To embed a custom manifest, set the WindowsPlatform.ManifestFile to a vaild path in a *.Target.cs file. To disable the embedding of the default manifest, set it to null.
#rb none
#jira UE-88825, UE-87398
[CL 11619014 by Ben Marsh in 4.25 branch]
- Now use utils to pull build information instead of a custom regex.
- 32-bit builds are considered, but discarded if 64-bit versions are also present
#review-11610011 @josh.engebretson
#jira nojira #rb na
[CL 11610010 by Andrew Grant in 4.25 branch]
- Reimplemented TaskGraph tick mode to correctly handle multiple worlds (this involves ticking global command queues outside of world tick and mapping worlds to solver lists for each world tick so we can correctly handle multiple worlds)
- Audited global commands that had an explicit solver capture and moved them to solver commands
- Updated headless tests to new API for solver flags
#rb
#jira
[CL 11604093 by Benn Gallagher in 4.25 branch]
* UAT will now read each *.Automation.csproj file to determine the output path, and load from there rather than just loading anything under Engine\Binaries\AutomationScripts.
* When compiling *.Automation.csproj files, UAT will set the $(EngineDir) directory to the current engine directory, allowing the project to resolve assembly references to the correct location.
* When generating project files, UBT will create an *.Automation.csproj.props file next to the project containing the path to the engine directory, allowing the assembly to be compiled correctly from Visual Studio.
#rb none
#jira UE-77934
[CL 11601626 by Ben Marsh in 4.25 branch]
- This is based off BuildPhysx.Automation.cs and could be unified with this in the future.
- Update some CMakeLists.txt to support this.
- Convert ICU CMakeLists.txt to support cmake 3.5.2 that ships with the engine.
- Fix up some whitespace in BuildPhysX.
#review-11538204 @brian.white
#jira UE-81798
#rb david.harvey
[CL 11597283 by Anthony Bills in 4.25 branch]