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

7503 Коммитов

Автор SHA1 Сообщение Дата
Qi Wang c2b508d984 Merged PR 804919: Add LinuxPipDebugAnalyzer that generates configuration to debug linux tests
Add a LinuxPipDebugAnalyzer.
This Analyzer generates the required configuration for vscode to launch debugger. It takes the pip semi-stable hash as input, generates the configuration and writes it into a json file. Copy the configuration to vscode launch.json then start debugging

Related work items: #2207693
2024-09-13 22:33:24 +00:00
Sahiti Chandramouli 66c5403a18 Merged PR 804878: Add Visual Studio Professional Support
This is a PR from github contribution.

Related work items: #2213931
2024-09-12 20:44:06 +00:00
Oleksii Kononenko 60736200d1 Merged PR 803829: Make policheck happier
Make policheck happier

Related work items: #2171141
2024-09-12 19:34:23 +00:00
BuildXL-Pipelines c5b75e88e1 Merged PR 804603: Update BuildXL LKG Version to 0.1.0-20240906.8.1
[skip ci]
2024-09-11 17:01:01 +00:00
Serge Mera d96a1fbcbb Merged PR 804427: Pass cherry picking param to release pipeline
Pass cherry picking param to release pipeline
2024-09-10 20:45:06 +00:00
Qi Wang 3fc35ea7a9 Merged PR 804251: Fix ContractException when return failure result if historic meta data is called after cancellation has been requested
CancellationToken.CreateFailure() will assert the cancellation is requested. However, there are two cancellation tokens: Context.CancellationToken and Scheduler CancellationToken in HistoricMetaDataCache. Create the failure from wrong cancellation token throws the exception and crash the build.

In this pr, using the CancellationFailure constructor directly to avoid ContractException. It doesn't matter which cancellation is requested, the build will be cancelled.

Related work items: #2212685
2024-09-10 18:25:52 +00:00
Pasindu Gunasekara 🍣 2df6c54c88 Merged PR 804185: Increase retention period for macos artifacts
- 1 day is not enough if the release is created over a weekend
2024-09-10 17:20:19 +00:00
Serge Mera d887c23db4 Merged PR 804224: When JS project graph is kept, copy it to log folder
When JS project graph is kept, copy it to log folder. This usually makes it easier to consume on CB/ADO as the full Logs folder is uploaded.
2024-09-10 15:20:34 +00:00
BuildXL-Pipelines dfb19db441 Merged PR 804195: Update BuildXL LKG Version to 0.1.0-20240906.8
[skip ci]
2024-09-09 22:32:58 +00:00
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