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

7594 Коммитов

Автор SHA1 Сообщение Дата
Julian Bayardo 5a94968cd0 Merged PR 795578: Address several issues with handling of storage account names 2024-07-22 23:24:22 +00:00
Lance Collins 1e287940da Merged PR 796178: Prevent sharing violations on OpenStream calls in EphemeralContentSession.
Prevent sharing violations on OpenStream calls in EphemeralContentSession. Use local FS cache which uses correct FileShare rules.
2024-07-19 19:01:54 +00:00
Semih Okur a22c4c2218 Merged PR 795858: Updated Release-Notes.md
Updated Release-Notes.md
2024-07-18 16:48:57 +00:00
Sahiti Chandramouli 43e9ce053e Merged PR 794876: Refactor and add unit tests to AdoBuildRunner
Refactored ADoBuildRunner to accommodate the infrastructure for unit testing.
Introduced a configuration object to track the creation of environment variables in AdoBuildRunner
Added unit tests to test the various scenarios related to AdoApiService methods and added a unit test to test the arguments passed to orchestrator and worker.

Related work items: #2187262
2024-07-18 16:31:53 +00:00
Qi Wang a5f96bf3a0 Merged PR 795528: Failed the build when plugin initialization timeout
Failed the build when plugin initialization timeout
2024-07-17 22:12:03 +00:00
Marcelo Lynch 🧉 2845a7fa6e Merged PR 795555: Avoid caching real file system existence of paths that might be stale opaque outputs to be scrubbed by lazy materialization
We probe the real file system when doing a cache check and we can see an existing stale opaque output before the opaque directory is materialized from cache and said output is actually deleted. This can cause both cache misses and spurious DFAs.

This PR makes it so during cache lookup (and with lazy materialization enabled) we don't ever cache the existence of files that are under opaque directories.

Related work items: #2185421, #2185423
2024-07-17 20:43:22 +00:00
Iman Narasamdya 37c2ed9eed Merged PR 795581: Fix theory detection in BXL XUnit test framework
Previously we detect if a test is a theory when there's a parameter.

If a test is serialize as `TestMe(value: 1)`, then our test framework thinks that it's a theory, and it will run it as
`RUN THEORY TestMe(value: 1)`. The problem with this is, if there are `[InlineData(1)]` and `[InlineData(2)]` for `TestMe`, we will have the following runs:
```
RUN THEORY TestMe(value: 1) =>
    RUN TEST TestMe(value: 1)(value: 1)
    RUN TEST TestMe(value: 1)(value: 2)
```

Similarly when the serialized test is `TestMe(value: 2)`.

Thus, instead of having 2 tests, we end up having 4 tests.

This PR also reenable QTest.

Related work items: #2195273
2024-07-17 03:37:07 +00:00
Michael Pysson 2631d72083 Merged PR 795055: Bump package versions for Component Governance
Bump package versions for Component Governance

Related work items: #2195385, #2195386, #2195387
2024-07-16 00:20:23 +00:00
Michael Pysson 797f466d81 Merged PR 795048: Update Azure.Identity to 1.11.4
Update Azure.Identity to 1.11.4

Related work items: #2187372
2024-07-15 22:30:04 +00:00
BuildXL-Pipelines 804a2b1e8b Merge pull request 795099 from dev/BuildXL/updatelkg-0.1.0-20240712.10-2024-07-14T04-21-08 into main 2024-07-14 04:45:55 +00:00
Iman Narasamdya 8e0b22e2da Merged PR 795090: Enable QTest for QTest mock UT
Enable QTest for QTest mock UT. This UT needs to be run with QTest so that our ADO QTest integration stage in our release pipeline can succeed.

Related work items: #2195273
2024-07-13 06:14:52 +00:00
Iman Narasamdya 82f0100383 Merged PR 795016: Enable QTest in light UTs
Due to bug #2195273 , QTest has been disabled in our selfhost builds. The problem is that we no longer exercise QTest framework in our selfhost, while at the same time we're deploying QTest to customers. Also, because there's no QTest UTs, the (optional) QTest validation stage in our release pipeline failed.

