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

6016 Коммитов

Автор SHA1 Сообщение Дата
Iman Narasamdya 4ede5719dc Merged PR 711302: Allow MsBuild pips to consume global dependencies
Allow MsBuild pips to consume global dependencies
2023-04-06 19:45:00 +00:00
CloudDev Build Account ed9e86f168 New LKG 0.1.0-20230404.1
[skip ci]
2023-04-06 19:34:30 +00:00
Michael Pysson cf543db294 Merged PR 711433: Remove now unused WDG specific deployment for OSGTools repo
Remove now unused WDG specific deployment for OSGTools repo

Related work items: #2045621
2023-04-06 19:23:23 +00:00
Will Li 11c66c7478 Merged PR 711007: Move CopyOnWrite out of BuildXL.Native
Moving the CopyOnWrite functionality to a separate dll. This will also break the dependency to CopyOnWrite package to prevent a diamond dependency when Processes gets used externally
2023-04-06 17:07:49 +00:00
Oleksii Kononenko bf69e574f6 Merged PR 711132: unsafe_DoNotApplyAllowListToDynamicOutputs is now false by default
unsafe_DoNotApplyAllowListToDynamicOutputs is now false by default

Related work items: #2026613
2023-04-05 23:40:50 +00:00
Sergey Tepliakov 5c96df2b5b Merged PR 710984: Change tracing for GCS to use 'LogId' consistently in all the operations
Change tracing for GCS to use 'LogId' consistently in all the operations
2023-04-04 23:27:57 +00:00
Serge Mera 864a80fe99 Merged PR 710958: Log cache look up stats to reflect whether the lookup happened with an augmented fingerprint
Change cache lookup stats logging to reflect whether the lookup happened using an augmented weak fp (rather than whether the lookup *was* performed for an augmented weak fp). The result is that when we now print
`... (augmented: value), Visited entries: x, Unique pathsets: y)`

'value' now reflects and arguably more intuitive meaning (whether the lookup being printed was performed with a regular wf or an augmented one)
2023-04-04 22:06:08 +00:00
Iman Narasamdya 1b7f74657c Merged PR 710941: Set PTrace env vars conditionally when requested
AnyBuild doesn't use PTrace, so set PTrace env vars conditionally when requested.
2023-04-04 21:35:31 +00:00
Dmitriy Shepelev 5b0ce0f8d4 Merged PR 710455: Account for old `Microsoft.CodeAnalysis` library at runtime
Account for old `Microsoft.CodeAnalysis` library at runtime to fix builds such as https://cloudbuild.microsoft.com/build/ecdfb649-8b1d-10b1-e998-c9a9c2fe59b6?bq=Bvt_Skype_Services_Messenger_CodeSign, which emit the following types of errors:
```
error MSB4017: The build stopped unexpectedly because of an unexpected logger failure.
1>Microsoft.Build.Exceptions.InternalLoggerException: The build stopped unexpectedly because of an unexpected logger failure. ---> System.MissingMethodException: Method not found: 'System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CommandLineSourceFile> Microsoft.CodeAnalysis.CommandLineArguments.get_EmbeddedFiles()'.
```

This will change will enable more repos to utilize the shared compilation feature.

Also, enabled nullability and fixed style issues.

Related work items: #2036773
2023-04-04 20:50:45 +00:00
Serge Mera ac1ad08bf9 Merged PR 710877: Avoid traversing the same augmented weak fingerprint candidates more than once
A multi-layer cache can result in the same (wf -> augmented wf) pair returned more than once. Today this means we will go through all the candidates associated with the augmented wf as many times as duplicate pairs come back. This PR shortcuts that search when it sees the same augmented wf coming again for the same lookup.

Sorry, no tests for this optimization. The only way to get duplicate entries is by having an at least 2-layer cache, which is pretty complicated with the test infra we have today.
2023-04-04 20:05:02 +00:00
Iman Narasamdya c611444d0e Merged PR 710751: Ensure %userprofile% for process remoting
Ensure %userprofile% for process remoting. This is to support an optimization to the Windows sandboxes where we pre-create c:\users\username\... (something like 17 dirs) to avoid I/O during critical path.

Plus some refactoring from BuildXL.Process refactoring.

