Граф коммитов

6912 Коммитов

Автор SHA1 Сообщение Дата
Pratik Lade f9202098a9 Merged PR 754394: Update QTest Nuget package for Flaky Test Changes
Update QTest Nuget package for Flaky Test Changes
2023-11-30 18:27:44 +00:00
Oleksii Kononenko 0d797a5da7 Merged PR 753272: Catch and log all exceptions in BxlAnalyzer
Currently we only catch / log only InvalidArgumentException that we throw when user provided incorrect arguments, and we rely on individual analyzers to catch any other exceptions that occur during their invocation. We've observed cases where the unobserved exceptions were not properly handled by the calller of an analyzer. This PR expands the outer try/catch, so we always process / log the exception (mainly to facilitate future debugging).

Related work items: #2116741
2023-11-30 12:32:45 +00:00
Julian Bayardo 16fb2cb0c1 Merged PR 750275: Turn MachineLocation into a Uri 2023-11-30 01:51:14 +00:00
CloudDev Build Account e4e27a3987 New LKG 0.1.0-20231128.3
[skip ci]
2023-11-30 00:55:26 +00:00
Julian Bayardo 135b72eff0 Merged PR 754035: Allow workers to start up arbitrarily earlier than the orchestrator 2023-11-30 00:19:42 +00:00
Pasindu Gunasekara 🍣 8277b2e489 Merged PR 754238: Updated Release-Notes 0.1.0-20231122.3
Updated Release-Notes.md
2023-11-29 22:11:33 +00:00
Iman Narasamdya 4fb8e7ce07 Merged PR 754199: Avoid fetching files across network by opening handle only with FILE_READ_ATTRIBUTES to get the path
When opening a file by file id, Detours needs to know the path corresponding to the file id. Previously, we open a handle with `GENERIC_READ`. However, with that desired access, opening a remote file will fetch the file from remote unnecessarily.

This PR simply replaces `GENERIC_READ` with `FILE_READ_ATTRIBUTES`, which is sufficient for getting the path.

Additional changes:
- Instead of hardcoding the file attributes, we use the user specified file attributes when opening a handle for `GetFinalPathByHandle`.
- Refactor network UT and add a disclaimer that the UT can time out.

Related work items: #2125608
2023-11-29 21:12:03 +00:00
Serge Mera 171abb6523 Merged PR 753964: Add a concurrent pip analyzer
Add an analyzer that lists all pips concurrently running with a given pip or point in time.

Related work items: #2123764
2023-11-29 19:20:42 +00:00
Andy Gerlicher c7dbbf43e5 Merged PR 754050: Avoid loading IEventSource4 type
This causes issues with older versions of MSBuild as the IEventSource4 type is loaded when the class type loads.
2023-11-29 07:07:05 +00:00
Pasindu Gunasekara 🍣 3bbba3fd84 Merged PR 754001: Remove extractor failure if file does not exist to set permission bit
- This code makes it impossible to update the Linux nodejs packages
2023-11-29 00:13:29 +00:00
Marcelo Lynch 🧉 84a8ae1dea Merged PR 753269: [Linux PR validation] Make public validation fully public and use 1ESPT for distributed build
- Make the public validation public end-to-end, by building a public engine and then using that to run tests (also without passing `--internal`)
- Use the 1ESPT build job for the distributed build test. We're still keeping the old YML for backup, but it becomes unused.
- Note that using 1ESPT for our own selfhost is not possible due to how we invoke `bxl.sh`, that's why that one still adds the worker stage manually.
2023-11-28 23:20:17 +00:00
Michael Pysson 9785ab9eaa Merged PR 753243: Address PR feedback from PublicAPI Analyzers
Addresses some PR feedback from !742780. Points were mostly around documentation and DScript tweaks. I didn't want to rev on that PR since it was already a challenge to get merged with so many approvals.
2023-11-28 23:02:55 +00:00
Marcelo Lynch 🧉 6668604e56 Merged PR 748162: Add sanity check in AsyncProcessExecutor
Without this set to true, we will just time out: might as well add an assertion.
2023-11-27 17:06:01 +00:00
MerlinBot.PPE 063c49f770 Merged PR 747431: Auto-generated baselines by 1ES Pipeline Templates
This pull request includes baselines **with an expiration date of 180 days from now** automatically generated for your 1ES PT-based pipelines. Complete this pull request as soon as possible to make sure that your pipeline becomes compliant. Longer delays in completing this PR can trigger additional emails or S360 alerts in the future.

