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

7503 Коммитов

Автор SHA1 Сообщение Дата
Sahiti Chandramouli f2a0d7b1e2 Merged PR 788408: Refactor GitInfoManager and auto-collect git repo for /traceinfo:codebase
Refactored GitInfoManager to avoid the need of LoggingContext as an input.
We will be logging the related failures or gitRepoInfo later, after the creation of loggingContext.

This way we can set the gitRemoteRepoUrl as the codebase property in case its not passed by the user or obtained in ADO.

After:
Case 1: No value provided by the user

dominoinvocation
| where SessionId == "8b74c916-0000-0000-bd0d-409fefa41fc4"
| project GitRemoteRepoUrl, Environment, CommandLine, UserName

Case 2: The user provided value always overrides this value
passed /traceInfo:codebase=TestBXLGitInfo to the build.

dominoinvocation
| where SessionId == "02181b5e-0000-0000-bd0d-1eabceb9d073"
| project GitRemoteRepoUrl, Environment, CommandLine, UserName

Related work items: #2171047
2024-06-06 09:41:16 +00:00
Oleksii Kononenko 83601edc91 Merged PR 788728: Make sure that RetryInfo is set for cancelled remote pips
It appears that when we stop a worker due to an internal error, we mark all pips as cancelled. For pips, that have not started running, we were setting Cancelled status, but were not setting RetryInfo. When the orchestrator receives the result back, it's expecting to see RetryInfo unless the orchestrator is terminating.  In case of low disk space, we stop a worker, but not the orchestrator, so we end up with a pip that breaks the assert, and we crash.

Related work items: #2185688
2024-06-05 23:48:14 +00:00
BuildXL-Pipelines 9f2e73d9c2 Merge pull request 788704 from dev/BuildXL/updatelkg-0.1.0-20240531.3.1-2024-06-05T20-36-15 into main 2024-06-05 21:51:23 +00:00
Julian Bayardo b78dbf86d0 Merged PR 788669: Revert 'Modify last access time tracking so it's always updated'
This change modifies how we touch files when doing uploads of files that already exist or pins. Currently, we'll update the last access time by doing a 1-byte download.

In the new version, we instead update the Content-Language to a random value. The reason this works is that updating Content-Language updates the Last Modification Time, the ETag, and the Last Access Time. Because this only works when we have write permissions, we do this only for non-read-only sessions.

This also changes GC so that when it reads the last access time from a blob, it also fetches the ETag and the last modification time.

One of the interesting consequences of this PR is that this in principle allows us to disable Last Access Time tracking in our storage accounts that use server GC.

The reason this change is being made is we've had already 6 WDG build failures where:
1. A content is added long ago
2. A build runs, it inserts the content, the content is already there, so we touch it instead
3. In parallel, GC is running and sees the last access time from before the touch, so it proceeds to delete it. Because we had no way to prevent the deletion from happening when there's a race, this would cause a CTMIS

Reverts !785193
2024-06-05 19:15:41 +00:00
Ben Witman 399856aa3c Merged PR 788328: Fix CacheDump Analyzer Crashes when Trying to Dump a Failed Strong Fingerprint
In order to use the `D4` formatstring the argument needs to be an int, see [this precedent](https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal?path=/Public/Src/App/Bxl/BuildXLApp.cs&version=GC37d0ca68b1fb20cf158073807008332394071d93&line=2664&lineEnd=2665&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents)

I ran the repro without and with this change and validated it worked.

Related work items: #2185385
2024-06-05 16:13:48 +00:00
Semih Okur ae9f2c5348 Merged PR 788202: Pass OrchestratorIpAddress to cache initialization
Pass OrchestratorIpAddress to cache initialization
2024-06-04 19:18:48 +00:00
Julian Bayardo 5914404e99 Merged PR 788364: Address issue with shutdown sequence in AzureBlobStorageLog 2024-06-04 17:24:02 +00:00
Kai Chen 8e9c7529b5 Merged PR 786827: Support to passing the constantly changing symbol client key for symbol drop
#Issue
- office needs to specify client keys for index source in symbol drop. Since same file path will be indexed many times in different build, to avoid the key collision, we will need to specify the client key to be unique enough. However, this introduces unwanted cache miss to build if we put it as argument or environment to build graph.

- can't pass custom client key for each file under directory when calling `addDirectoryToSymbol`
- There is no filer to filter out files when calling `addDirectoryToSymbol`

#solution