Associated PR: !710754
2023-04-04 18:24:57 +00:00
Julian Bayardo b7fcacd647 Merged PR 710635: Default LatestFileMaxAge to 30m
Default LatestFileMaxAge to 30m
2023-04-03 23:07:08 +00:00
CloudDev Build Account d1e2c8c8ee New LKG 0.1.0-20230331.2
[skip ci]
2023-04-03 21:12:18 +00:00
Kai Chen eab53e731f Merged PR 710115: support use passing patenv to authenticate with' symbol
support use passing patenv to authenticate with' symbol
2023-04-03 18:45:53 +00:00
Will Li 626e10cca2 Merged PR 710009: Merge BuildXL.Utilities.Collections into BuildXL.Utilities.Core
Folding all of Collections into BXL.Utilities.Core. The recommended way to create Nuget packages is to do 1 dll per package unless the dlls are supposed to always be used together. Collections is a part of Utilities and it shares a large subset of dependents with Utilities.Core, so merging them together to reduce the amount of dlls.
2023-04-01 00:59:44 +00:00
Pasindu Gunasekara 🍣 199f569c90 Merged PR 710430: Updated Release-Notes.md
Updated Release-Notes.md
2023-03-31 22:09:01 +00:00
Serge Mera 8a3c84db25 Merged PR 710281: Fix grouping commands for Lage resolver
Grouping script commands when bxl does not provide execution semantics (i.e. Lage) was not working. This PR fixes that and adds proper test coverage.
2023-03-31 20:56:26 +00:00
Ignacio Alonso Battaglia 68d811a50c Merged PR 709790: Unprotect HibernatedSession data
Unprotect HibernatedSession data to avoid: WindowsCryptographicException: Key not valid for use in specified state.

Related work items: #2044362
2023-03-31 00:01:26 +00:00
Sergey Tepliakov 989b06232d Merged PR 709989: Set the defaults for RetryCountForFileHashing to use in QuickBuild
Set the defaults for RetryCountForFileHashing to use in QuickBuild
2023-03-30 23:19:37 +00:00
Sahiti Chandramouli e38948e609 Merged PR 709500: Change the error logging message displayed on ADO console for DX64 errors.
Adding changes to AzureDevOpsListener.cs to change the error logging message displayed on ADO for DX64 errors.
Modified the unit tests to accommodate the corresponding coding changes.

Tested the changes in Primary PR validations to check if it meets the requirements.
Before:
https://dev.azure.com/mseng/Domino/_build/results?buildId=19569483&view=logs&j=275f1d19-1bd8-5591-b06b-07d489ea915a&t=1514d7bc-8bce-462c-8ffb-d9a2e471b2b3&l=46

After:
https://dev.azure.com/mseng/Domino/_build/results?buildId=19599846&view=logs&j=275f1d19-1bd8-5591-b06b-07d489ea915a&t=f63fd35e-f37e-45df-8a53-c1633fd2ed1a&l=52

This change highlights only OutputToLog segment of DX64 error message as we want only this part to be highlighted.

Attaching another PR which has another modified version of the same code to refer for comments.
https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/709377

From this PR highlighting the main concerns
1. Refactored the LogDevOpsIssue code.
2. Created another Specific story for PipProcessWarnings.
3. Addresed other comments like Renaming of the ADOFormatting method, removal of New lines.
4. Modified MockConsole.cs for unit tests to check the highlighting changes.
5. Replaced array usage for event payload with string interpolation.
2023-03-30 21:11:33 +00:00
Qi Wang bb7e85ad56 Merged PR 710186: Temporarily skip sign nuget packages
Temporarily skip sign nuget packages
2023-03-30 21:11:24 +00:00
Michael Pysson b176f46cbd Merged PR 709994: Enable status throttling for AzureDevOps updates
Enable status throttling for AzureDevOps updates
2023-03-30 20:11:35 +00:00
Marcelo Lynch 🧉 d87755235f Merged PR 710148: Switch the distributed validation of our release pipeline to the worker-pipeline model
This will trigger the worker run in the same pipeline, the role is passed by a template parameter
2023-03-30 19:05:42 +00:00
Will Li 3339951802 Merged PR 709233: Moving some more BXL Specific files
Noticed that a few more files are used only by ProcessPipExecutor so moving those there instead. Additionally, pulling out all the VM and ExternalSandbox code into a separate dll as it's not used by Processes and doesn't fit in ProcessPipExecutor
2023-03-30 18:49:46 +00:00
Will Li 735bba3036 Merged PR 709645: Removing Configuration Dependency from Processes
Processes depends on a very small portion of BXL.Utilities.Configurations. And most of those dependencies are BXL specific as well so it makes sense to me to just break this dependency.
2023-03-30 17:10:58 +00:00
CloudDev Build Account 5f330c9ab9 New LKG 0.1.0-20230324.3.2
[skip ci]
2023-03-30 15:39:17 +00:00
Semih Okur 6b0864f766 Merged PR 709738: Add an option to disable sending XLG events from workers
Office would like to experiment with a light version of BuildXL in their PR builds. First step is to add an option to disable XLG events from workers to the orchestrator. Manifest events will be still sent though.
2023-03-30 02:15:40 +00:00
Julian Bayardo b2523bd24a Merged PR 710002: Fix flaky test: TestRegisterActions 2023-03-30 00:02:00 +00:00
Julian Bayardo f1192b4ca1 Merged PR 710006: Remove unused code from RocksDbContentMetadataDatabase 2023-03-29 23:59:56 +00:00
Julian Bayardo 38d0fa2236 Merged PR 709777: Add telemetry to understand why Blob L3 may be missing files 2023-03-29 23:55:00 +00:00
Marcelo Lynch 🧉 5b1ba7e2aa Merged PR 709995: Revert leftover Linux pool to WUS3
Revert leftover Linux pool to WUS3
2023-03-29 23:03:43 +00:00
Will Li 9e49b47651 Merged PR 709961: Refactor Instrumentation.Common dll
Refactoring Instrumentation.Common to only contain Aria specific files, and moving all the non-Aria code into Utilities.Core instead. The motivation behind this is so that BXL released packages won't contain Aria packages which is an external pacakge. We want to have as little external packages as possible because it might cause diamond dependencies. (eg. BXL.Utilities depends on Aria1.0 and ExPkg depends on Aria1.1 and the customer pulls both in, there will be a version conflict)
2023-03-29 22:48:29 +00:00
Michael Pysson cd206ab5a7 Merged PR 709967: Temporarily disable status message throttling
The throttling is incorrectly applying to the dev "fancy console". Disable until addressed

