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

7594 Коммитов

Автор SHA1 Сообщение Дата
Michael Pysson 2f6243d8bc Merged PR 802346: Conditionalize Windows specific perf stats based on OS
Conditionalize Windows specific perf stats based on OS
2024-09-07 00:23:16 +00:00
Michael Pysson ae103812d2 Merged PR 804024: Disable support for console hyperlinks
Something in Office's dev build process tree may be intercepting and rendering the escape characters used by terminal hyperlink support. Reverting this until it can be debugged further to avoid ugly characters from showing up on the console

Related work items: #2211824
2024-09-06 23:13:36 +00:00
Sahiti Chandramouli 3c9cd4cd92 Merged PR 803926: Demote Create Historic Metadata Cache Failure to Verbose from Warning.
As a part of this request demoting the event level to verbose
https://stackoverflow.microsoft.com/questions/422628

Related work items: #2211574
2024-09-06 18:02:12 +00:00
Qi Wang c13ee18e2f Merged PR 802557: Don't increment UpstreamCacheMissLongestChain length for pip that depends on a cache disabled pip
The remote cache cutoff feature stops querying the L3 after n number of consecutive misses (default today is n = 2).
If a pip is set to disabled cache, don't increment the UpstreamCacheMissLogestChain for its dependent pips to avoid result in a miss for the whole chain

Related work items: #2038931
2024-09-06 17:55:10 +00:00
Sahiti Chandramouli 79c3c28478 Merged PR 803931: Ensure the cancellationToken is not passed to GarbageCollector.
Correct the condition to Ensure the cancellationToken is not passed to GarbageCollector.

Related work items: #2211574
2024-09-06 17:51:30 +00:00
Serge Mera a7a028a014 Merged PR 803809: Update engines.vscode to match @types/vscode
Update engines.vscode to match @types/vscode. My suspicion is that newer versions of node are actually enforcing this (the error started to manifest on the new YAML release pipeline).
2024-09-06 17:36:19 +00:00
Serge Mera 6899b8a4c3 Merged PR 803759: Updated Release-Notes.md
Updated Release-Notes.md
2024-09-05 20:45:25 +00:00
BuildXL-Pipelines a5908de912 Merged PR 803090: Update NOTICE.txt
[skip ci]
2024-09-04 17:22:52 +00:00
BuildXL-Pipelines 15a6daa146 Merged PR 803299: Update BuildXL LKG Version to 0.1.0-20240830.2
[skip ci]
2024-09-04 16:41:12 +00:00
BuildXL-Pipelines fb13bc1604 Merged PR 803301: Update BuildXL LKG Version to 0.1.0-20240830.2
[skip ci]
2024-09-03 23:48:20 +00:00
Serge Mera 8a963074d5 Merged PR 803221: Add enable cherry picking parameter to YAML release pipeline
Add enable cherry picking parameter to YAML release pipeline
2024-09-03 20:25:18 +00:00
Sahiti Chandramouli a5f70c73d1 Merged PR 803195: Skip passing of cancellation token to GC to avoid null ref in unit test
Original PR: !802728

After adding a number of logging statements to narrow down the issue, it had been determined that this could be a race condition with the garbageCollector in the unit test.

In the garbageCollector the concurrent map called m_exisitingContentEntries is populated accordingly which is required for serializing/ deserializing the cache entries.

The unit test iterates three times each times trying to load/reload the cache. Since the unit test is quick the garbageCollector is forced to abruptly terminate its operation before it can populate the map accordingly.

Once we hit closeAsync method. The CancellationToken is passed to garbageCollector forcing it to shut down its operations leaving the cache in an inconsistent state, but by awaiting the task we ensure that this does not happen.
By skipping the passing of CancellaitionToken to the gc we can avoid this race condition.