To address the above problem, this PR enables some of light UTs, e.g., UTs that don't have many `[InlineData]` attributes and that don't take a long time to run.

Related work items: #2195273
2024-07-12 22:52:16 +00:00
Julian Bayardo c1b457226f Merged PR 795059: Add further information about disk performance in PerformanceCollector
Add further information about disk performance in PerformanceCollector. To be used for FastDownload statistics in order to help determine where to focus efforts.
2024-07-12 22:50:46 +00:00
Julian Bayardo 3959ebb06d Merged PR 793678: Support per-container SAS tokens
- Integrates the 1ES Build Cache resource. Enables consuming the JSON describing the configuration for the resource as the primary description of the shards conforming a blob-base cache topology.
- Relaxes the naming convention policy to allow for containers with arbitrary names. Used to enable CloudBuild to emit SAS tokens for a fixed name.
- Enable using SAS tokens per-container
2024-07-12 22:12:56 +00:00
Qi Wang cd302cb597 Merged PR 794980: Log more information when bxl failed to open a file for hashing
Log sharing violation and timeout separately
Log current bxl pid when we find a bxl process holds a handle
2024-07-12 21:18:27 +00:00
Pasindu Gunasekara 🍣 50a1c536d4 Merged PR 794991: Convert detours message count mismatch into an error on Linux Builds
Haven't seen any instances of this logged on telemetry lately, we can convert this to a proper error.

Related work items: #2125205
2024-07-12 20:31:33 +00:00
BuildXL-Pipelines 796b59d686 Merge pull request 794996 from dev/BuildXL/updatelkg-0.1.0-20240711.2-2024-07-12T18-21-31 into main 2024-07-12 18:55:51 +00:00
Michael Pysson e5ddf648d7 Merged PR 793701: Speed up ObjectPool
ObjectPool is backed by a ConcurrentStack. When the ObjectPool returns an item to the pool, it checks the stack length to see if it should hold onto it or not. The implementation of ConcurrentStack.Count is o(n). This change adds parallel tracking with a counter to keep from iterating that stack over and over. This also removes some of the Interlocked calls used for tracking statistics. It is not important that those are always synchronized.

Accessing a pool 1 million times on a 16 core dev machine:
LoopParallelism - number of threads concurrently accessing the pool
PoolSize - number of items in the ObjecPool

| Method   | LoopParallelism | PoolSize | Mean      | Error    | StdDev    | Median    |
|--------- |---------------- |--------- |----------:|---------:|----------:|----------:|
| Original | 1               | 64       |  30.61 ms | 0.182 ms |  0.171 ms |  30.65 ms |
| Updated  | 1               | 64       |  24.19 ms | 0.156 ms |  0.146 ms |  24.25 ms |
| Original | 1               | 512      |  30.48 ms | 0.150 ms |  0.140 ms |  30.56 ms |
| Updated  | 1               | 512      |  24.21 ms | 0.162 ms |  0.144 ms |  24.26 ms |
| Original | 32              | 64       | 225.99 ms | 8.697 ms | 25.643 ms | 241.60 ms |
| Updated  | 32              | 64       | 190.47 ms | 1.183 ms |  1.106 ms | 190.61 ms |
| Original | 32              | 512      | 224.84 ms | 4.470 ms | 13.040 ms | 227.92 ms |
| Updated  | 32              | 512      | 170.82 ms | 5.956 ms | 17.561 ms | 180.02 ms |
| Original | 512             | 64       | 231.52 ms | 4.592 ms |  5.104 ms | 233.16 ms |
| Updated  | 512             | 64       | 181.49 ms | 2.409 ms |  2.253 ms | 182.41 ms |
| Original | 512             | 512      | 230.62 ms | 4.596 ms |  9.071 ms | 234.37 ms |
| Updated  | 512             | 512      | 122.73 ms | 1.610 ms |  1.427 ms | 122.75 ms |