Related work items: #2044355
2023-03-29 21:22:55 +00:00
Michael Pysson 01e4b18c72 Merged PR 708385: Correct negative ResourcePaused count
There are two scenarios when a build will have work waiting on resources:
1. When the scheduler limits have been throttled due to available resources
2. When the scheduler must actively cancel some executing processes due to resource availability.

We see negative numbers in the pipsWaitingOnResources value in scenario 2. Here, the scheduler temporarily decreases TotalProcessSlots as a signal to cancel some of the actively running processes. In this case AquiredProcessSlots will actually be larger than the Total and the prior calculation was yielding a negative number. This negative number is only temporary while the cancellation is happening. Once cancelled, the AquiredProcessSlots will no longer exceed TotalProcessSlots. The pips that got cancelled will once again be back in the ChooseWorkerCpu PipExecutionStep. That's why the negative number is only ever temporary.

Calculating based on LocalWorker.TotalProcessSlots - LocalWorker.AquiredProcessSlots is clearly wrong while the cancellation is happening. It is also not correct during the steady state while a build is running, either throttled or unthrottled. When a machine is maxed out, the two will have the same value and the difference will be zero. Math.Min() will pick that 0 value even though there may still be many pips in the ChooseWorkerCPU step.

It seems directly using the count of pips in the ChooseWorkerCPU step is the appropriate thing to do.

Related work items: #2041760
2023-03-29 21:09:07 +00:00
CloudDev Build Account 2447096496 New LKG 0.1.0-20230324.3.1
[skip ci]
2023-03-29 20:44:03 +00:00
Pasindu Gunasekara 🍣 c0c7ab7190 Merged PR 709934: Revert "Merged PR 708176: Simplify command line config for redirecting user p...
Revert "Merged PR 708176: Simplify command line config for redirecting user profiles"

This reverts commit 1cdac5db2d.
2023-03-29 20:33:39 +00:00
Will Li 76b53ae11d Merged PR 708859: Clean up Processes Dependencies
Cleaning up and removing dependencies of Processes that can be rather easily removed.
2023-03-28 23:23:25 +00:00
Iman Narasamdya 47a5f1f0fb Merged PR 709516: Refine statx support check
Currently to check if statx is supported, we check for the major/minor version of the OS. However, it is not enough because we need to check whether the installed glibc supports statx as well.

We can call `ldd --version` and parse its output to know the glibc version. We can call `gnu_get_libc_version()` to get the glibc version. In this PR we simply invoke statx on the executing assembly and check for the `EntryPointNotFoundException`.

