Skip to content
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

[net10.0] PR to diagnose Windows test failures. #21416

Closed

Conversation

rolfbjarne
Copy link
Member

No description provided.

rolfbjarne and others added 30 commits September 9, 2024 19:58
Replace `MacPoolAccessToken` with a dynamically obtained Azure DevOps
access token. The `MacPoolAccessToken` is backed by the
`botdeploy--azdo--token--register--untrusted` secret, which is limited
to a 7-day lifespan. This change removes the dependency on that token
This is part of the effort to migrate the Pair to Mac agents .NET.

As the Xamarin.iOS.Tasks.Windows project targets netstandard2.0, I'm
removing the Build agent reference, and modifying the Makefile to take
it from it's output directory. Note: the agent zip file is generated in
the intermediate output directory.

---------

Co-authored-by: Alex Soto <alex@alexsoto.me>
Co-authored-by: Mauro Agnoletti <mauro.agnoletti@gmail.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
)

This is a log from our bots, note the 14 minute gap just before printing the timing results:

```
[...]
2024-09-27T07:34:00.3958920Z Making install in dotnet
2024-09-27T07:34:01.7633820Z Validated file permissions for Xamarin.Mac.
2024-09-27T07:34:01.7800150Z Validated file permissions for Xamarin.iOS.
2024-09-27T07:34:01.7825300Z
2024-09-27T07:34:01.7872490Z 	Xamarin.iOS has not been installed into your system by 'make install'
2024-09-27T07:34:01.7918570Z 	In order to set the currently built Xamarin.iOS as your system version,
2024-09-27T07:34:01.7965090Z 	execute 'make install-system'.
2024-09-27T07:34:01.7987920Z
2024-09-27T07:34:01.8034290Z 	Xamarin.Mac has not been installed into your system by 'make install'
2024-09-27T07:34:01.8080260Z 	In order to set the currently built Xamarin.Mac as your system version,
2024-09-27T07:34:01.8126200Z 	execute 'make install-system'.
2024-09-27T07:34:01.8148530Z
2024-09-27T07:48:22.3100850Z
2024-09-27T07:48:22.3102130Z real	15m26.160s
2024-09-27T07:48:22.3102800Z user	1m4.044s
2024-09-27T07:48:22.3103270Z sys	0m18.379s
```

What happens is this:
*   We're using parallel make, and parallel make will start a jobserver, managed by file descriptors, where these file descriptors must be closed in all subprocesses for make to realize it's done.
*   Any 'dotnet build' might start a build server
*   The build server does not close any file descriptors it may have inherited when daemonizing itself.
*   Thus the build server (which will still be alive after we're done building here) might have a file descriptor open which make is waiting for.
*   The proper fix is to fix the build server to close its file descriptors.
*   The intermediate working is to shut down the build server instead.

This will save 10-15 minutes at the end of every build in the bots.
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Windows Integration Tests passed 💻

All Windows Integration Tests passed.

Pipeline on Agent
Hash: e9ccfff9537f59725518e3d5fe83b1c35187624a [PR build]

@rolfbjarne rolfbjarne closed this Oct 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants