Add stderr parameter to CreateProc
Add exec-process test to TestPAL
PR #6919: Add a new FPlatformProcess::CreateProc() overload to allow separating stderr and stdout (Contributed by geordiemhall)
#rb Brandon.Schaefer, James.Singer, Robert.Seiver, Will.Damon
#jira UE-91758, UE-92964
#ROBOMERGE-SOURCE: CL 17290306 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)
[CL 17290325 by geordiemhall in ue5-release-engine-test branch]
Use Perf trace for context switches and stack sampling on PS4 and PS5.
#rb Ionut.Matasaru
#ROBOMERGE-SOURCE: CL 17277312 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)
[CL 17277323 by martins mozeiko in ue5-release-engine-test branch]
Fix the affinity setting at runtime
#jira UE-121211
#ROBOMERGE-SOURCE: CL 17090825 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
#ROBOMERGE[bot1]: dev-enginemerge-test
[CL 17090844 by dan phillips in ue5-release-engine-test branch]
Fix typo where double slash were used
#rnx
#rb trivial
#preflight 60d1fe1fbe81e80001837c38
#ROBOMERGE-SOURCE: CL 16744965 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)
[CL 16744987 by danny couture in ue5-release-engine-test branch]
When this happens the file handle becomes invalid and cannot be used. This change ensures a null handle is returned instead of an invalid handle
It's not clear why a GetFileSizeEx operation would fail on a recently created file handle but it sometimes does for files on file shares (such as for derived data cache files)
#rb devin.doucette
#ROBOMERGE-SOURCE: CL 16704714 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)
[CL 16704734 by stefan boberg in ue5-release-engine-test branch]
- Reenabled the optimization that load the symbols on demand only rather than loading all the symbols.
- Detected when a module loaded in the debug engine (dbghelp) misses the debug symbols, likely because it was implicitly loaded with an incomplete symbol search path and unloaded the module to reload it with the proper symbol search path set so that debug symbols could be found.
- For Editor, 'debug ensure' is significantly faste. The time to stack walk and dump went from ~20s to ~1s.
#jira UE-117236 - Ensure can freeze the Editor for 30+ seconds
#rb Johan.Berg
[FYI] Francis.Hurteau
#ROBOMERGE-SOURCE: CL 16603545 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16603547 by patrick laflamme in ue5-release-engine-test branch]
- Analytics shows that CRC may takes up to 400 seconds to walk all the threads and create a minidump before responding back to the engine on the pipe to resume the crashing thread.
#rb Johan.Berg
#fyi Geoff.Evans
[CL 16483781 by Patrick Laflamme in ue5-main branch]
Engine/Editor changes:
- Split the Editor summary session in two, one summary for the Engine properties and one for the Editor specific properties. Made it easy to extend the Engine summary to create other summaries.
- Made the summary sender as agnostics as possible of the keys it sends.
- Fixed the system wide lock contention between the process when persisting a session. (On problem caused by the lock is UE-114315).
- Fixed concurrent issue when saving the summary sessions on Linux/Mac
- Fixed performance issue when saving the summary session on Linux/Mac. This enable saving at higher frequency.
- Fixed cases where the same session summary is sent more than once.
- Fixed Windows registry key overflow that could happens if we accumulated too many sessions (in theory, this can happen)
- Made adding new properties to the summary easy and private to the implementation.
- Brought the Linux/Mac implementation closer to Windows implementation.
- Reduced memory allocation, especially when the session records a crash.
- Improved chances to send the summary non-delayed by allowing the Editor to send the reports if CRC died unexpectedly.
- Generalized the support to collect and aggregate analytics from helper processes. For example, CRC already collects analytics that is merged with the Editor summary as information supplement
- Reserved the disk space required to store the summary ahead of time to prevent failing later.
- Increased frequency at which the summary is persisted because saving the summary is more efficient. (About every 10 seconds rather than every minutes).
- Added unit tests
CrashReportClient changes:
- Created a 'session summary' from the CRC point of view to merge with the Editor summary.
- Moved analytics collection in a separated class to make the crash reporting code leaner and less noisy with all the analytics
- Merged the CRC diagnostic logger in the class collecting CRC analytics summary and make the diagnostic log a property in the summary.
- Collected analytics (on behalf of Editor) in a background thread because CRC main thread can be blocked collecting a crash, so it doesn't pay attention to other things
- Added MonitorBatteryLevel and MonitorOnACPower summary properties on Windows. Collected on CRC background thread (never blocked, so we reduce changes to miss the battery running out)
- Added MonitorSessionDuration summary property to track now long CRC ran.
- Added MonitorQuitSignalRecv summary property to detect when CRC is soft killed like: taskkill /PID 1234
- Added MonitorIsReportingCrash summary property to track when CRC dies reporting a crash.
- Added MonitorIsCollectingCrash summary property to track when CRC dies collecting a crash artifacts.
- Added IsProcessingCrash summary property to track when CRC dies processing a crash.
- Added MonitorCrashed summary property to track when CRC exception handler was triggered.
- Added MonitorWasShutdown summary property to track when CRC summary was shutdown
- Added MonitorLoggingOut summary property to track when CRC died because the user was logging out (or as result of shutting down or restarting the computer).
- More accurate value for DeathTimestamp summary property because this is now captured in CRC background thread (which cannot be busy handling a crash)
- Added crash processing timing to CRC diagnostic logs (how long it takes to collect/process a crash).
#rb Jamie.Dale, Wes.Hunt, Johan.Berg
#jira UETOOL-3500
#jira UE-114315
[CL 16324612 by Patrick Laflamme in ue5-main branch]