1ES PT Auto-baselining feature helps capture existing violations in your repo and ensures to break your pipeline only for newly introduced SDL violations after baselining. Running SDL tools in break mode is required for your pipeline to be compliant. Go to https://aka.ms/1espt-autobaselining for more details.
2023-11-27 16:29:03 +00:00
CloudDev Build Account c41eb275dc New LKG 0.1.0-20231122.3
[skip ci]
2023-11-24 05:56:26 +00:00
Serge Mera 2892b63b80 Merged PR 753283: Add the ability to exclude point files from nuget packages
Allow to specify a list of relative paths to exclude from point nuget packages. This largely simplifies deployment problems when multiple nuget packages include the same dll (many times with different versions).
2023-11-23 00:26:07 +00:00
Sahiti Chandramouli 36c9007255 Merged PR 752296: Add PipSpecificFingperprintingSalt
Added the pipSpecificProperty - pipFingerprintingSalt to pass the pipSemistableHash value and the salt value to salt a pip.
Refactored some code related to handling of pipSpecificProperties;
Ensure the data is shared between orchestrator and workers in a distributed build.

Added a unit test to tests end to end working of this feature and also this covers the IS part. Added an Engine based test to see if the graph has been recomputed or not.
Added a unit to check computation of static and content fingerprint.
2023-11-22 22:15:09 +00:00
Marcelo Lynch 🧉 faf58356ad Merged PR 753262: Update versions for Azure.Core and Azure.Identity
Update versions for Azure.Core and Azure.Identity

