- SanitizerReports only run on Warm runs (since we no longer run TSAN on Cold runs)
- We prime the TSAN Warm runs with a single Zenloader Cold run without TSAN to avoid unnecessary cold runs
- Since we require two different builds of the editor (one with TSAN and one without) we need to make the paths for those artifacts unique to avoid conflicts in the build graph. To do so, move the editor files after each compile and restore them into their expected /Binaries/<platform> path before running, using the appropriate editor binaries for Cold and Warm respectfully. Without this BuildGraph will generate hundreds of errors for each file conflict which adds excessive noise.
#jira UE-215045
#rnx
[CL 33916071 by kevin macaulayvacher in ue5-main branch]
- Makes 'warm' jobs only depend on the specific 'cold' job for their config, rather than depending on all previous cold jobs.
- Makes TSAN runs only run on warm runs as cold is too slow. TSAN jobs will thus, build and run a cold job without TSAN enabled to prime the DDC and then run a 'warm' TSAN enabled job. We do two steps for DDC priming instead of using shared cache or incremental DDC so that the TSAN jobs are more reliable in terms of the code they execute.
#jira UE-215045
#rb thierry.begin
#rnx
[FYI] Francis.Hurteau
[CL 33831964 by kevin macaulayvacher in ue5-main branch]
- Fixes missing condition preventing TSAN tests from running with the correct timeout
#jira UE-214721
#rb thierry.begin
[CL 33603220 by kevin macaulayvacher in ue5-main branch]
- Enables async loading perf tests config now that seems stable enough to get perf numbers and TSAN validation
#jira UE-211620
#rnx
#rb thierry.begin
[FYI] Francis.Hurteau
[CL 33551370 by kevin macaulayvacher in ue5-main branch]
Doing so the TSAN log matcher can now generate logs that contain the full TSAN error context in a single log. An TSAN IssueHandler has been added which looks for the summary log event and generates an issue keyed off the summary error reason and the file in error. The goal being to generate an issue per unique TSAN error
The TSANLogMatcher has had a test added to ensure we properly log only TSAN errors, and the file was renamed to fix warnings regarding file name and class name must matching.
EditorPerf timeouts have been reduced as we were waiting for 8 hours in cases when no tests were running due to errors in the config
#jira UE-212560
#rb Ben.Marsh
[FYI] Francis.Hurteau
[CL 33261211 by kevin macaulayvacher in ue5-main branch]
-- The "SUMMARY" message is the only log line treated as an error since it is information (description of problem, and file+line to address) but also not overly specific such that we should be able to make JIRA issues from these log lines without generating duplicate issues for the same race from different callsites.
- Changes EditorPerf TSAN job to use -VeryVerbose in UAT so that stdout and stderr are redirected for logging. TSAN emits logs to stderr/stdout (depends on environement variable, stderr by default). The logs can be redirected to a log file via envvar TSAN_OPTIONS and specifying a path, however, Horde will only use whatever is written to stdout/stderr for generating issues, so unless a post process is added to forward the TSAN log output after the application has terminated, having stdout redirected stderr/stdout by default for TSAN jobs is simplest approach.
- Added two new KnownLogEvents `Sanitizer_Thread` and `Sanitizer`. `Sanitizer_Thread` is used by the added matcher, but `Sanitizer` was also added so that we may follow the pattern of letting the first id represent the broader category of events
#rb Bryan.Johnson, Ben.Marsh
#jira UE-207074
[FYI] Francis.Hurteau
[CL 33007156 by kevin macaulayvacher in ue5-main branch]
* Added a new option for specifying a number of PIE iterations during each editor run. -NumIterationPIE must be a value >0.
#jira UE-205003
[REVIEW] [at]*bryan.johnson [at]francis.hurteau
[FYI] [at]mark.lintott
#rb Bryan.Johnson
[CL 31277047 by matt breindel in ue5-main branch]