- new argument `clientKeyPrefixForSymbolEnv` for symbol daemon, to specify the env name and env's value will be used for prepending to the passed custom client key before sending to symbol drop. The values is constantly changing overbuild, but it is only passed to ipc pip (always run) and doesn't impact non-ipc pip. This is best way that I could think of to avoid uncessary cache miss
- new argument `directoryContentFilter` for `addDirectoryToSymbol` to filter the files under the directory to be sent to symboldrop
- new argument `directoryPathToClientKey` for `addDirectoryToSymbol` to specify the client key by replacing the directory path with this value and each file's client key under that directory
 will be composed as: `<directoryPathToClientKey>/<relative path under the directory>`
2024-06-04 16:51:08 +00:00
BuildXL-Pipelines 60773a34ec Merge pull request 787980 from dev/BuildXL/updatelkg-0.1.0-20240531.3-2024-06-03T02-09-08 into main 2024-06-03 19:03:58 +00:00
Marcelo Lynch 🧉 7e41430502 Merged PR 786872: Log internal warning on open file descriptor spike
Log internal warning on open file descriptor spike

Related work items: #2180387
2024-06-03 17:43:20 +00:00
Marcelo Lynch 🧉 b05969243e Merged PR 786886: Include verbose/informational infrastructure issues in the internal warnings
We want to log some infrastructure issues as verbose to not surface them to the users, but at the same time keep track of them: for this, we include them in the internal warnings
2024-06-03 17:42:51 +00:00
BuildXL-Pipelines 147f0d6f81 Merge pull request 788070 from dev/BuildXL/updatepackages-2024-06-03T16-08-08 into main 2024-06-03 17:14:17 +00:00
BuildXL-Pipelines b69b993621 Merge pull request 788069 from dev/BuildXL/updatenotice-2024-06-03T16-07-00 into main 2024-06-03 16:35:59 +00:00
Oleksii Kononenko 1d9494f03c Merged PR 787219: CodeQL cleanup
Changes to make CodeQL happy. The majority of the changes are suppression of CodeQL warnings:
1. eval/function constructions - we use these exclusively in tests
2. weak cryptography - we are not using it for the crypto purposes

Related work items: #2152932
2024-05-31 22:43:23 +00:00
Qi Wang 5799d43c25 Merged PR 787486: Fix failed tests on Ubuntu 22.04
There are three failures.
1. Operation is not using OS utilities for probe operation in test.
2. cp command in Ubuntu 22.04 reports read access before probe access, which is weird. The read access will be cached, and sandbox will skip the following probe access on same path. Add a version check before assert the event log id count.
3. fstat is used in Ubuntu 22.04 instead of __fxstat. Assert specific system call based on ubuntu version.

Related work items: #2182474
2024-05-31 19:26:05 +00:00
Michael Pysson 06f67cd7c9 Merged PR 787813: Update .net runtime versions to 6.0.31, 7.0.20, 8.0.6
Update .net runtime versions to 6.0.31, 7.0.20, 8.0.6
2024-05-31 17:19:45 +00:00
Pasindu Gunasekara 🍣 47938a03a9 Merged PR 787606: Updated Release-Notes.md
Updated Release-Notes.md
2024-05-30 17:44:11 +00:00
BuildXL-Pipelines 58f7ace6e2 Merge pull request 787007 from dev/BuildXL/updatepackages-2024-05-27T16-07-55 into main 2024-05-29 22:07:28 +00:00
Julian Bayardo 15a446cb20 Merged PR 785193: Modify last access time tracking so it's always updated
This change modifies how we touch files when doing uploads of files that already exist or pins. Currently, we'll update the last access time by doing a 1-byte download.

In the new version, we instead update the Content-Language to a random value. The reason this works is that updating Content-Language updates the Last Modification Time, the ETag, and the Last Access Time. Because this only works when we have write permissions, we do this only for non-read-only sessions.

This also changes GC so that when it reads the last access time from a blob, it also fetches the ETag and the last modification time.

One of the interesting consequences of this PR is that this in principle allows us to disable Last Access Time tracking in our storage accounts that use server GC.

The reason this change is being made is we've had already 6 WDG build failures where:
1. A content is added long ago
2. A build runs, it inserts the content, the content is already there, so we touch it instead
3. In parallel, GC is running and sees the last access time from before the touch, so it proceeds to delete it. Because we had no way to prevent the deletion from happening when there's a race, this would cause a CTMIS
2024-05-29 19:56:25 +00:00
Pasindu Gunasekara 🍣 99a7993181 Merged PR 787205: Revert "Merged PR 784626: Allowlist rules should not be affected by '\\?\' pa...
Potentially causing incident 507986920

