Commit Graph

65 Commits

Author SHA1 Message Date
kevin macaulayvacher
e5918f7b66 Log stdout when running TSAN to ensure we are logging as much as possible until we can determine the cause of sporadic Engine Initialization failures
#rnx

[CL 35993610 by kevin macaulayvacher in ue5-main branch]
2024-09-03 20:52:46 -04:00
kevin macaulayvacher
7551370497 Enable verbose logging for warm TSAN jobs only so we can unblock cold runs to diagnose the sporadically failing warm runs
#rnx

[CL 35966946 by kevin macaulayvacher in ue5-main branch]
2024-09-03 10:30:30 -04:00
kevin macaulayvacher
a37dabf470 Reduce the TSAN EditorPerf timeouts and increase logging level temoprarily while we diagnose issues on the farm
#jira UE-218226
#rb thierry.begin
#rnx

[CL 35863301 by kevin macaulayvacher in ue5-main branch]
2024-08-28 08:41:05 -04:00
kevin macaulayvacher
9839774155 Don't publish TSAN telemetry to the EditorPerf DBs
#rb thierry.begin
#rnx

[CL 35769955 by kevin macaulayvacher in ue5-main branch]
2024-08-23 09:38:19 -04:00
kevin macaulayvacher
b61e32249f IgnoreModified files in SanitizerReport jobs to avoid warnings from BuildGraph when running TSAN jobs
#rnx
#rb thierry.begin
#jira UE-217674

[CL 34496825 by kevin macaulayvacher in ue5-main branch]
2024-06-19 09:05:05 -04:00
kevin macaulayvacher
32a36f1b33 EditorPerf.xml now re-orders jobs so we always run cold then warm tests for each node type so we can have a consistent DDC when running warm nodes (and if the cold node fails we won't run the warm node at all, which was the case previously but failing cold jobs from unrelated node types could still wipe the cache for warm jobs trying to run)
#jira UE-217566, UE-217569
#rb thierry.begin
#rnx

[CL 34376104 by kevin macaulayvacher in ue5-main branch]
2024-06-14 13:06:35 -04:00
kevin macaulayvacher
0fa88f6a20 Extend the timeout and reduce the PIE iterations for CitySample TSAN tests to prevent them from timing out
#rnx

[CL 33937544 by kevin macaulayvacher in ue5-main branch]
2024-05-28 07:46:46 -04:00
kevin macaulayvacher
6a092c8293 Fixes a handful of issues in the TSAN CitySample Tests:
- 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]
2024-05-25 16:29:40 -04:00
kevin macaulayvacher
9bb8e2b87a - Removes EditorWorkflow nodes from EditorPerf.xml as those jobs are not run in CI and have been deprecated.
- 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]
2024-05-22 11:46:42 -04:00
kevin macaulayvacher
5d33726151 - Updates EditorPerf jobs to only on Cold jobs when running Warm jobs so we don't run all cold jobs sequentially
- 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]
2024-05-13 09:33:24 -04:00
kevin macaulayvacher
daee79b3fd - Increases the timeout for TSAN EditorPerf tests to 5 hours (2 hours is timing out currently)
- 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]
2024-05-09 13:33:36 -04:00
kevin macaulayvacher
5a23733d8b Makes the ThreadSanitizer LogEventMatcher and IssueHandler generic to Sanitizers in general and adds support for TSAN and ASAN. Updates the existing TSAN job to use the renamed commandlet and makes the job name clearer that a sanitizer report is being generated.
#jira UE-213117
#rb Ben.Marsh

[CL 33370008 by kevin macaulayvacher in ue5-main branch]
2024-05-01 07:12:59 -04:00
kevin macaulayvacher
8b887d6c5c Adds a new step to TSAN error process to allow a report of only the unique TSAN errors to be displayed. This step parses the output log from the test run and displays the unique errors and removes any interwoven log lines that are irrelevant.
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]
2024-04-26 08:42:40 -04:00
kevin macaulayvacher
6c79791fdf Fixes EditorWorkflowTests in CI. The -test=EngineTest was removed as the default value for a property used in various macros as part of refactoring in 32524766. However not all macros were updated to still receive a parameter dropping the -test param from workflow tests
#rb matt.breindel
#jira UE-212518
[FYI] Francis.Hurteau

