Use GITHUB_USER env var to capture UserName for Codespaces.
Added an Engine Based test to test the three cases - custom value, ADO, codespaces.
Added a smaller unit test to specifically check the functionality of GetUserName.
Related work items: #2169835
Two fixes:
1) The new SandboxEvent constructors take `std::string&` as parameters but the lib functions pass `char*`s. If a tool passes null for a `char*`, the runtime crashes because it won't allow that implicit construction. We need to handle this gracefully because the tools can pass whatever to the libc functions we interpose. The fix is to create a special `SandboxEvent::Invalid` in these cases that we then ignore
2) We shouldn't report paths that are non-files. Add a check for this in `ResolveEventPaths`, which will report that the path isn't a file so we can ignore it
All occurrences of ReceivedReportFromUnknownPid from 1JS in the last week was about synthetic accesses (process requires ptrace, first allow write check in process). Let's not log in that case, we send these from native side before the process start event, and they are not real accesses in the end.
I'll check again in a week if that makes ReceivedReportFromUnknownPid reach 0, and in that case I'll turn it into a warning.
Revert the Lage builder to stop producing an error file. This change produced a DFA on office devmain (the lage graph builder is used directly as a tool in that codebase). Will roll forward again in a way that doesn't produce breaks.
Remove the condition where customers need to pass this parameter in the AllowList entries.
Reused two unit tests which test this feature.
Had to define a comparer for comparing SerializableRegex objects since it was becoming an issue when using the MultiValueDictionary to extract elements.
Related work items: #2139864
Linux implementation was missing. Existing tests were not actually exercising this because on Linux we don't send absent probes that later become present (we might hit this still when there is a race between 2 pips). Added lower-level tests to cover the reparse point resolver component itself.
Related work items: #2170566
This PR makes us enable compliance build only in Linux PR validation.
Ideally, we should only enable source analyses in the rolling pipeline. However, because our rolling pipeline contains CB builds, SDL source analyses are all disabled, in favor of the CB compliance build. Unfortunately, some analyses, like policheck, do not work in network isolation when building in CB.
SDL source analyses typically take 2.5-4 minutes, and should not be in the critical path of this Linux pipeline run.
There was a bug in !777896 where that didn't apply to the light config. So in practice it didn't do anything. This brings the light config to parity with the real one as well as adds unit tests to ensure their infra defaults evaluate to the same thing.
We want to report a probe on the nominal path, without resolving symlinks. Note that the probe is redundant in the case where the path does exist. Also fix a test which depended on the wrong behavior
- If we checkout multiple repos, then this task tries to resolve this path against $(Build.SourcesDirectory) instead of $(Build.SourcesDirectory)/BuildXL.Internal
In some timed-out builds, we see that the orchestrator times out by waiting for some remote pips. However, the pip build request has never been sent to the worker. It somehow got lost in RemoteWorker logic. I'm trying to find those cases where the pip build request is just not sent to the worker.
an example build: https://cloudbuild.microsoft.com/build/7fb02f46-7d47-ee25-c10b-4fd74bb0f483
Enable remote pip timeout feature as an option. I know that we have a problem in the past, so I want to experiment it in some test queues before enabling it by default.
Catch the exception thrown from StandardConsole and exit the buildxl process
All exceptions are thrown after we adjust cursor position and write blank text for overwriting. Add a check before adjusting the cursor to make sure current console is overwritable.
Related work items: #2138734
When the scheduler is early-terminated due to an internal error, the workers that are released early can hinder the scheduler's shutdown, potentially causing the build to stall. Although the orchestrator receives results from these workers, the tasks assigned to the early-released workers cannot be completed if the scheduler on the orchestrator has already finished. Therefore, it is necessary to manually finalize the 'DrainCompletion' task sources for each worker.
Related work items: #2169589
When we do not receive the error message for the failed pips due to several reasons (worker connection issue, etc.), we fail the pip. The failure might be related to the worker issues. That's why, we should retry the pip instead of failing the build. Those builds were tagged as ProblematicWorkerExit.DistributionPipFailedOnWorker
An example build: https://cloudbuild.microsoft.com/build/697e8d4a-2f1e-a3d2-fe66-7d7e25fcfd01
All clients using /logToKusto are already using /cacheLogToKusto. Deprecate the latter and make /logToKusto send telemetry for both bxl and the cache.
Related work items: #2166630