[Logs with Success and Failure.txt](https://dev.azure.com/mseng/9ed2c125-1cd5-4a17-886b-9d267f3a5fab/_apis/git/repositories/50d331c7-ea65-45eb-833f-0303c6c2387e/pullRequests/803195/attachments/Logs%20with%20Success%20and%20Failure.txt)
If we observe the logs we see that in the third iteration where we try to load the cache we do not see the garbage collector run at all(Can Collect print statement is missing in the failure run).

Related work items: #2191478
2024-09-03 18:39:00 +00:00
Serge Mera 38bf05d6df Merged PR 802937: [Draft] Use Azure build cache for linux distributed tests
Use Azure build cache for linux distributed tests
2024-08-30 22:27:06 +00:00
Pasindu Gunasekara 🍣 063ac63283 Merged PR 802784: Remove unused code
Cleaning up some old pinvoke code
2024-08-30 16:58:45 +00:00
Qi Wang 3d83b30126 Merged PR 802558: Updated Release-Notes.md
Updated Release-Notes.md
2024-08-29 20:23:24 +00:00
Iman Narasamdya 861a856fe3 Merged PR 802705: Use case-sensitive matching repo alias in pipeline definitions
Use case-sensitive matching repo alias in pipeline definitions.

This is a workaround for bug #2210200

Without this, our pipeline run is neither tagged as 'Official' or 'Unofficial'; the tag is simply empty. This will fail our release pipeline.

Related work items: #2210200
2024-08-29 18:41:58 +00:00
Michael Pysson 1e0d920b87 Merged PR 802091: Remove extraneous error & warnings from rolling build
The RunCheckinTests part of rolling build validation simulates some worker disconnect scenarions which generate warnings and an error. This change removed those expected errors from showing up and cluttering the Azure DevOps console.
2024-08-27 23:28:46 +00:00
Oleksii Kononenko c0c03d7a08 Merged PR 800074: Update .net packages
Update .net packages (8.0.8 and 6.0.33)

Related work items: #2205871, #2205872, #2205873, #2205874
2024-08-27 20:23:30 +00:00
Michael Pysson ee0cb3c5b9 Merged PR 801854: Fix console wrapping issue on Linux builds in Azure DevOps
On Linux builds in Azure DevOps, the console buffer width is reported as 0 for some reason resulting in funny wrapping like this for BuildXL's branding:
![image.png](https://mseng.visualstudio.com/9ed2c125-1cd5-4a17-886b-9d267f3a5fab/_apis/git/repositories/50d331c7-ea65-45eb-833f-0303c6c2387e/pullRequests/801854/attachments/image.png)

The change in this PR yields:
![image (2).png](https://mseng.visualstudio.com/9ed2c125-1cd5-4a17-886b-9d267f3a5fab/_apis/git/repositories/50d331c7-ea65-45eb-833f-0303c6c2387e/pullRequests/801854/attachments/image%20%282%29.png)
2024-08-27 16:38:33 +00:00
BuildXL-Pipelines f3b3c42e40 Merged PR 801964: Update NOTICE.txt
[skip ci]
2024-08-26 20:48:15 +00:00
BuildXL-Pipelines c680709a03 Merged PR 801965: Update Packages
Update packages: Microsoft.ComponentDetection.Contracts 4.9.3 -> 4.9.6
2024-08-26 20:26:48 +00:00
Michael Pysson 0562f13325 Merged PR 801771: Only create console hyperlinks in dev builds
If someone explicitly passes /fancyconsole in an AzureDevOps build, hyperlinks would be enabled. That's a weird configuration but some of the BuildXL repo automation was doing it. This additional check prevents that case.
2024-08-26 16:51:13 +00:00
Sahiti Chandramouli 9fe30c7fd9 Merged PR 801813: Disable HistoricMetadataCache flaky unit test
Disable hmc unit test, as the required info has been obtained.

Related work items: #2191478
2024-08-23 23:02:03 +00:00
Serge Mera 1987a92783 Merged PR 801810: Add additional perf data to the result of PipExecutionPerformanceAnalyzer
Add additional perf data to the result of PipExecutionPerformanceAnalyzer
2024-08-23 23:00:18 +00:00
Serge Mera 6ee1bca473 Merged PR 801607: Let users specify the total build timeout using a CLI arg
Let users specify the total build timeout using `/buildTimeoutMins`. Before this PR the only way was via an engine env var (the CB runner uses this).

Deprecate /BuildWaitTimeout CLI. This flag (unrelated to the functionality being added here) is not being used and it has a confusing name given the new flag being added.
2024-08-23 22:02:34 +00:00
Sahiti Chandramouli 561f89d43c Merged PR 801793: Add checks to flaky disabled HMC unit test to capture the state of LoadedCacheEntry task.
The unit test throws a NullRef exception on line 108. I am under the opinion that this could be because of this maybeLoadedCacheEntry1.Result.Value.MetadataHash. We are trying to access maybeLoadedCacheEntry1 whose cacheEntry could be null.
https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal?path=/Public/Src/Engine/UnitTests/Scheduler/HistoricMetadataCacheTests.cs&version=GBmain&line=108&lineEnd=109&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents

In the TryGetCacheEntryAsync method of HistoricMetadataCache, we expect the cache entry to be present for the "unit test". As we have published that CacheEntry.
https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal?path=/Public/Src/Engine/Scheduler/Caching/HistoricMetadataCache.cs&version=GBmain&line=236&lineEnd=237&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents

However, the method's definition suggests that if the entry is not found, it may return a null Result.
https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal?path=/Public/Src/Engine/Cache/Fingerprints/TwoPhase/ITwoPhaseFingerprintStore.cs&version=GBmain&line=36&lineEnd=37&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents

Given this, I assume that due to some inconsistencies in the Linux environment, the fingerprint could be missing, which causes the code to skip the if condition and proceed to the TryGetCacheEntryAsync method in the base class. This results in a task being sucessful but has a null cache entry.
https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal?path=/Public/Src/Engine/Cache/Fingerprints/TwoPhase/InMemoryTwoPhaseFingerprintStore.cs&version=GBmain&line=83&lineEnd=84&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents

 Adding two additional asserts to confirm that the state of loadedCacheEntry is successful but the task has a null cache entry.

Related work items: #2191478
2024-08-23 21:34:57 +00:00
Michael Pysson 5b92e248f3 Merged PR 799130: Clean up /scriptfile arg todo
Clean up /scriptfile arg todo
2024-08-23 20:20:28 +00:00
Qi Wang 738d6827c7 Merged PR 801751: Correct HOMEDRIVE env name in AmbienContext
Remove the extra ")" character in homedirve env name. It looks like a type.

Related work items: #2192038
2024-08-23 19:28:46 +00:00
Qi Wang c558c543fd Merged PR 800059: Copy current execution log content and report to orchestrator
This pr is trying to address
1. Event dropping during the worker report execution log to orchestrator. The possible reasons are:
    The execution log buffer is filled by another thread while we report it.
    NotifyStream is deactivated before BinaryLogger completes all write events
2. CompareEvent trys to compare RecordFileForBuildManifest events

Changes in this pr:
1. Copy current content from stream and report to orchestrartor. Same as FlushManifestEvents
2. Track RecordFileForBuildManifest event in EventStatsExecutionLogTarget on worker.
3. Calculate total sent execution log size when reportExecutionLog succeed
4. Remove deactivate NotifyStream from Deactivate Execution Log. The stream will be disposed once the log target is disposed. Only deactivate it when we want to early cancel the sending action
5. Log Pending events into stats for manifest events and execution log reporting

Related work items: #2160034
2024-08-23 17:50:19 +00:00
Michael Pysson f3dbf81a0a Merged PR 801293: Update release notes for 20240816.4
Update release notes for 20240816.4
2024-08-23 17:03:51 +00:00
Michael Pysson f7773d7d6c Merged PR 801388: Upload external version of VSCode extension in rolling build
Upload external version of VSCode extension in rolling build

Related work items: #2207309
2024-08-22 22:54:35 +00:00
Serge Mera 27ba0692aa Merged PR 801377: Add cache factory to construct a local cache with a remote blob cache
Use TwoLevelCache to implement a bxl-side cache factory that allows to create a local cache + plain remote blob one. Existing knobs for both caches are preserved.
2024-08-22 18:42:08 +00:00
Qi Wang 8e4c12e724 Merged PR 800682: Check is scheduler been canceled when ensure historic metadata cache loaded
Previous change addressed the crash when loading cache after bxl cancelled. Crash still happen if load the cache after scheduler been cancelled.
To avoid crash, add access to scheduler cancellation token in PipTwoPhaseCache and check whether cancellation been requested before load cache.

Related work items: #2199303
2024-08-20 18:11:34 +00:00
BuildXL-Pipelines 0ee7981d25 Merge pull request 800786 from dev/BuildXL/updatenotice-2024-08-19T16-06-40 into main 2024-08-19 18:56:08 +00:00
BuildXL-Pipelines c9845d166b Merge pull request 800787 from dev/BuildXL/updatepackages-2024-08-19T16-09-06 into main 2024-08-19 18:26:41 +00:00
BuildXL-Pipelines 56f1ce6ef2 Merge pull request 800799 from dev/BuildXL/updatelkg-0.1.0-20240816.4-2024-08-19T17-00-18 into main 2024-08-19 17:24:52 +00:00
Michael Pysson 9285db4279 Merged PR 799144: Remove some unused parts of bxl.ps1
Remove some unused parts of bxl.ps1
2024-08-19 16:14:20 +00:00
Michael Pysson d9beb69fcb Merged PR 799117: Print the log directory as a hyperlink in the BuildXL console
Windows Terminal and other terminals support clickable hyperlinks. This change makes the link to the BuildXL log directory a clickable hyperlink to be opened by the operating system's file explorer of choice. This works on Windows and Linux.

I disabled it when run through an SSH session since the link would be a path on the host and the files may not exist on the SSH client. If run in a VSCode SSH session, VSCode has parsing for paths and does the right thing anyway.

This does change the behavior if you're running through a VSCode wrapped terminal locally. Previously, VSCode would attempt to show it through its file browser. Now it will use the file explorer of the OS instead. I didn't think this was a big deal and wasn't worthy of a config option.
2024-08-17 00:23:15 +00:00
Michael Pysson 267a6c0b73 Merged PR 800670: Don't log request headers when nuget package fetch fails
HttpRequestMessage.ToString() logs the request headers, which contain tokens. Don't log that part in this error message.
2024-08-16 22:15:21 +00:00
Lance Collins a2d0a33a27 Merged PR 799491: Allow deduplicating content from ephemeral local CAS with CASaaS
Allow deduplicating content from ephemeral local CAS with CASaaS local content by always putting content into CASaaS first and then transferring hardlink to ephemeral local cas.
2024-08-16 22:12:20 +00:00
Michael Pysson 96f9e80fa3 Merged PR 799125: Use QTest from bxl binary location instead of package location
Use QTest from bxl binary location instead of package location
2024-08-16 21:17:17 +00:00
Serge Mera 13a1511660 Merged PR 800494: Do not try to decrypt build cache configuration files
Do not try to decrypt build cache configuration files
2024-08-15 23:29:53 +00:00
Serge Mera 97f8f16345 Merged PR 800482: Do not try to flush page cache to filesystem for copy file pip sources
Flushing changes to the filesystem are intended for just-produced outputs. Do not attempt to do that for the source of a copy file pip when tracking a potential symlink chain. That may conflict with an attempt to hash a source file and throw a sharing violation.

Related work items: #2203343
2024-08-15 23:10:18 +00:00
Oleksii Kononenko 25317a6179 Merged PR 800101: Don't log errors when service pips are killed due to schedule termination
When we the schedule hits an internal error, we aggressively terminate the build (DX0249). As a result, service pips (and their shutdown pips) will / might not exit cleanly. If they do, do not log `ScheduleServicePipFailed` / `ScheduleServicePipShuttingDownFailed` errors.

Related work items: #2199314
2024-08-15 21:26:53 +00:00
Marcelo Lynch 🧉 a3a9711ccb Merged PR 799321: User-configurable observed input type reclassifications
Allow users to specify reclassifications on operations resolved by the observed input processor. Users can configure rules in their specification that individual pips can opt into, where some observation types are reclassified after being processed by the observed input processor.

The rule matching happens both after execution and when processing pathsets for the pip on cache lookup. Future optimizations might avoid some of the processings on cache lookup.

Note that any changes in these rules results in a weak fingerprint change for the pips, as there is no way to know if observations for the pip have to be reclassified with the new rules.

To learn more about the motivations for this change, refer to [this document](https://microsoft.sharepoint.com/:w:/t/1ES2/EXOegdiLQkRNt5bE7nhFic8BJBYKcETrqcY-gI2_jTN9zw?e=UEIxAg)

Related work items: #2185890
2024-08-15 20:54:26 +00:00
Serge Mera f9494ce1d7 Merged PR 800262: Fix cache generation condition logic
* Fix cache generation condition logic so it is triggered by the right data
* Establish a precedence order between different cache generation options
* Get rid of IAdoBuildRunnerService (there are no intentions to have other implementations for the service)
2024-08-15 18:14:38 +00:00
Pasindu Gunasekara 🍣 693224aaf4 Merged PR 800284: Publish BuildXL.Cache.BuildCacheResource.Helper with external PR rolling build 2024-08-15 17:15:45 +00:00
Oleksii Kononenko e74fc97ff0 Merged PR 800299: Update release notes
Update release notes
2024-08-14 21:36:03 +00:00
Pasindu Gunasekara 🍣 c4ea20f370 Merged PR 799926: Revert 'Update macos package to 0.1.0-20240802.2'
Package not being published to ms org.

Update macos package to 0.1.0-20240802.2

Reverts !799497

Related work items: #2143216
2024-08-13 17:38:47 +00:00
Julian Bayardo 57e025624a Merged PR 799781: Make logic to check whether a container exists more robust to weak credentials
Make logic to check whether a container exists more robust to weak credentials

Meant to fix this issue: https://cbtest.microsoft.com/stamp/DM_V01/getfile?path=\710424fcc000006\F:\dbs\sh\cb_m\0812_133400\CacheClient.log&buildId=91c24830-5d6b-4d21-9f1e-3208b05bbeca
2024-08-12 23:43:33 +00:00