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

6016 Коммитов

Автор SHA1 Сообщение Дата
CloudDev Build Account 5adf4b72be New LKG 0.1.0-20230309.8
[skip ci]
2023-03-10 17:58:55 +00:00
Sergey Tepliakov ccbec78eca Merged PR 706489: Update Microsoft.Win32.Registry to 4.4.0
This PR fixes the discrepancy between the artifact services package that requires 4.4.0 version and BuildXL.Utilities that used to require 4.3.0 version. Without this change referencing BUildXL.Utilities package was causing a nuget package downgrade.

Related work items: #2039361
2023-03-10 17:58:28 +00:00
CloudDev Build Account 315495aafe New LKG 0.1.0-20230306.2
[skip ci]
2023-03-10 06:07:13 +00:00
CloudDev Build Account fcd9a9291c New LKG 0.1.0-20230308.0
[skip ci]
2023-03-10 05:47:00 +00:00
Serge Mera 4c281a1e41 Merged PR 706466: Add --release option to bxl.sh
Add a --release option to bxl.sh. This works as an orthogonal configuration option for all the existing build options (e.g. ' --minimal --release' , or '--deploy-dev --release'. Default is still debug.
2023-03-10 01:44:21 +00:00
Iman Narasamdya cf6c7ec568 Merged PR 706413: Fix directory enumeration with legacy Win32 pattern "*.*"
The pattern "*.*" in directory enumeration means include all members.

Our observed input processor turns it into a regex pattern that exclude any member whose name has no '.'. This means we miss all file and directory members that don't have any extension in our fingerprint.

You can run `dir *.*` in your command prompt to test it. But if you run that in Powershell terminal, all names without extension are filtered out. But in this case, for Windows, we follow the semantics of `FindFirstFile` and `PathMatchSpec`.

Apparently some tools like `python` performs directory enumerations with this legacy pattern.
2023-03-10 01:39:59 +00:00
Michael Pysson f09d3ec7b3 Merged PR 706442: Make DeploymentRoot mount scrubbable
Our public rolling validation tries to scrub this directory but fails with a warning because it is not a scrubbable mount. The result is we include unwanted packages in the produced artifact
2023-03-10 00:27:17 +00:00
Michael Pysson 094ccbf050 Merged PR 706211: Add doc for File Materialization
Add doc for File Materialization
2023-03-09 22:20:04 +00:00
CloudDev Build Account 165768fb2f New LKG 0.1.0-20230308.5
[skip ci]
2023-03-09 21:34:56 +00:00
Julian Bayardo f602043ec0 Merged PR 706205: Remove unused code
Remove unused code
2023-03-09 21:22:10 +00:00
Michael Pysson b6e946c79a Merged PR 706179: Merge ConcurrencyLimit and UnavailableSlots in build summary reporting
The Limiting factors summary at the end of the build had a heuristic for ConcurrencyLimit. That was calculated based on there being free resources on the machine and more work available to be run. Evolutions to the scheduler eventually codified this heuristic into the UnavailableSlots counter. This superseded the ConcurrencyLimit in precedence in ExecutionSampler. So ConcurrentyLimit was basically always getting logged at 0%.

I consolidated the two keeping the original ConcurrencyLimit terminology since that was used in the performance summary at the end of the build log.

Related work items: #2033907
2023-03-09 21:17:38 +00:00
Michael Pysson c6f0ad131f Merged PR 705874: Log specific user level error on VSTS cache startup failure.
Adds a specific error message to recommend people connect to VPN to access the VSTS cache. Also categorize this specific cache init failure as a user error.
2023-03-09 17:31:18 +00:00
Julian Bayardo a3847a2de4 Merged PR 706095: Simplify EventSequencePoint 2023-03-08 21:09:24 +00:00
Semih Okur eacce37978 Merged PR 705776: Remove grpc.core support 2023-03-08 20:49:45 +00:00
Will Li 90e4d7d8ab Merged PR 705616: Remove JetBrains/Resharper Annotations
JetBrainsAnnotations should be removed now that there are built-in NotNull attributes.
2023-03-08 19:25:56 +00:00
Julian Bayardo 295525b24b Merged PR 705937: Simplify CheckpointState 2023-03-08 19:19:33 +00:00
Serge Mera 72bdc9cf53 Merged PR 705907: Report process creation for clone/fork on the child process
Reporting process creation for fork/clone on the parent has the problem that report lines from the child may non-deterministically arrive before the process creation report line. This causes that on managed side we don't have a process entry to associate those reports to, and therefore an allowlist that needs the current executable for a given access cannot be applied. This PR moves the reporting to the child.

Related work items: #2038280
2023-03-08 18:01:13 +00:00
Semih Okur 97e51474cb Merged PR 705946: Disable some tests for linux as those fail with root access
Disable some tests for linux as those fail with root access
2023-03-08 17:47:52 +00:00
Michael Pysson a2752512b8 Merged PR 705593: Fix debugging documentation
The debugging documentation currently doesn't list the namespace of the functions it describes, causing developers to spend time reverse engineering the debug object.

This commit adds the namespace to the documentation to make it clear to developers that these functions need to be prefixed by the Debug namespace when invoking them.
2023-03-08 17:29:00 +00:00
Brian Barthel c1240e6402 Merged PR 705577: Make NodeAlgorithmId obsolete and remove usages.
Simplify the AlgorithmId to obsolete NodeAlgorithmId.  Make old method signatures obsolete in preparation for removal.

Related work items: #2007161
2023-03-08 15:08:14 +00:00
Sergey Tepliakov 54218d2797 Merged PR 705595: Migrate from JetBrains StringFormatMethod to StringSyntax
This PR is done on top of [this one](https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/705532) and it moves away from JetBrains annotations towards built-in one.

Check the last commit only.
2023-03-07 22:29:54 +00:00
Michael Pysson e59e22e712 Merged PR 703227: Allow machine total ram to dynamically increase for ram forecasting
BuildXL currently snaps total machine memory (working set) at the beginning of the build. This is normally a safe assumption, but builds on machines that are VMs with dynamic memory on the host will vary the amount of assigned memory while the build happens. This change allows what is used for modeling resources to grow while the build is running.
2023-03-07 22:03:03 +00:00
Sergey Tepliakov e4dfa72a4d Merged PR 705532: Add PolySharp attributes for using latest C# feature in multi target scenarios
This PR adds `PolySharpAttributes` folder into BuildXLSdk to clearly separate which attributes the SDK adds in order to use the latest C# language feature with an ability to target the older runtimes.

The PR also removes `isDotNetCoreApp` property from `BuildXLSdk` in favor of `isDotNetCore` property.

The PR also adds a few missing attributes, like `ModuleInitializerAttribute`, `StringSyntaxAttribute`, `SkipLocalInitAttribute` and also moves `StackTraceHiddenAttribute` from cache interfaces project into `PolySharpAttributes` folder.
2023-03-07 21:52:54 +00:00
Iman Narasamdya 92edab6712 Merged PR 705798: Pretty print result of Fingerprint store analyzer
Pretty print result of Fingerprint store analyzer
2023-03-07 20:54:30 +00:00
Serge Mera a8a0485d04 Merged PR 705596: Enable dev logs across the board
Enable dev logs across the board (even for dev builds): when not explicitly specified otherwise, a dev log will be generated by cherry-picking relevant events (same events used today in CB)

Related work items: #2038279
2023-03-07 19:59:08 +00:00
Marcelo Lynch 🧉 e5c4663b22 Merged PR 705486: Remove unused IOEvent constructor
This overload is not used in the Linux sandbox, and we can simplify the code by removing it and slightly changing the MacOS code that was using it

Related work items: #2037865
2023-03-06 21:48:13 +00:00
Juan Carlos Guzman Islas e80c445333 Merged PR 705523: Add option to skip remote pin when putting content
Add option to skip remote pin when putting content
2023-03-06 21:32:32 +00:00
Marcelo Lynch 🧉 0dc9efa173 Merged PR 705246: [Linux sandbox] Better handling of NULL arguments on interposed calls
The tools might pass `NULL` as arguments to the functions we're interposing. We were passing around the `char*`s happily without taking this into account, were very close to null pointer dereferencing (on automatic `std::string` conversion) in some cases, and also trying to create reports with empty paths in other cases.

This PR removes the `` create_access(const char *syscallName, es_event_type_t eventType, const std::string &reportPath, const std::string &secondPath ...);``  signature in favor of one using `char*` to avoid this pitfall, and adds some report skipping when the paths involved are `NULL`

Related work items: #2036506, #2036745
2023-03-06 19:14:54 +00:00
Juan Carlos Guzman Islas 8089da4832 Merged PR 705352: Fix overflow caused by unnecessary long->int cast
Turns out if you're dealing with content that is 2GB or larger, you can fail to put the content into the cache because of this overflow. I couldn't find any reason why this cast was being made, so I'll just assume it was an oversight during development.
2023-03-06 17:55:56 +00:00
Sahiti Chandramouli 6ddcbb23c9 Merged PR 705316: Credscan typo fix
corrected a typo in the credscan command line argument.

Related work items: #2034799
2023-03-06 17:25:33 +00:00
Sahiti Chandramouli a4d635c711 Merged PR 705313: Promoting credential scanner warnings to errors fix
Adding back the functionality to promote credscan warnings to errors.
2023-03-04 22:31:34 +00:00
CloudDev Build Account c0cba093eb New LKG 0.1.0-20230303.6
[skip ci]
2023-03-04 05:48:34 +00:00
CloudDev Build Account 00fe378b43 New LKG 0.1.0-20230303.4
[skip ci]
2023-03-03 23:11:39 +00:00
Julian Bayardo 7d9edf1e17 Merged PR 705223: Remove IConfigurablePin 2023-03-03 21:27:13 +00:00
Serge Mera 7af79e2d4e Merged PR 705206: Do not report accesses explicitly when running the JS graph builder tool under a sandbox
We are not using the explicitly reported accesses for anything (we only consume the unexpected ones). Test coverage already in place for graph cache miss/hit. The visible effect is that we don't log detour messages for the Linux sandbox on graph construction.
2023-03-03 19:47:01 +00:00
Will Li 66f6432448 Merged PR 704933: Refactor Aggregation out of PerformanceCollector
PerformanceCollector has a dependency on Win32, and SandboxedProcess.cs has a dependency on PerformanceCollector. However, the only thing that's needed is the Aggregation Class which I've broken out of PerformanceCollector and into BXL.Utilities.Core.
2023-03-03 19:13:27 +00:00
Sergey Tepliakov 92bec04127 Merged PR 705037: Use random short hash for temp file generation
Use random short hash for temp file generation
2023-03-03 17:55:20 +00:00
Serge Mera 33f143e51b Merged PR 705082: Clean up Linux sandbox logs in release mode
Let's leave all 'Detours debug message:' out of release bits for normal operation. Left some on exclusively for error conditions.
2023-03-03 17:30:16 +00:00
CloudDev Build Account 5b8fd38e49 New LKG 0.1.0-20230228.2
[skip ci]
2023-03-03 05:51:44 +00:00
Marcelo Lynch 🧉 1716778a6a Merged PR 705053: [Linux sandbox] Do not rely on the process environment, which is volatile, to communicate the FAM path
The environment might be cleared at any point by the running process, making us lose the values if we're relying on an environment variable being set for it. Instead, store the path in the observer for subsequent uses.

The environment being cleared is not a theoretical problem, it was observed in practice, and it made us crash, see: #2036917

Related work items: #2036917
2023-03-03 01:42:20 +00:00
Serge Mera fcc619881a Merged PR 704952: Consider the case of directory rewrites for computing a dir fp
Directories created by the build need to take into consideration directories deleted by the build. This can only happen on execution (not on cache replay), but in that case a directory that was originally deleted by the build should still be considered a source file (in the same way as rewritten files)

Related work items: #2037034
2023-03-03 01:25:35 +00:00
Julian Bayardo ac5ae894ea Merged PR 705049: Remove distinction between readonly and readwrite cache sessions
This PR removes the concept of cache sessions that can only be read from. This:
1. Isn't actually used in practice by anyone, and it is a hinderance when changing the code.
2. Is actually a lie, because the cache doesn't truly support being read-only. Read-only operations can and do trigger mutations inside of the cache.

All cache sessions are now writeable.
2023-03-03 00:32:16 +00:00
Michael Pysson 142c874129 Merged PR 704958: Infer default output file for DumpProcess analyzer
DumpProcess crashes if you don't specify an output file. I forget this almost every time I use it.
2023-03-02 22:52:26 +00:00
Will Li c58654a98a Merged PR 704447: Refactor BXL.Utilities.Collections to Remove Dependencies
BXL.Utilties.Collections depends on BXL.Cache.ContentStore.Hashing, but only 2 files actually use anything from it. Bloomfilter which doesn't appear to be used by anything and MurmurHashEngine which is only used by Storage so I moved it there
2023-03-02 21:33:24 +00:00
Sergey Tepliakov 989eebf706 Merged PR 695621: Add span-based serialization/deserialization to LLS
This PR adds an option to use span-based serialization/deserialization logic for LLS for code unification and performance reasons.

The PR adds a flag to switch from the old to the new logic and the test that shows the difference.
The new version is 3-x faster than the old version.

More specific data:

Old version: WriteDuration: 9444ms, ReadDuration: 9696ms
New version: WriteDuration: 3831ms, ReadDuration: 3119ms

Related work items: #2014041
2023-03-02 20:07:19 +00:00
Iman Narasamdya f9b93b841b Merged PR 704832: Enable remote injection from 32-bit process by default
Enable remote injection from 32-bit process by default

Related work items: #2030904
2023-03-02 16:52:28 +00:00
Michael Pysson 9e16a6dd00 Merged PR 704026: Update CacheMiss documentation
Cache miss documentation had grown a little stale and needed some more background
2023-03-01 22:57:33 +00:00
Will Li 928345157d Merged PR 703963: Break Instrumentation.Common Dependency from BuildXL.Utilities.Core
Breaking Instrumentation.Common Dependency from BXL..Utilities.Core as it pulls in aria package. And the goal of BXL.Utilities.Core is to depend on no external packages
2023-03-01 22:52:23 +00:00
Christian Castaneda 034bc3612d Merged PR 703285: Enable CopyOnWrite by default on supported volumes
The original barrier to setting this on-by-default was the zero-byte copy bug, which has since been fixed.

This change always performs the directory handle check, then falls back to normal copy behavior if unsupported or a failure occures.

As an escape hatch, environment variable `DisableCopyOnWriteWin` will allow forcing normal copies.
2023-03-01 21:06:54 +00:00
Will Li 3676d9f7e3 Merged PR 704038: Removing BXL.Utilities.Tasks Dependency from Sandboxing
Refactored some code around BXL.Utilities.Tasks to break that dependency from Sandboxing related code. Also moved some files that Sandboxing code depended on from Utilities to Utilities.Core as a part of this change.
2023-03-01 19:06:45 +00:00