I doubt this will be revolutionary, but it's a simple change. Snapping to Microsoft.Extensions.ObjectPool would be better, but that's a more involved change.
2024-07-12 18:53:58 +00:00
Michael Pysson e5c9275da3 Merged PR 794748: Don't warn OS compatibility for Ubuntu 22.04
Don't warn OS compatibility for Ubuntu 22.04
2024-07-12 18:07:21 +00:00
Oleksii Kononenko bfc974716a Merged PR 794829: Limit set of files sent for symbol indexing and re-enable nuget signing
Limit set of files sent for symbol indexing and re-enable nuget signing

Related work items: #2125959, #2125963
2024-07-11 22:41:32 +00:00
Lance Collins 794d3cfbc2 Merged PR 794770: Ignore failures from IncorporateStrongFingerprintsAsync.
Ignore failures from IncorporateStrongFingerprintsAsync.
2024-07-11 18:55:25 +00:00
Iman Narasamdya 1bb9625e3d Merged PR 794662: Fix msbuild frontend when building solution
When building from solution, MSBuild frontend can easily create a path segment that exceeds the segment limit (> 256). This is because the frontend tries to create a unique segment by appending global properties. Even though long paths is enabled, the segment limit cannot be changed.

In this PR, we simply hash the path segment. Due to hashing, the user may need to look at the log file to correlate the path and the pip.

This PR also addresses some issue with path ending with backslash appearing in cmd line. Apparently there's a bug in MSBuild that includes the ending quote as part of the path.

Related work items: #2191024
2024-07-11 17:34:16 +00:00
Iman Narasamdya 30a60001ab Merged PR 794568: Release notes for 0.1.0-20240705.2.2
Release notes for 0.1.0-20240705.2.2
2024-07-10 20:09:43 +00:00
BuildXL-Pipelines 2fe2212795 Merge pull request 794277 from dev/BuildXL/updatelkg-0.1.0-20240705.2.2-2024-07-09T17-51-44 into main 2024-07-10 16:02:40 +00:00
Iman Narasamdya c7b64dd536 Merged PR 794405: Temporarily disable QTest due to creating too many UTs
Temporarily disable QTest due to creating too many UTs.

```csharp
[Theory]
[InlineData(1)]
[InlineData(2)]
[InlineData(3)]
public void TestMe(int data) { ... }
```

Instead of having 3 UTs, you will have 9 UTs.

Due to this Test.BuildXL.FrontEnd.Script.ErrorHandling ends up with 2,224 UTs, and often took > 10 minutes to complete. However, QTest hardcoded the timeout to 10 minutes.

Related work items: #2195273
2024-07-10 01:51:44 +00:00
Qi Wang 81290403b6 Merged PR 794274: Log message if eventstats on worker and orchestrator are not match
Re-apply the commits and fix the index out of range bug caused by worker disconnect with orchestrator
2024-07-09 23:03:00 +00:00
Oleksii Kononenko 68b8e5b32d Merged PR 794333: Update net runtime and packages
Update net runtime and packages
2024-07-09 22:51:38 +00:00
Marcelo Lynch 🧉 b68644bc9c Merged PR 794132: Revert "Merged PR 789181: Log message if EventStats on worker and orchestrator are not matched"
Revert "Merged PR 789181: Log message if EventStats on worker and orchestrator are not matched"

This reverts commit 2d39001d29.
2024-07-09 00:17:23 +00:00
BuildXL-Pipelines e1fae10dea Merge pull request 793986 from dev/BuildXL/updatenotice-2024-07-08T16-07-16 into main 2024-07-08 19:40:28 +00:00
Pasindu Gunasekara 🍣 f0c4e529c4 Merged PR 793426: Address CodeQL issues with calling LoadLibrary
- Load library should only be called with fully qualified paths.

Related work items: #2125965
2024-07-08 18:47:14 +00:00
Serge Mera fa1be46eb5 Merged PR 793996: Revert "Merged PR 790969: [Linux sandbox] More robust treatment for missing process start events
Revert "Merged PR 790969: [Linux sandbox] More robust treatment for missing process start events"

This reverts commit 042e86d47e.