[CL 33033288 by kevin macaulayvacher in ue5-main branch]
2024-04-17 08:06:06 -04:00
kevin macaulayvacher
1c564f5450 - Adds a ThreadSanitizer Structured Logging Matcher so we may contextualize TSAN output in Horde logs. It specifically will attempt to annotate files, symbols, and symbol addresses in callstacks, warning on TSAN "WARNING" messages and "SUMMARY" message.
-- 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]
2024-04-16 13:44:37 -04:00
matt breindel
ab64a37a47 Expanding support for custom gauntlet tests in EditorPerf.xml.
[REVIEW] [at]*bryan.johnson [at]francis.hurteau
#jira UE-205013
#jira UE-202929

#rb Bryan.Johnson

[CL 32525884 by matt breindel in ue5-main branch]
2024-03-26 18:12:27 -04:00
matt breindel
fdd2ef197c Removing Incremental phase from EditorPerfTest as it never functioned properly. General cleanup of naming and logic around phases and zen loader. Cleared up an issue with AssetRegistryCache where we would have had a warm registry cache on Cold phases after the first. These changes require corresponding changes to the stream json.
[REVIEW] [at]*francis.hurteau
[FYI] [at]mark.lintott
#jira UE-206326
#rb Francis.Hurteau#preflight 65c6b4c0964af0e0ad11e2bf

[CL 31368514 by matt breindel in ue5-main branch]
2024-02-10 12:55:05 -05:00
jan yu
382fbdc419 Added a -nozenloader parameter to EditorPerf due to ZenLoader being on by default.
#rb matt.breindel, thierry.begin

[CL 31352202 by jan yu in ue5-main branch]
2024-02-09 15:17:04 -05:00
matt breindel
d4ca81cb52 Small bug fix to CL 31276995 to actually use the ExtraNonCopyableArgs added to EditorPerf.xml perf projects.
#rb matt.breindel
#jira UE-205021

[CL 31305925 by matt breindel in ue5-main branch]
2024-02-08 16:48:45 -05:00
matt breindel
f53be54171 * Improved dependency management for editor perf tests. SetupPerfTests now accepts a UseBinariesFrom argument to allow projects to reuse the binaries generated from other projects' compile steps.
* 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]
2024-02-07 18:33:10 -05:00
matt breindel
70abdd189d Adding support to the BuildGraph system to allow properties first declared inside a macro to be flagged as CreateInParentScope causing them to be created in the scope containing the macro invocation. This allows macros to be used to define collections of properties. This pattern is now used in EditorPerf.xml inside the SetupPerfProject macro.
#rb [at]ben.marsh [at]ryan.hummer [at]bryan.johnson
#jira UE-205820

[CL 31149655 by matt breindel in ue5-main branch]
2024-02-02 19:00:11 -05:00
jerome delattre
24ae93d9f3 Remove References to internal Horde server deployment and network path
#jira UE-201978
#rnx

#rb sean.sweeney, sebastian.lewicki

[CL 30715888 by jerome delattre in ue5-main branch]
2024-01-19 10:19:49 -05:00
danny couture
bebe0d3c5c [EditorPerf] Reuse per branch asset registry to make incremental runs representative of user experience
#rnx
#jira UE-191845
#rb Francis.Hurteau

[CL 28788039 by danny couture in ue5-main branch]
2023-10-14 12:40:57 -04:00
danny couture
5abca472bd [EditorPerfTests] Reuse per branch asset registry to make incremental runs representative of user experience
#jira UE-191845
#rb Francis.Hurteau

[CL 28032199 by danny couture in ue5-main branch]
2023-09-20 08:28:31 -04:00
bryan johnson
224233aeef Add ability to have AdditionalEditorCompileArgs
#rnx
#rb none

[CL 27839423 by bryan johnson in ue5-main branch]
2023-09-13 13:44:07 -04:00