Related work items: #2123189
2023-11-22 22:14:03 +00:00
Marcelo Lynch 🧉 574ca063a4 Merged PR 753249: Make Linux PR validations write to the L3 cache
Make Linux PR validations write to the L3 cache
2023-11-22 21:27:27 +00:00
Sergey Tepliakov 35dce5a8c2 Merged PR 742780: Add PublicAPI Analyzers to BXL and enforce the public API for hashing
This PR adds support for [PublicAPIAnalyzers](https://github.com/dotnet/roslyn-analyzers) - the analyzers developed by the Roslyn team and used by .NET Community to enforce the public surface stability of libraries.

The idea behind the analyzer is that during the build, the analyzer checks `PublicAPI.Shipped.txt` and `PublicAPI.Unshipped.txt` files for the content of the project's public surface. And if there are changes in the public surface in respect to those files, the analyzer would emit a warning.

The analyzers won't prevent you from making breaking changes, but those breaking changes would be intentional (plus some of them are not obvious at all, for instance, adding a default parameter is a runtime breaking change, even though this is not a compile time breaking change).

In order to enable the analyzer the two steps are required:

1. Add `usePublicApianalyzer: true` to a project spec
2. Add `publicApiFiles` to a project spec.

The last part is required since there are multiple strategies that can be used to force the API compatibility. For instance, the API surface might be different for different target frameworks, in this case a helper function `gbetFrameworkSpecificPublicApiFiles` can be used that will get different files depending on the target framework.

The analyzer also warn on some public API anti-patterns, like default arguments for methods with overloads or for default arguments in general.

This PR also enables such analysis for cache hashing project, since the stability of that project is very important in order to avoid runtime failures in BuilxXL, Arficats and CloudBuild.

Related work items: #2112018
2023-11-22 19:40:11 +00:00
Serge Mera 8f0a0dabdb Merged PR 751033: Use the ado runner cache config generation for our selfhost Linux validations
Use the ado runner cache config generation for our selfhost Linux validations:
* Remove the explicit generation of a cache config for the ado build runner (distributed) case
* Use the new ado build runner functionality and let it generate one (ephemeral, datacenter wide, as we are currently dogfooding)
* Make internal build distributed (main reason is to keep dogfooding the ephemeral cache with a more real-life build). The explicit distributed clean build with a 2-pip build remains as is.
2023-11-22 17:47:24 +00:00
Michael Pysson 7fd2304ce0 Merged PR 752875: Fix cancellation crash when HistoricMetadataCache is not initialized
There is already a check for the HistoricMetadataCache not being initialized, but the object used to get to the HistoricMetadataCache may also be uninitialized and BuildXL is still crashing in that case.

Related work items: #2124645
2023-11-21 21:50:46 +00:00
Michael Pysson be80c0ed1c Merged PR 752877: Add additional paths to look for msvc
The standalone BuildTools installation for VS 2022 may be under ProgramFilesX86
2023-11-21 01:53:58 +00:00
Qi Wang 49b1bd4547 Merged PR 752788: Use dependency free LogGen approach instead of Log Action for BuildXL.Processes
Revert the LogAction changes in BuildXL.Processes.
Remove the UnexpectedCondition log function call because it's from BuildXL.Tracing.
Assert the package dependencies of BuildXL.Processes.

Related work items: #2091292
2023-11-20 22:45:58 +00:00
CloudDev Build Account 37cc28fbd4 New LKG 0.1.0-20231117.2
[skip ci]
2023-11-18 05:54:18 +00:00
Oleksii Kononenko efeac619f2 Merged PR 750697: Log final configuration used by bxl
This PR adds logging of a final config object that is used by bxl during a build. Config serialized into a json and placed into a separate file in a logs directory.

Related work items: #2119573
2023-11-17 20:33:24 +00:00
CloudDev Build Account b211465a03 New LKG 0.1.0-20231114.2
[skip ci]
2023-11-17 05:52:56 +00:00
Qi Wang 36b72c7965 Merged PR 751951: Clean LogGen reference
This pr cleans the reference of LogGen. BuildXLSdk will not add BuildXL.Tracing reference for generateLog.
Add an arg to control AriaCommon reference for LogGen. LogGen don't need AriaCommon if generate local only logger.
2023-11-16 23:30:58 +00:00
Julian Bayardo 6615870ab8 Merged PR 751039: Allow FileSystemContentStore to StartupAsync when failing to delete temp directory
See attached work item for details. This is causing us to fail builds because we crash and get stuck in a restart loop

Related work items: #2122321
2023-11-15 22:37:25 +00:00
Marcelo Lynch 🧉 11f94ac9a3 Merged PR 751537: Restructure the Linux PR validation
- Only build the engine that will be under test once, and then consume from the different validations via pipeline artifacts, instead of doing it once per validation
- Modularize the YAMLs by moving shared tasks to a common file
- Add some dependencies between the stages to short-circuit failures: namely, run the PTrace validation only after the public and
- The internal validation is now single machine, in favor of validating distribution with a small two-pip build at the end
- Add a validation that runs a small distributed build consisting of two pips, one of which is forced to run on a remote worker. This runs at the end of the validation
2023-11-15 22:30:09 +00:00
Julian Bayardo a9b362325d Merged PR 751808: Log BuildXL version inside the Blob cache factories
Related work items: #2123266
2023-11-15 22:03:44 +00:00
Julian Bayardo fe5daa31f7 Merged PR 751041: Cleanup abstract filesystem interfaces 2023-11-14 22:38:37 +00:00
Pasindu Gunasekara 🍣 05908225df Merged PR 751679: Fixes for npm install on local Linux builds 2023-11-14 18:33:24 +00:00
Andy Gerlicher 58018c3993 Merged PR 751503: Opt-in MSBuild logger to new behavior
Using the old behavior (not calling this method) will result in less fidelity logged for the binary logger during evaluation. The new behavior requires ALL loggers to opt-in.
2023-11-14 17:15:41 +00:00
Iman Narasamdya f97eb92f91 Merged PR 751455: Tidy up tracing removal from BuildXL.Process
* Fixed typo in type.
* Remove unnecessary new constructor in `SandboxedProcessInfo`.
* Remove unnecessary log action in `SandboxExec` since it doesn't listen to any source.

(Somehow, I have a feeling that the AI-generated description will provide a much better description.)
2023-11-13 22:03:57 +00:00
CloudDev Build Account 41c41e5b4e New LKG 0.1.0-20231110.0
[skip ci]
2023-11-11 06:13:16 +00:00
CloudDev Build Account c36e61aff4 New LKG 0.1.0-20231110.1
[skip ci]
2023-11-11 05:53:13 +00:00
Semih Okur 71676ef5da Merged PR 750307: Add notice file for compliance
Add notice file for compliance: https://aka.ms/opensourcenotice
2023-11-11 01:29:24 +00:00
Pasindu Gunasekara 🍣 65023ba83e Merged PR 751137: Add client secret arg to update dependencies command 2023-11-10 18:31:03 +00:00
Dmitriy Shepelev 0de57ef2eb Merged PR 750867: Allow child processes to breakaway based on substring containment
Allow child processes to breakaway based on substring containment. This is a retry of [this reverted PR](https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/749874?base=2&iteration=3), where the comparison between the image name and process name was done case-sensitively rather than case-insensitively.

Related work items: #2103629, #2106957
2023-11-10 15:40:22 +00:00
CloudDev Build Account 6ace3d1121 New LKG 0.1.0-20231108.6
[skip ci]
2023-11-10 06:32:48 +00:00
CloudDev Build Account d6e2e3802e New LKG 0.1.0-20231109.8
[skip ci]
2023-11-10 06:11:25 +00:00
CloudDev Build Account 66dd36fffa New LKG 0.1.0-20231027.2.1
[skip ci]
2023-11-10 05:52:16 +00:00
Semih Okur 619ba78c3d Merged PR 749842: Enable early worker release for ADO builds 2023-11-10 00:00:53 +00:00
Pasindu Gunasekara 🍣 cc1f226f6b Merged PR 750974: Fix npm authentication for local builds
- Reruns the artifacts cred provider with the -I argument if the credential provided by the artifacts cred provider is invalid for npm.
- Not necessary for Linux builds right now because they will always return a PAT, and nuget should call the cred provider with -I when necessary.

Related work items: #1969322
2023-11-09 23:24:36 +00:00
Juan Carlos Guzman Islas ba137e4c13 Merged PR 750956: [Blob L3 GC] Enable deleting old untracked containers by default
[Blob L3 GC] Enable deleting old untracked containers by default. This has been running successfully for a couple of days in the cbrmtest-centralus cache, which is the main cache where we've been doing experiments. Enabling for all other caches. This keeps the option of disabling via config.
2023-11-09 23:00:55 +00:00
CloudDev Build Account bb9c80840e New LKG 0.1.0-20231108.8
[skip ci]
2023-11-09 21:41:19 +00:00
Semih Okur 46c8355816 Merged PR 750781: Fix retry logic for low disk space
When there is a low disk space, we cancel PipQueue and running pips by triggering SchedulerCancellationToken. The pips get cancelled and they have SandboxedProcessPipExecutionStatus.Canceled. However, we do not set RetryInfo for those pips, so Canceled sandboxed result is translated to PipResultStatus.Failed due to the lack of RetryInfo. The orchestrator receives pip results with Failed with no error logs, so we log DistributionPipFailedOnWorker errors.

We should have set RetryInfo for those cancelled pips. Because we check environment.Context.CancellationToken instead of SchedulerCancellationToken, we skip setting RetryInfo. Context.CancellationToken is triggered when CTRL-C is pressed. SchedulerCancellationToken is triggered when we request termination in Scheduler.

Related work items: #2121638
2023-11-09 21:31:34 +00:00
Michael Pysson 73eb343bd1 Merged PR 750514: Add timeout for PipQueue draining on cancellation
Some internal errors happen when interactions with external systems are badly degraded. One example is that cache operations may be taking extremely long to complete. Since cancellation tokens do not transit through the entire cache layer, the above requested cancellation may not actually take effect for upwards of hours. In these cases, the build essentially still hangs until externally cancelled.

To avoid this, add a timeout for the amount of time the PipQueue draining thread will wait for the completion of pending tasks upon cancellation. This might leave the application in a weird state, but it gives a better shot of shutting down and flushing telemetry in a timely manner.

Related work items: #2108369
2023-11-09 21:13:17 +00:00
Serge Mera 09143d601c Merged PR 750601: Add cache config generation capabilities to the ado build runner
* Adds the machinery to deal with CLI args at the ado build runner level by reusing the parser the main bxl app uses and follow a similar 'configuration object' pattern. This introduces the ability to pass an end of caller arguments mark '--' (a la JS) to split caller arguments from forwarding arguments.
* Adds cache config related parameters. Populate the cache config generation configuration object, with sensible defaults. When the cache config is generated, it is inserted as the first forwarding argument.

TODOs:
* Move other relevant environment variables used today as arguments to this model.
* Tests. We need some uber-infrastructure to be able to run the runner mocking some underlying components. That will allow to add tests for this and for other functionality
2023-11-09 20:29:52 +00:00