Related work items: #2043763
2023-03-28 17:46:38 +00:00
Eric Kulcyk 30d62a0cd6 Merged PR 708702: Updated Tool.QTestRunner.dsc to use qTestMsTestPlatformRootPathValue
Updated Tool.QTestRunner.dsc to use qTestMsTestPlatformRootPathValue,l a path value, for --msBuildToolsRoot so that the input to the qtest, qTestMsTestPlatformRootPath, can be different than the qTestMsTestPlatformRootPathValue path.  This happens when qTestMsTestPlatformRootPath is an opaque from a nuget pckage and qTestMsTestPlatformRootPathValue is a subdir of that.
2023-03-27 22:11:03 +00:00
CloudDev Build Account edecd25f2c New LKG 0.1.0-20230324.3
[skip ci]
2023-03-25 04:48:30 +00:00
Julian Bayardo f5c32e229d Merged PR 707475: Blob L3 sharding
This PR:
- Adds the concept of a `Topology`. The `Topology` is responsible for handing out a storage client for any given object in the system. Currently, we have only one `ShardedTopology` (a sharding scheme points to a specific storage account).
- Adds the concept of an `IShardingScheme` over a bunch of nodes (i.e., "how do I distribute objects uniformly across shards"). The `ShardedTopology`  uses this interface to point to a specific storage account.
- Adds the concept of an `IStorageCacheSecretsProvider`. This interface is used by the `Topology` to obtain storage secrets for all the involved storage accounts / containers. The intention is that we'd be able to obtain container-specific SAS tokens to scope security.
- Rewrites `BlobFolderStorage` into `BlobStorageClientAdapter`. Instead of using the concept of paths and so on that we had, this class now takes an actual client and it basically just adds a bunch of methods that you can do against storage. It's not an extension class because there's several shared fields.
- The concept of using a single folder inside of Azure Storage has been split off into `AzureBlobStorageFolder` (which now takes care of basically handing out storage clients).
- Renames `AzureBlobStorageCredentials` into `AzureStorageCredentials` (because this will be used for queue in the future).
- Removes bulk pin from Blob L3, it doesn't work.
- Adds test coverage to memoization operations
- Adds bicep scripts for provisioning L3 instances
- Flattens the serialization format for content and metadata, they are now at the root of the container instead of inside folders. This is on purpose to allow for longer names, which is particularly important for Selectors inside StrongFingerprint

[WIP]
- Deploy to CBTest to ensure nothing here breaks our current way of working. This is only because of the BlobFolderSTorage change
2023-03-25 00:03:51 +00:00
Marcelo Lynch 🧉 e05afe2f68 Merged PR 709183: Move Linux PR validations and SDL back to WUS3
Move Linux PR validations and SDL back to WUS3

Related work items: #2042843
2023-03-24 21:47:12 +00:00
Oleksii Kononenko 67efeea743 Merged PR 708484: Fix/re-enable some Linux tests
Related work items: #1087986, #1984802, #1985456
2023-03-24 20:23:27 +00:00
Sergey Tepliakov a2caf12e5e Merged PR 706846: Add retries when opening a file fails with UnauthorizedAccessException
Add retries when opening a file fails with UnauthorizedAccessException.

The PR also changes the exception type thrown due to sharing violation on linux. Before the code was failing with `IOException` on Linux and `UnauthoziedAccessException` on Windows. Now the behavior is consistent.

Related work items: #2039887
2023-03-24 17:07:01 +00:00
CloudDev Build Account e244530fe2 New LKG 0.1.0-20230321.0
[skip ci]
2023-03-24 06:05:26 +00:00
CloudDev Build Account 953bcc9d44 New LKG 0.1.0-20230323.3
[skip ci]
2023-03-24 05:32:03 +00:00
Julian Bayardo fe43a562a6 Merged PR 707482: Don't publish recompute information globally
Don't publish recompute information globally. Also removes the concept of a LocationAddRecentInactiveEager. That feature has been useless for months because machines are filtered out at both local and global, so doing a proactive global registration doesn't help.
2023-03-24 01:24:11 +00:00
Sergey Tepliakov b7431b1efb Merged PR 706590: Remove UseInRingMachinesForCopies
We realized that `UseInRingMachinesForCopies` feature is not helpful because it generates a lot of extra netrowking traffic and doesn't improve build reliability.

This PR removes the code that we should not use. If/when we'll think that we need something like that we'll implement such feature from scratch.
2023-03-24 00:11:36 +00:00
Michael Pysson 1711cacb3a Merged PR 708850: Remove additional status line for pips waiting on resources
This removes the additional line on the console below the main status line that gets displayed with pips are resourced paused. ex:
`3 running pips waiting on resources`

The data is already shown in the primary status and we want to decrease the amount of scrolling back people have to do in the ADO console view when looking at builds that have already completed.
2023-03-23 23:57:25 +00:00
Sergey Tepliakov 0651523882 Merged PR 708403: Stop tracing 'ProactiveCopyIfNeededAsync start'
Stop tracing 'ProactiveCopyIfNeededAsync start'
2023-03-23 23:45:21 +00:00