-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[wasm] Fix perf pipeline errors #75406
Conversation
Tagging subscribers to this area: @directhex Issue Detailsnull
|
/azp run runtime-wasm-perf |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-wasm-perf |
Azure Pipelines successfully started running 1 pipeline(s). |
Build SizeOnDisk, and Startup tools for `net7.0` instead of `net6.0`. It current fails with: ``` error NU1102: Unable to find package Microsoft.NETCore.App.Ref with version (= 6.0.10) error NU1102: - Found 2073 version(s) in dotnet6 [ Nearest version: 6.0.2-servicing.1.22101.5 ] error NU1102: - Found 1520 version(s) in dotnet7 [ Nearest version: 7.0.0-alpha.1.21417.28 ] error NU1102: - Found 1120 version(s) in dotnet5 [ Nearest version: 6.0.0-alpha.1.20420.3 ] error NU1102: - Found 76 version(s) in dotnet3.1 [ Nearest version: 3.1.1-servicing.19602.11 ] error NU1102: - Found 52 version(s) in dotnet-public [ Nearest version: 7.0.0-preview.1.22076.8 ] error NU1102: - Found 1 version(s) in dotnet-eng [ Nearest version: 5.0.0-alpha.1.19618.1 ] error NU1102: - Found 0 version(s) in benchmark-dotnet-prerelease error NU1102: - Found 0 version(s) in dotnet-tools error NU1102: - Found 0 version(s) in dotnet3.1-transport error NU1102: - Found 0 version(s) in dotnet5-transport ```
We are building with 8.0 sdk now, but for tfm=net7.0 and that confuses the setup script. So, explicitly pass `--dotnet-versions 8.0.0`, so it can resolve to the available sdk. ``` Traceback (most recent call last): File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 357, in <module> __main(sys.argv[1:]) File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 310, in __main dotnet_version = dotnet.get_dotnet_version(target_framework_moniker, args.cli) if args.dotnet_versions == [] else args.dotnet_versions[0] File "/mnt/vss/_work/1/s/Payload/performance/scripts/dotnet.py", line 568, in get_dotnet_version "Unable to determine the .NET SDK used for {}".format(framework) RuntimeError: Unable to determine the .NET SDK used for net7.0 ```
1daabee
to
20e010f
Compare
Since we use a sdk+workload for running the perf benchmarks, and build the projects for tfm=net7.0, it uses the 7.0 runtime pack, which has some differences. So, use the 7.0 test-main.js . Fails with: ``` [2022/09/11 01:06:47][INFO] test-main.js:262: TypeError: dotnet.withVirtualWorkingDirectory(...).withEnvironmentVariables(...).withDiagnosticTracing(...).withExitOnUnhandledError is not a function [2022/09/11 01:06:47][INFO] .withExitOnUnhandledError() [2022/09/11 01:06:47][INFO] ^ [2022/09/11 01:06:47][INFO] TypeError: dotnet.withVirtualWorkingDirectory(...).withEnvironmentVariables(...).withDiagnosticTracing(...).withExitOnUnhandledError is not a function [2022/09/11 01:06:47][INFO] at run (test-main.js:262:14) [2022/09/11 01:06:47][INFO] [2022/09/11 01:06:47][INFO] 1 pending unhandled Promise rejection(s) detected. ```
this needs an approval. Without this |
echo " --alpine Set for runs on Alpine" | ||
echo " --iosmono Set for ios Mono/Maui runs" | ||
echo " --iosllvmbuild Set LLVM for iOS Mono/Maui runs" | ||
echo " --mauiversion Set the maui version for Mono/Maui runs" | ||
echo "" | ||
exit 0 | ||
exit 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did we change this to 1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you pass an unknown argument to the script then it will show help, and exit. But the build will keep going, even though it is missing crucial setup configuration. With exit 1
, the build will stop at that point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense, this should be a good change.
@@ -162,7 +163,7 @@ jobs: | |||
displayName: Performance Setup (Unix) | |||
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) | |||
continueOnError: ${{ parameters.continueOnError }} | |||
- script: $(Python) $(PerformanceDirectory)/scripts/ci_setup.py $(SetupArguments) | |||
- script: $(Python) $(PerformanceDirectory)/scripts/ci_setup.py $(SetupArguments) ${{ parameters.additionalSetupParameters }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is mentioned that the additionalSetupParameters is passed to performance-setup, although is being passed to ci_setup here. Along with the changes to performance-setup, it looks like this should be added to the lines above this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For run-perfomance-job
the comments in perf-wasm-jobs.yml
say:
additionalSetupParameters: '--dotnet-versions 8.0.0' # passed to ci_setup.py
For run-scenarios-job
the comment says:
additionalSetupParameters: '--dotnetversions 8.0.0' # passed to performance-setup.sh
That matches what the ymls are doing. Please correct me if I'm missing something.
@@ -354,6 +360,10 @@ if [[ -n "$mono_dotnet" && "$monoaot" == "false" ]]; then | |||
mv $mono_dotnet $mono_dotnet_path | |||
fi | |||
|
|||
if [[ -n "$dotnet_versions" ]]; then | |||
setup_arguments="$setup_arguments --dotnet-versions $dotnet_versions" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a corresponding change to ci_setup in the perf repo to use this setup argument? I didn't see anything already implemented.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see, I missed the dotnet parser args being added to the ci_setup parser.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Build SizeOnDisk, and Startup tools for
net7.0
instead ofnet6.0
.It current fails with:
We are building with 8.0 sdk now, but for tfm=net7.0 and that confuses
the setup script. So, explicitly pass
--dotnet-versions 8.0.0
, so itcan resolve to the available sdk.
Use test-main.js from 7.0 branch for perf pipeline
Since we use a sdk+workload for running the perf benchmarks, and build
the projects for tfm=net7.0, it uses the 7.0 runtime pack, which has
some differences. So, use the 7.0 test-main.js .
Fails with:
Fixes #75398 .