Revert "Merged PR 784626: Allowlist rules should not be affected by '\\?\' path prefix"

This reverts commit c581dcee03.

Related work items: #2165593
2024-05-29 16:49:41 +00:00
Michael Pysson b06d5d5e5c Merged PR 787099: Update .net runtime versions to 6.0.30, 7.0.19, 8.0.5
Update .net runtime versions to 6.0.30, 7.0.19, 8.0.5

Related work items: #2182665, #2182666, #2182667
2024-05-28 18:11:30 +00:00
BuildXL-Pipelines 41f024629d Merge pull request 787006 from dev/BuildXL/updatenotice-2024-05-27T16-06-44 into main 2024-05-28 16:09:15 +00:00
BuildXL-Pipelines f1f0c91edb Merge pull request 786960 from dev/BuildXL/updatelkg-0.1.0-20240525.1-2024-05-27T08-04-53 into main 2024-05-27 23:13:50 +00:00
Qi Wang 98c1812f87 Merged PR 786165: Remove symlink libdl.so for ubuntu 22.04
remove symlink libdl.so
2024-05-24 20:35:38 +00:00
BuildXL-Pipelines 39675eb58d Merge pull request 786653 from dev/BuildXL/updatelkg-0.1.0-20240522.1-2024-05-23T20-10-23 into main 2024-05-24 18:20:04 +00:00
Semih Okur 81a63d29e6 Merged PR 786691: Updated Release-Notes.md 2024-05-24 17:58:37 +00:00
Qi Wang eb68c85880 Merged PR 786666: Use system default working directory in publish symbols
Use System.DefaultWorkingDirectory for downloading artifacts in publish symbols instead of BuildXL.ExternalLKGsPackagePath, which is a variable from release pipeline and need to be passed through queue time variables.
2024-05-24 17:17:37 +00:00
Semih Okur 928c9b1182 Merged PR 784690: Modify the priority order of environment variables for gRPC cert name
Modify the priority order of environment variables for gRPC cert name
2024-05-24 00:30:01 +00:00
Iman Narasamdya ef1785fc81 Merged PR 786482: UT showing preserve outputs behavior on opaque directory
UT showing that opaque directory is cleaned up
2024-05-23 01:38:51 +00:00
Qi Wang 3b7be63260 Merged PR 786437: Add glibc version check in Linux sandbox test process
Add a glibc version check in test process. Use fstat instead of __fxstat in ubuntu 22.04
2024-05-22 22:10:33 +00:00
Oleksii Kononenko fe5a6759ec Merged PR 786241: Revive Net7 support
CaSaaS is currently on Net7 and it might need updated bxl bits while it's moving to Net8. This PR re-adds net7 qualifier. It's essentially a revert of `0a4d5b272900cfb6ad2c13795650e269500f9d17` and `5380d614bb98bfebb5a63900bb617ff51e93e56e`.

7.0.18 has a vulnerability, so this PR also includes a change that updates net7 bits to 7.0.19 to make the CG happy.

note: MsBuild is back to net7 (net7->net8 for msbuild was a part of net7 removal)
2024-05-22 19:35:13 +00:00
Semih Okur 250eb23e6f Merged PR 786194: Update the threshold for LimitProblematicWorkerCount
Because many builds are now failing with high problematic worker count, we now increase the threshold from 0.5 to 0.9.
2024-05-22 18:27:35 +00:00
Paul Ming a66b7252e3 Merged PR 785987: Update CB.QTest to 24.5.17.221805 for another fake JWT redaction
Bump CB.QTest to 24.5.17.221805

From https://mseng.visualstudio.com/Domino/_releaseProgress?_a=release-pipeline-progress&releaseId=384244 (technically a previous run would've pushed the package)

Related work items: #2156881
2024-05-22 14:06:40 +00:00
Pasindu Gunasekara 🍣 52fd081df7 Merged PR 786242: Update bond to 13.0.0 2024-05-22 02:11:05 +00:00
Qi Wang 0c6c081ef9 Merged PR 785475: Resolve ptrace sandbox reports dfa in Ubuntu 22.04 on readlink
Untrack /user/local/include and /usr/x86_64-linux-gnu by default
Report Checker::Lookup for absent path in readlink
Fix a small bug when pathname is empty, we added extra slash at the end of the path

