Commit Graph

34 Commits

Author SHA1 Message Date
jamie dale
15918dac97 Only include disaster recovery session data in crash reports when asked to upload log files
[FYI] Patrick.Laflamme
#rb Patrick.Laflamme
#rnx

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 9489700 in //UE4/Main/...
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v524-9564021)

[CL 9573423 by jamie dale in Dev-Core branch]
2019-10-14 15:22:39 -04:00
Jamie Dale
d0f7b3060f Only include disaster recovery session data in crash reports when asked to upload log files
#fyi Patrick.Laflamme
#rb Patrick.Laflamme
#rnx

[CL 9489700 by Jamie Dale in Main branch]
2019-10-09 12:39:19 -04:00
Jamie Dale
2ad3997cc5 Removed unneeded dependencies from CrashReportClient
Legacy code in CrashDebugHelper was dragging in SourceControl and AssetRegistry as dependencies for CrashReportClient.

This dependency is no longer needed, as internal crashes now always perform local symbolification (either via symbols built locally, or synced via UGS). Syncing symbols from Perforce or a network drive is no longer needed or used.

#rb Ben.Marsh
#rnx

[CL 9422370 by Jamie Dale in Dev-Core branch]
2019-10-04 16:17:40 -04:00
Stefan Boberg
1f813eb516 Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb many

[CL 9405827 by Stefan Boberg in Main branch]
2019-10-03 16:26:48 -04:00
Jamie Dale
fb5d4ab110 Added missing CloseProc call
#rb none
#rnx

[CL 9387094 by Jamie Dale in Dev-Core branch]
2019-10-02 18:34:32 -04:00
Jamie Dale
a3e9417b0d Get the monitored process return code in the Crash Report Client and report it via MTBF analytics
- Removed FPlatformProcess::IsApplicationAlive as it's just a combination of (FPlatformProcess::IsProcRunning(...) && !FPlatformProcess::GetProcReturnCode(...)), and the latter lets you get the return code of the monitored application.
   - Note: Getting the return code is only supported on Windows.
 - Updated FWindowsPlatformProcess::GetProcReturnCode to leave ReturnCode unchanged if the function returns false.
   - This is consistent with Mac and Linux.
 - Updated CrashReportClientApp to open the monitor PID during init and use that handle for the rest of the run.
   - This avoids issues with PID re-use as you have a persistent handle to the process, and also avoids repeatedly opening a process handle.
   - Note: This has no benefit on Mac or Linux, as FProcHandle is just a wrapper around a PID.

#rb Johan.Berg, Patrick.Laflamme, Sebastian.Nordgren
#rnx

[CL 9366830 by Jamie Dale in Dev-Core branch]
2019-10-02 10:54:55 -04:00
Jamie Dale
87fc4c774a Set Disaster Recovery and MTBF reporting to only be enabled for the editor variant of the Crash Report Client
#rb Johan.Berg, Patrick.Laflamme
#rnx

[CL 9315527 by Jamie Dale in Dev-Core branch]
2019-10-01 10:36:35 -04:00
Johan Berg
49ddda01f0 Fix restart editor when running crash reporter with GUI.
Add the same check to break out of the main loop when the upload is complete as is being used in the RunUnattended method.

#rb stefan.boberg

[CL 9314805 by Johan Berg in Dev-Core branch]
2019-10-01 09:28:47 -04:00
sebastian nordgren
6f06eab225 SessionSummary analytics event is now sent from the out-of-process CrashReportClient. Currently communication is done through the local storage API in FPlatformMisc. As a result, many analytics fields that were being resolved only when sending analytics are now resolved on startup and stored temporarily.
EditorSessionSummarySender and EditorAnalyticsSession now live in their own module so they can be instantiated from the CrashReportClient.

#jira UETOOL-1825

#rb chris.gagnon, jamie.dale

[CL 9197613 by sebastian nordgren in Dev-Core branch]
2019-09-27 05:53:31 -04:00
Patrick Laflamme
b8b900ba09 Enabled disaster recovery session capture in case of crash.
Enabled capturing assert crash type.
Fixed the session name being looked for when collecting disaster recovery files.

#rb Jamie.Dale

[CL 9163094 by Patrick Laflamme in Dev-Core branch]
2019-09-26 17:05:01 -04:00
Johan Berg
eab335a19d Removed request exit calls in crash reporter, fix logic for disaster recovery.
* Removed crash reporter client usage of "request exit", since we need to be able to send multiple reports in monitor mode. For example a ensure followed by a crash.
* Fix missing parenthesis when deciding to attach recovery service file.

#rb patrick.laflamme

[CL 9093219 by Johan Berg in Dev-Core branch]
2019-09-25 08:44:29 -04:00
Patrick Laflamme
8f314c8475 Added recovery service to CrashReportClient.
- The crash reporter client now depends on Concert
  - When started in monitor mode, the main loop ticks.
  - In case of crash, if the disaster recovery plugin was enabled in the client, the disaster recovery can be attached to the bug reports (currently off)

#rb Jamie.Dale

[CL 8929506 by Patrick Laflamme in Dev-Core branch]
2019-09-20 11:45:11 -04:00
Martin Ridgers
1cf4a2bc67 Deprecate GIsRequestingExit
Get GIsRequestingExit now by IsEngineRequestingExit()

Set GIsRequestingExit now by RequestEngineExit(const TCHAR* Reason) or RequestEngineExit(const FString& Reason)
NOTE If Reason is 4 or less chars it will generate an ensure to force a reason to exit

The reason behind this change is right now setting GIsRequestingExit to true can cause many things to break mainly early on and with out any sort of log warning we have entered this state. We should wrap this behind a function to allow for proper handling