Under suspicion for producing DFAs like this one: https://cloudbuild.microsoft.com/build/6034645e-6e76-4214-a6f2-d626eabdbd27
2024-07-08 18:23:35 +00:00
Marcelo Lynch 🧉 6058a7a90f Merged PR 793857: Gracefully exit workers when released before attachment
Gracefully exit workers when released before attachment: we shouldn't fail the worker in this scenario, everything is fine! This happens in 1JS builds quite a bit, and failing the worker is very confusing for the users even if we ignore the failure (an error is logged, etc).

Related work items: #2194383
2024-07-05 21:13:29 +00:00
Semih Okur 81d797e93b Merged PR 789486: Enable encryption for ephemeral cache
Test build:

BuildXL selfhost in AP:
https://cloudbuild.microsoft.com/build/6beef442-c017-4f33-a9e6-da6b32f6bf43
Ephemeral log file from the build: https://cloudbuild.microsoft.com/stamp/MW_S01/getfile?path=\MWH0NPF000548F5\d:\dbs\sh\bxlint\0610_223241\Logs\BuildXL.cache.log.Ephemeral.log&buildId=6beef442-c017-4f33-a9e6-da6b32f6bf43

BuildXL selfhost in RM:
https://cloudbuild.microsoft.com/build/992a33fe-250f-47df-8004-eb3051098e9b
Ephemeral log file from the build: https://cloudbuild.microsoft.com/stamp/PA_V01/getfile?path=\07f5c734c000003\F:\dbs\sh\bxlint\0610_223212\Logs\BuildXL.cache.log.Ephemeral.log&buildId=992a33fe-250f-47df-8004-eb3051098e9b

2024-06-10 22:34:36,929  11 DEBUG 432f8589-c140-414d-8cea-013b8ee75dbe GrpcCoreServerHost.StartAsync start.
2024-06-10 22:34:36,935  11 DEBUG 432f8589-c140-414d-8cea-013b8ee75dbe GrpcCoreServerHost.TryGetEncryptedCredentials: Found gRPC Encryption Certificate.
2024-06-10 22:34:36,936  11 DEBUG 432f8589-c140-414d-8cea-013b8ee75dbe GrpcCoreServerHost.StartAsync: Server creating Encrypted Grpc channel on port 7093
2024-07-05 19:42:32 +00:00
Marcelo Lynch 🧉 e861a5d0f5 Merged PR 791657: Track output directories created by the engine for the pip in the Output filesystem view
We track the output directories created by a pip for the sake of stability in probes and directory enumerations. However, we are not tracking the output directories that are created by the sandbox executor as part of the "preparation" it does before executing the tool. These are actual outputs of the pip, created precisely because they are declared as such (directory outputs, opaque roots, parents of statically declared files). So we should track them in the output file system view as "created by the pip" too.
2024-07-04 20:12:20 +00:00
Sahiti Chandramouli 58142bd487 Merged PR 793301: Add retry mechanism for handling transient errors in ADOBuildRunner
Added a RetryHandler module to handle the transient errors in ADOBuildRunner.
Setup Unit tests for testing this feature.

Related work items: #2168119
2024-07-03 23:39:58 +00:00
Lance Collins f6fcf3a5f4 Merged PR 793558: Fix issue compare exchange for blob L3 when OptimizeWrites = true, which caus...
Fix issue compare exchange for blob L3 when OptimizeWrites = true, which causes AddOrGetContentHashList to always add.
2024-07-03 22:26:13 +00:00
Qi Wang 2d39001d29 Merged PR 789181: Log message if EventStats on worker and orchestrator are not matched
To understand the impact of EventStats missing on orchestrator, sent the eventstats within BuildEndData when orchestrator exit the worker. Worker can log warning message if the EventStats are not matched with its local EventStats.

Related work items: #2160034
2024-07-03 19:13:12 +00:00
Paul Ming 6618105705 Merged PR 793195: Bump CB.QTest to 24.6.26.153636
Bump CB.QTest to 24.6.26.153636

- Redact test JWTs in customer unit test failure messages

