#jira UE-91318 - Events were sent from Crash Reporter after Editor Usage Data is disabled.
#rb none
#lockdown cristina.riveron
#ROBOMERGE-SOURCE: CL 12489133 in //UE4/Release-4.25/... via CL 12489135 via CL 12489146
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)
[CL 12489149 by patrick laflamme in Main branch]
- Fixed crash report client editor to prevent sending any usage data.
#rb Jamie.Dale
#lockdown cristina.riveron
#ROBOMERGE-SOURCE: CL 12489019 in //UE4/Release-4.25/... via CL 12489022 via CL 12489029
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)
[CL 12489031 by patrick laflamme in Main branch]
#jira none
#rb trivial
#ROBOMERGE-SOURCE: CL 12380556 in //UE4/Release-4.25/... via CL 12380573
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v671-12333473)
[CL 12381193 by patrick laflamme in Main branch]
- Modified the Editor session to support lockless logging and corresponding analysis for concurrent events.
- Added null check EditorSessionSummaryWriter::LowDriveSpaceDetected() to prevent accessing a null session.
- Fixed CrashReportClient that could use the analytic provider outside of init/shutdow
- Fixed IdleTime reported that could be buggy if Slate did not register any interaction before a crash occurs.
#jira UE-90719 - FPlatformMisc::RequestExit() can corrupt the EditorSessionSummaryWriter
#rb Jamie.Dale
#ROBOMERGE-SOURCE: CL 12350899 in //UE4/Release-4.25/... via CL 12350910
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v671-12333473)
[CL 12350942 by patrick laflamme in Main branch]
- Ensured the data is fully written and read to/form the pipe between the Editor and CrashReporter.
- Refactored the code sending MTFB to send it as soon as possible
- Added some special exit code to detect when the Editor is still running or the exit code is unknown when the summary event is sent.
#rb Sebastian.Nordgren, Johan.Berg
#jira UE-90733 - Editor summary event may not be sent as expected because CrashReportClient may not consume the pipe data
#ROBOMERGE-SOURCE: CL 12216180 in //UE4/Release-4.25/... via CL 12216189
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v662-12191386)
[CL 12216227 by patrick laflamme in Main branch]
When creating portable callstack for the crash reports a number of stack frames should be skipped, corresponding to the crash collecting code itself. This value was applied to wrong end of the callstack.
#jira UE-89885
#rb stefan.boberg
#ROBOMERGE-SOURCE: CL 12000209 in //UE4/Release-4.25/... via CL 12000773
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)
[CL 12000982 by johan berg in Main branch]
- 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
#ROBOMERGE-SOURCE: CL 11632069 in //UE4/Release-4.25/... via CL 11632084
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v655-11596533)
[CL 11632094 by patrick laflamme in Main branch]
- Fixed CrashReportClient using the analytics provider without checking if it is available first.
#jira UE-89414
#rb Chris.Gagnon
#lockdown cristina.riveron
#ROBOMERGE-SOURCE: CL 11590231 in //UE4/Release-4.24/... via CL 11590232 via CL 11590234
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)
[CL 11590237 by cristina riveron in Main branch]
- Fixed disaster recovery remote endpoint timeout set to zero, preventing it from re-registering with MessageBus when an error occurred (like the socket disconnected).
#jira UE-87899 - Disaster recovery prevents showing the crash reporting UI in a timely manner if the session is large
- Fixed the crash reporter app to display the UI (asking the user to send the bug report) before shutting down the recovery service.
- Renamed the field FDisasterRecoveryInfo::Version into FDisasterRecoveryInfo::Revision because revision is more accurate for the field.
#rb Jamie.Dale
Edigrated 11250824 from Dev-VirtualProduction.
#ROBOMERGE-SOURCE: CL 11515425 in //UE4/Release-4.25/... via CL 11515515
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)
[CL 11577491 by patrick laflamme in Main branch]
- Fixed disaster recovery remote endpoint timeout set to zero, preventing it from re-registering with MessageBus when an error occurred (like the socket disconnected).
#jira UE-87899 - Disaster recovery prevents showing the crash reporting UI in a timely manner if the session is large
- Fixed the crash reporter app to display the UI (asking the user to send the bug report) before shutting down the recovery service.
- Renamed the field FDisasterRecoveryInfo::Version into FDisasterRecoveryInfo::Revision because revision is more accurate for the field.
#rb Jamie.Dale
Edigrated 11250824 from Dev-VirtualProduction.
#ROBOMERGE-SOURCE: CL 11515425 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)
[CL 11515515 by patrick laflamme in 4.25-Plus branch]
- Added a 60 seconds grace period for the Editor process to exit so that we can read its exit code.
#rb Francis.Hurteau
#lockdown cristina.riveron
#ROBOMERGE-OWNER: patrick.laflamme
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 11507818 in //UE4/Release-4.24/... via CL 11508156 via CL 11508181
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)
[CL 11508901 by patrick laflamme in Main branch]
- Added a 60 seconds grace period for the Editor process to exit so that we can read its exit code.
#rb Francis.Hurteau
#lockdown cristina.riveron
#ROBOMERGE-OWNER: patrick.laflamme
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 11507818 in //UE4/Release-4.24/... via CL 11508156
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)
[CL 11508181 by patrick laflamme in 4.25-Plus branch]
While monitoring the parent process CRC doesn't need a full access process handle on Windows. Open the handle using limited acccess flags instead.
#rb stefan.boberg
#jira UE-88601
#lockdown stefan.boberg
#ushell-cherrypick of 11458913 by Johan.Berg
#ROBOMERGE-SOURCE: CL 11458942 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v654-11333218)
[CL 11458943 by johan berg in Main branch]
- Fixed CrashReportApp not reading the return code once the monitored process exited (Editor) because the logical && would early out and prevent reading it (keeping it 0).
Edigrated CL 11445717
#rb Jamie.Dale
#lockdown cristina.riveron
#ROBOMERGE-SOURCE: CL 11445866 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v654-11333218)
[CL 11445875 by patrick laflamme in Main branch]
Add functionality for bImplicit send configuration variable. This allow a game to automatically send crash report without user interaction, displaying a native os dialog when completed.
#rb jamie.dale, patrick.laflamme
#ROBOMERGE-SOURCE: CL 10808278 via CL 10808279
#ROBOMERGE-BOT: (v610-10636431)
[CL 10808280 by johan berg in Main branch]
This ensures that we honor the user-settings for reporting analytics correctly if they change while the editor is running.
#jira UE-82764
[FYI] Johan.Berg
#rb Sebastian.Nordgren
#rnx
#ROBOMERGE-SOURCE: CL 9902945 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v558-9892490)
[CL 9902964 by jamie dale in Main branch]
When the user has allowed usage data to be sent we initialize the analytics backend in the crash report client. If the user has also enabled sending unattended reports and an ensure is encountered followed by a crash the crash reporter would assert because the analytics backend was being initialized twice.
#rb sebastian.nordgren
#jira UE-82764
#ROBOMERGE-SOURCE: CL 9899678 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v558-9892490)
[CL 9899681 by johan berg in Main branch]
A previous change moved the signal to the game/editor that it's okay to continue to after the crash report client was completely done with sending and resolving callstacks, because it was assumed that there was a syncronization problem. However that proved to be another issue, so moving the signal back to where it was originally. This should make the editor only "freeze" a short time, while necessary data is collected.
#jira UE-82333
#rb pj.kack
(ushell-p4-cherrypick of 9868282 by Johan.Berg)
#ROBOMERGE-SOURCE: CL 9868804 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v548-9842178)
[CL 9868810 by johan berg in Main branch]
#rb none
[FYI] sebastian.nordgren
#jira UE-82436
#ROBOMERGE-SOURCE: CL 9838412 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v546-9757112)
[CL 9838415 by ben marsh in Main branch]
Reverted change to where FCrashReportAnalytics was initialized now that we get those settings from the UECrashContext file.
Added DelayedSend analytics attribute that determines whether or not the process that is sending an analytics event was the same one that created it.
#rb jamie.dale
#jira UETOOL-1826
#ROBOMERGE-SOURCE: CL 9731024 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v539-9700858)
[CL 9731027 by sebastian nordgren in Main branch]
- Cleared the concert server instance info on server shutdown.
- Shutdown the disaster recovery service when a crash is created. This enable the next server instance to grab the file lock and restore.
- Fixed archive rotation (delete oldest) that did not work when concurrent servers existed.
- Improved disaster recovery error messages.
- Fixed disaster recovery client not restoring a session that was crashed (server managed the crash), but for which the client process was still hanging around.
- Prevent showing the recovery UI if -unattended is specified on command line.
#rb Jamie.Dale
[CL 9617188 by Patrick Laflamme in 4.24 branch]