#rb Chris.Babcock, Michael.Trepka, Michael.Noland
#jira UE-79933
[FYI] Michael.Noland


#ROBOMERGE-SOURCE: CL 8649683 via CL 8653683
#ROBOMERGE-BOT: (v417-8656536)

(ushell-p4-cherrypick of 8658680 by brandon.schaefer)

[CL 8926683 by Martin Ridgers in Dev-Core branch]
2019-09-20 10:10:05 -04:00
brandon schaefer
a715ea4f14 Deprecate GIsRequestingExit
Get GIsRequestingExit now by IsEngineRequestingExit()

Set GIsRequestingExit now by RequestEngineExit(const TCHAR* Reason) or RequestEngineExit(const FString& Reason)
NOTE If Reason is 4 or less chars it will generate an ensure to force a reason to exit

The reason behind this change is right now setting GIsRequestingExit to true can cause many things to break mainly early on and with out any sort of log warning we have entered this state. We should wrap this behind a function to allow for proper handling

#rb Chris.Babcock, Michael.Trepka, Michael.Noland
#jira UE-79933
[FYI] Michael.Noland


#ROBOMERGE-SOURCE: CL 8649683 via CL 8653683
#ROBOMERGE-BOT: (v417-8656536)

[CL 8658680 by brandon schaefer in Main branch]
2019-09-12 14:21:26 -04:00
Johan Berg
961d9b41e8 Fixes to crash report client.
* Flush Crash report client analytics events when running in monitor mode. Previous behaviour was to send analaytics event whenever the crash report client exited. When running  in monitor mode we will need to explicitly flush analytics events after every submission of crash/ensure event.
* Crash report client was not respecting "no dialog" flag set by the runtime, causing dialogs to appear for ensures, which should not display them.
* Allow multiple sends from crash report client. Since the CrashReportClient and CrashReportCoreUnattended classes both use GIsRequesting exit, reset this once a crash report has been sent, to allow consecutive reports to be sent.
* Trying to restart the game after crash would result in multiple instances. The client now captures the result of the user selection and exits accordingly.
* On certain crash types (e.x. general protection fault) the crash reporter would not display callstacks. This was due to a race condition between crash report client doing symbol resolving and when the game was trying print callstack to the log.

#rb patrick.lamflamme
#jira UE-79848, UE-79700, UE-79699

[CL 8653323 by Johan Berg in Dev-Core branch]
2019-09-12 02:54:59 -04:00
Johan Berg
923bbae552 Remove superflous dereference of TCHAR*.
#rb none

[CL 8411817 by Johan Berg in Dev-Core branch]
2019-09-03 03:50:30 -04:00
robert manuszewski
72adda2bba Copying //UE4/Dev-Online to Dev-Main (//UE4/Dev-Main)
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: josh.markiewicz
#ROBOMERGE-SOURCE: CL 8321295 in //UE4/Main/...
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v403-8382528)

[CL 8395450 by robert manuszewski in Dev-Core branch]
2019-09-02 03:47:51 -04:00
Johan Berg
c5166ebc27 UECORE-482: Crash reporting in external process.
With this change an additional mode is added to crash reporter client, that allows it to run as a monitoring child process. Additionally stack walking and symbol resolution is moved to this new process on Windows. To support this several changes in stack walking had to be made to allow external processes to be queried. All other platforms remain unchanged.

#jira UECORE-482, UE-72081, UE-75336
#rb ben.marsh, brandon.schaefer, patrick.laflamme

[CL 8395425 by Johan Berg in Dev-Core branch]
2019-09-02 03:15:48 -04:00
Josh Markiewicz
d79515867d Copying //UE4/Dev-Online to Dev-Main (//UE4/Dev-Main)
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none

[CL 8321295 by Josh Markiewicz in Main branch]
2019-08-26 18:35:22 -04:00
robert manuszewski
c291fe91c3 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) [at] 6944469
#rb none
#rnx

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: rolando.caloca
#ROBOMERGE-SOURCE: CL 6944849 in //UE4/Main/...
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v366-6836689)

[CL 6955945 by robert manuszewski in Dev-Core branch]
2019-06-12 12:47:07 -04:00
Rolando Caloca
aa0d2303d6 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) @ 6944469
#rb none
#rnx

[CL 6944849 by Rolando Caloca in Main branch]
2019-06-11 18:27:07 -04:00
brandon schaefer
8697bc62d2 Use the CRC to pop a message up not in crash reporting code
#rb none


#ROBOMERGE-SOURCE: CL 6854205 via CL 6854208 via CL 6854668
#ROBOMERGE-BOT: (v366-6836689)

[CL 6854718 by brandon schaefer in Main branch]
2019-06-05 16:15:07 -04:00
peter sauerbrei
cde7b8d738 Add crash reporting to IOS.
Remove old CrashReportHelper
Move files dealing with crash upload and reporting to Runtime/CrashReportCore from CrashReportClient
Addition of CrashReporter Plugin in Fortnite for use with IOS
#rb brandon.schaefer, chris.bunner


#ROBOMERGE-OWNER: peter.sauerbrei
#ROBOMERGE-AUTHOR: peter.sauerbrei
#ROBOMERGE-SOURCE: CL 5814730 via CL 5814731 via CL 5814748 via CL 5817030

[CL 5817031 by peter sauerbrei in Main branch]
2019-04-09 21:27:26 -04:00
Marcus Wassmer
fee98d3ca5 Merging //UE4/Dev-Main@4729937 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none

[CL 4730169 by Marcus Wassmer in Dev-Rendering branch]
2019-01-15 18:30:06 -05:00
Ben Marsh
a22b952aa9 Copying //UE4/Dev-Build to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

[CL 4718806 by Ben Marsh in Main branch]
2019-01-14 12:11:24 -05:00