From https://mseng.visualstudio.com/Domino/_apps/hub/ms.vss-releaseManagement-web.cd-release-progress?_a=release-pipeline-progress&releaseId=392490
2024-07-02 18:04:16 +00:00
BuildXL-Pipelines c858c40358 Merge pull request 793069 from dev/BuildXL/updatepackages-2024-07-01T16-07-35 into main 2024-07-01 22:16:27 +00:00
Qi Wang 9faca185cb Merged PR 792409: Update Release note for 0.1.0-20240622.1
Update Release note for 0.1.0-20240622.1
2024-07-01 22:11:06 +00:00
BuildXL-Pipelines e31623fda1 Merge pull request 793161 from dev/BuildXL/updatelkg-0.1.0-20240628.1-2024-07-01T21-45-54 into main 2024-07-01 22:07:05 +00:00
BuildXL-Pipelines a72544834d Merge pull request 793068 from dev/BuildXL/updatenotice-2024-07-01T16-07-04 into main 2024-07-01 21:37:04 +00:00
Marcelo Lynch 🧉 697064e4aa Merged PR 792720: Disable flaky HistoricMetadataCacheTests.TestHistoricMetadataPathStringRoundtrip[
Related work items: #2191478
2024-06-28 23:32:00 +00:00
Pasindu Gunasekara 🍣 76568b3f21 Merged PR 790527: Add special handling for openat calls with the ptrace sandbox
- Adds a workaround for the following issue seen on ooui:
  - `error DX10105: [Pip62D946C910711FCE, !! ooui - @1js/excel-online [bundle]] PTraceRunner logged the following error: (relative_to_absolute) ['openat'] Could not get path for fd -1 with path ''; errno: 3`
  - Both path and dirfd are not set to proper values causing the crash.
- Adds a retry to ReadArgumentLong.

Related work items: #2171844
2024-06-27 22:08:31 +00:00
BuildXL-Pipelines 57c4c1db9a Merge pull request 791834 from dev/BuildXL/updatepackages-2024-06-24T16-08-30 into main 2024-06-27 18:29:22 +00:00
Michael Pysson 0c99477c88 Merged PR 791646: Spellcheck various docs
Spellcheck various docs
2024-06-26 21:52:30 +00:00
Oleksii Kononenko 004ded682e Merged PR 792194: Run CodeQL only in CodeQL pipeline and enable bug filing
Run CodeQL only in CodeQL pipeline and enable bug filing. In addition to this PR, a change was made to disable CodeQL in `RunCheckInTests BuildXL PR Validation` pipeline (it's not yaml-based)
2024-06-26 21:44:27 +00:00
Lance Collins d1d2aab47e Merged PR 791472: Pass pip semistable hash / step derived context id to cache operations.
Pass pip semistable hash / step derived context id to cache operations.

Related work items: #2191044
2024-06-26 21:35:44 +00:00
Emily Fischer 5aa3bec2c2 Merged PR 792127: Add Codesync Comment for Method Used in CloudBuild Repo
https://mseng.visualstudio.com/Domino/_git/CloudBuild?path=/private/Common/CloudBuild.Common.BxlUtils/src/BxlUtils.cs&version=GBmain&line=24&lineEnd=24&lineStartColumn=1&lineEndColumn=128&lineStyle=plain&_a=contents
2024-06-26 18:33:50 +00:00
Marcelo Lynch 🧉 f808e3de2f Merged PR 791433: Filter out directory writes for observations passed to ObservedInputProcessor
We shouldn't process writes in ObservedInputProcessor (OIP shouldn't process writes, only "inputs"), so we should exclude these accesses from the list that we then process. Before this change, observations such as these were subsequently treated as probes by the OIP, and considering such probes in the fingerprint computation could cause spurious cache misses (in particular this happened while working on an orthogonal feature to consider directory probes a bit more carefully).

This change also moves the logic adding the created directories to the `createdDirectoriesMutable` collection so the paths are added before being filtered out (excluded) from the collection of observations.
2024-06-26 18:17:18 +00:00