Related work items: #2137346
2024-05-21 18:01:24 +00:00
Michael Pysson 05828f78c4 Merged PR 785994: Enable incremental binary analysis in 1ESPT for rolling build
Enable incremental binary analysis in 1ESPT for rolling build
2024-05-20 23:59:18 +00:00
Iman Narasamdya dffd38106e Merged PR 785975: Probing unset mount should not cause graph (engine) cache miss
Probing unset mount should not cause graph (engine) cache miss

Related work items: #2180048
2024-05-20 22:23:30 +00:00
BuildXL-Pipelines 376950b0f0 Merge pull request 785910 from dev/BuildXL/updatelkg-0.1.0-20240517.7-2024-05-20T17-43-40 into main 2024-05-20 21:32:32 +00:00
Marcelo Lynch 🧉 940a363fe4 Merged PR 785950: Check is_non_file for path SandboxEvents
Check is_non_file for path SandboxEvents
2024-05-20 21:22:13 +00:00
BuildXL-Pipelines e21e211534 Merge pull request 785877 from dev/BuildXL/updatepackages-2024-05-20T16-07-56 into main 2024-05-20 16:54:01 +00:00
BuildXL-Pipelines 360bd2db34 Merge pull request 785876 from dev/BuildXL/updatenotice-2024-05-20T16-07-21 into main 2024-05-20 16:43:03 +00:00
Marcelo Lynch 🧉 e6f832a249 Merged PR 785519: Introduce internal_ variants preserving errno for robustness while doing internal sandbox operations
We should only use `real_` when we are very sure that it's okay to modify errno (for example, during sending we know that we will restore errno at the end) or if we want to examine `errno` of that operation ourselves (but we don't have instances of this in the codebase today). Let's try to use `internal_`, which automatically restores errno, whenever in doubt

Related work items: #2180657
2024-05-17 23:16:52 +00:00
Marcelo Lynch 🧉 1c036b601f Merged PR 785734: Use new cache miss analysis mode on ADO selfhost builds 2024-05-17 21:51:54 +00:00
Qi Wang 046751d1a3 Merged PR 785717: Use queue time variable for rolling build number and id
Use queue time variable for rolling build number and id.
When scheduling pipeline run from release pipeline, the build id and number used to download artifact from rolling build need to be passed though queue time variables.
2024-05-17 21:31:27 +00:00
Marcelo Lynch 🧉 6300c786a8 Merged PR 784931: Use the ADO invocation key as part of the fingerprint store key for cache miss analysis
In a pipeline with two "kinds" of builds (say, "debug" and "ship"), it is better to split the FP store namespace between these two builds: this makes for a better comparison, always against the latest FP store of a build of that same "kind"
2024-05-17 21:21:07 +00:00
Michael Pysson f84859241a Merged PR 785678: Revert "Merged PR 785648: Enable incremental binary analysis in 1ESPT for rol...
Revert "Merged PR 785648: Enable incremental binary analysis in 1ESPT for rolling build

Enable incremental binary analysis in 1ESPT for rolling build"

Reverted commit `221bb40f`.
2024-05-17 18:12:41 +00:00
BuildXL-Pipelines fe18675632 Merge pull request 785496 from dev/BuildXL/updatelkg-0.1.0-20240513.19-2024-05-16T22-05-16 into main 2024-05-17 18:08:51 +00:00
Michael Pysson 221bb40f5c Merged PR 785648: Enable incremental binary analysis in 1ESPT for rolling build
Enable incremental binary analysis in 1ESPT for rolling build
2024-05-17 16:44:18 +00:00
Marcelo Lynch 🧉 069143520f Merged PR 785522: [Linux sandbox] Don't resolve paths that we got from /proc/self/fd. Add test coverage for intermediate symlink resolution
The paths we get from `/proc/self/fd` are already resolved
2024-05-16 23:48:10 +00:00
Marcelo Lynch 🧉 96f8db5c1b Merged PR 785445: [Linux sandbox] Rename 'normalize' to 'resolve' for consistency, and use a nicer abstraction for the SandboxEvent path resolution requirements
Looks like we only care about O_NOFOLLOW and we hardcode it ourselves most of the time, we are not really using whatever 'mode' is specified in the different system calls. So instead of making it part of the 'event' and using the OS const values (like NOFOLLOW) we should just use an enum

Related work items: #2171798
2024-05-16 23:23:24 +00:00