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

2366 Коммитов

Автор SHA1 Сообщение Дата
Semih Okur 3f69c4be91 Merged PR 554954: Fix the swallowed exception when handling pipbuildrequests on workers
Related work items: #1724570
2020-05-28 20:47:47 +00:00
Sergey Tepliakov dbf5c7c88a Merged PR 553376: Update System.Buffers to 4.5.1
The version is currently used is not the version that is referenced by the version of StackExchange.Redis.

And [this conversion](https://github.com/StackExchange/StackExchange.Redis/issues/1120) suggests that this maybe the issue that causes connectivity issues.

Related work items: #1719347
2020-05-28 18:31:46 +00:00
Juan Carlos Guzman Islas ba9e0efb9c Merged PR 555319: Update ADO artifacts to 18.171.30127-buildid12231090
Update ADO artifacts to 18.171.30127-buildid12231090
2020-05-28 18:05:18 +00:00
Aleksandar Milicevic aaf9c9c639 Merged PR 555087: Update GVFS tests to use GVFS 0.3.20147.1 2020-05-28 15:42:54 +00:00
CloudDev Build Account 59819cf2b2 New LKG 0.1.0-20200526.3 2020-05-28 05:16:28 +00:00
CloudDev Build Account 28039070c6 New LKG 0.1.0-20200527.6 2020-05-28 04:51:53 +00:00
Serge Mera 0447637f73 Merged PR 555215: Add missing BatchSize option to drop daemon
Add missing BatchSize option to drop daemon
2020-05-28 01:34:03 +00:00
Julian Bayardo cf1aa3702b Merged PR 555172: Pipe StackExchange.Redis' internal logs into cache's logger
Related work items: #1724554
2020-05-27 23:21:26 +00:00
Sergey Tepliakov b0ea0a0b2c Merged PR 553837: Add unsafe ByteString construction to reduce memory allocations
Add unsafe ByteString construction to reduce memory allocations

Related work items: #1708658
2020-05-27 23:08:27 +00:00
Kevin Bazan Williams 42dc7c7a08 Merged PR 554941: Update non-Windows CAS instances to pull the host name from first folder in path
Update non-Windows CAS instances to pull the host name from first folder in path
2020-05-27 22:15:45 +00:00
Lance Collins de5e45a896 Merged PR 553834: Add unit test for VFS with some changes for improved logging for the unit test.
Add unit test for VFS with some changes for improved logging for the unit test.
2020-05-27 19:26:40 +00:00
Juan Carlos Guzman Islas 2405bdf85c Merged PR 554904: Exclude master from proactive copies
Exclude master from proactive copies with the intention of reducing load.

Related work items: #1721128
2020-05-27 16:51:59 +00:00
Kristijan Simic de50dcc77b Merged PR 553036: Detours directory symlink support for Windows
Support for directory symlink reporting in Detours akin to macOS current implementation.

Related work items: #1717037
2020-05-27 12:57:14 +00:00
Serge Mera 19d5326086 Merged PR 554937: Allow to pass a specific drop create settings to CouldBuildDropHelper
Allow to pass a specific drop create settings to CouldBuildDropHelper
2020-05-27 00:05:37 +00:00
Sergey Tepliakov 81e849b855 Merged PR 553919: Add copyright text to .editorconfig and update the codebase with new rule
Starting with Visual Studio 16.6 the .editorconfig can contain a copyright text that is enforced by the IDE.

This PR adds the new option and also I generated the full solution and fixed all the known violations of our copyright header.

The feature is available only in 16.6 but you can stay on the older version without any issues, just this feature won't be available to you.
2020-05-26 22:13:58 +00:00
Iman Narasamdya d49718f0d3 Merged PR 554547: Turn null deserialized path table into an exception
Many parts in our codebase assume that the deserialized path table is non-null. The code that try to deserialize path table is always guarded by try/catch that handles deserization failure.

Currently, if the serialized path table is corrupted, the deserialization of it can result in null path table. Then the code that tries to deserialize the path table is happy, thinking that the deserialization is successful. But the downstream code that consumes the path table suffers from contract exception (many parts in our code assert that path table is non null).

```
Exception:System.Diagnostics.ContractsLight.ContractException: Precondition failed.
	at \.\Public\Src\Engine\Scheduler\IncrementalScheduling\GraphAgnosticIncrementalSchedulingState.cs:1773
   at void System.Diagnostics.ContractsLight.ContractRuntimeHelper.TriggerFailure(ContractFailureKind kind, string msg, string userMessage, string conditionTxt)
   at void System.Diagnostics.ContractsLight.ContractRuntimeHelper.ReportFailure(ContractFailureKind kind, string msg, string conditionTxt, Provenance provenance)
   at void BuildXL.Scheduler.IncrementalScheduling.GraphAgnosticIncrementalSchedulingState.ProcessGraphChange(LoggingContext loggingContext, PipGraph pipGraph, PathTable internalPathTable, DirtyNodeTracker dirtyNodeTracker, PipProducers pipProducers, ConcurrentBigMap<PipStableId, PipGraphSequenceNumber> cleanPips, ConcurrentBigSet<PipStableId> materializedPips, ConcurrentBigMap<AbsolutePath, PipGraphSequenceNumber> cleanSourceFiles, PipOrigins pipOrigins, IncrementalSchedulingPathMapping<PipStableId> dynamicallyObservedFiles, IncrementalSchedulingPathMapping<PipStableId> dynamicallyProbedFiles, IncrementalSchedulingPathMapping<PipStableId> dynamicallyObservedEnumerations, DirtiedPips dirtiedPips, List<ValueTuple<Guid, DateTime>> graphLogs, PipGraphSequenceNumber pipGraphSequenceNumber, out int indexToGraphLogs) in \.\Public\Src\Engine\Scheduler\IncrementalScheduling\GraphAgnosticIncrementalSchedulingState.cs:line 1774
   at GraphAgnosticIncrementalSchedulingState BuildXL.Scheduler.IncrementalScheduling.GraphAgnosticIncrementalSchedulingState.Load(LoggingContext loggingContext, FileEnvelopeId atomicSaveToken, PipGraph pipGraph, IConfiguration configuration, PreserveOutputsInfo preserveOutputSalt, string incrementalSchedulingStatePath, bool analysisModeOnly, ITempCleaner tempDirectoryCleaner) in \.\Public\Src\Engine\Scheduler\IncrementalScheduling\GraphAgnosticIncrementalSchedulingState.cs:line 1587
```
2020-05-26 19:20:26 +00:00
Sergey Tepliakov 08120e6d9d Merged PR 553912: Trace FileSystemContentStore operations by default
`FileSystemContentStore` is used in many places and by default all the operations like placing the files and others should be traced.

The flag was introduced to reduce the amount of traces in casaas, and this PR does not change that behavior, because the behavior is controlled by `DistributedContentSettings` configuration.
2020-05-26 19:09:26 +00:00
CloudDev Build Account 3ef3d3b723 New LKG 0.1.0-20200523.0 2020-05-26 17:57:28 +00:00
CloudDev Build Account 7d68b688dc New LKG 0.1.0-20200522.0 2020-05-24 05:22:20 +00:00
CloudDev Build Account dcc25b6908 New LKG 0.1.0-20200521.5 2020-05-24 05:15:44 +00:00
CloudDev Build Account 9b6fa534e5 New LKG 0.1.0-20200521.4 2020-05-24 05:08:49 +00:00
Michael Pysson 54008a3310 Merged PR 554475: Add global untracked scope for language packs directory
This is a workaround for GitHub issue 878. If you have Windows language packs installed on your machine, various pools like cl.exe will access files during the build.
2020-05-23 00:20:21 +00:00
Oleksii Kononenko 7307bb3394 Merged PR 554451: Don't recompute the content of composite shared sub-dirs
Don't recompute the content of composite sub-dirs

Related work items: #1717483
2020-05-23 00:14:36 +00:00
Aleksandar Milicevic 11d25faf21 Merged PR 554375: Expand root jail informations one can provide
Expand root jail informations one can provide
2020-05-22 19:06:27 +00:00
Serge Mera 985ea28c4e Merged PR 554167: [Rush] Add option to use shrikwrap-deps file instead of tracking the actual project dependencies
When up-to-date, shrikwrap-deps.json is a legit witness of a project transitive dependencies. Add an option to use this file instead of tracking all dependencies. This option is safe when running in a lab environment, where rush install/update is always run before bxl.
This brings a couple of benefits:
* A lot less tracking/hashing, so perf may be better
* Make cache hit/miss work with compatible dependency changes. In this scenario, Rush allows projects to consume dependencies which don't exactly match the rush lock file, but are considered semantically equivalent.

Related work items: #1697633
2020-05-22 02:49:47 +00:00
Iman Narasamdya 210e6763be Merged PR 554199: Fix uninitialized root jail in CreateProcess in Unix
Fix uninitialized root jail in CreateProcess in Unix
2020-05-22 01:46:25 +00:00
Julian Bayardo f2519062fa Merged PR 553948: Put master at the end of P2P copies
This PR makes the master be at the end of all P2P copies. This implies we:
- Track which machine is the master by looking at who produced the last checkpoint, and make this part of the ClusterState
- Make the identity of the master accessible to the DistributedContentCopier via the IDistributedContentHost
- Change prioritization on all copies, when the feature is enabled

This is done only on copies that would perform IO against the LLS drive where the content database is located.

Related work items: #1721129
2020-05-21 20:50:22 +00:00
Erik Mavrinac 79676ec04e Merged PR 554097: Add NetCore-only optimized HexToBytes overload
Add NetCore-only HexToBytes overload that allows (re)use of a preallocated buffer. Currently in use in AnyBuild for cases where a series of hashes is built up, likely useful as the codebase moves toward NetCore as an optimization to reduce allocations for similar cases.
2020-05-21 19:49:02 +00:00
Pratik Lade 98a588972c Merged PR 554093: Upgrade QTest to 20.5.20: Eliminate diagnostic logging in Heisenbug Queues
Upgrade QTest to 20.5.20: Avoid diag logging in Heisenbug

Office tests were timing out due to diag logging being enabled after internal failures. We disabled diagnostic logging for heisenbug queues due to the amount of overhead involved and little benefit.
2020-05-21 18:23:15 +00:00
Iman Narasamdya bbcc04682d Merged PR 553958: [Unix] Fix working directory path when running with root jail
Make the original working directory relative before prepending it with the root jail. Otherwise working directory won't get prepended.
2020-05-21 18:15:48 +00:00
CloudDev Build Account 10f8a709b1 New LKG 0.1.0-20200519.1 2020-05-21 05:06:20 +00:00
CloudDev Build Account f3af1a002e New LKG 0.1.0-20200520.2 2020-05-21 04:50:27 +00:00
CloudDev Build Account df1d50e3ee New LKG 0.1.0-20200518.0 2020-05-21 04:45:57 +00:00
CloudDev Build Account 6126cbd5ac New LKG 0.1.0-20200518.4 2020-05-21 04:43:23 +00:00
Michael Pysson 7d5b1811a7 Merged PR 553126: Add cap for number of errors/warnings sent to Azure DevOps listener
Sets a limit of 500 warnings and 500 errors to be emitted as issues by the DevOps listener. This is to prevent slow rendering of the build results page.

A message of the same type is added to let end users know the number of errors/warnings rendered has been truncated.

Related work items: #1717244
2020-05-21 00:43:45 +00:00
Rijul Luman 17e9251b79 Merged PR 553938: Updated Release Notes
Updated Release Notes
2020-05-21 00:18:58 +00:00
Julian Bayardo 4aaacc1817 Merged PR 551545: Upgrade RocksDb to 6.6.3
This has been validated to work by deploying to a machine in CBTest and checking that we can operate and RocksDb logs show the correct version. It has also been validated that we can downgrade from the new version to the current version and still work without issue, both locally and on CBTest

Related work items: #1704285
2020-05-20 22:37:34 +00:00
Sergey Tepliakov fc3823e12e Merged PR 552909: Avoid double shutdown and cancel outstanding GRPC operation during shutdown
This PR fixes two types of issues:

1. When the service fails to start successfully in some cases the following shutdown fails because of double shutdown issue.
This PR adds an Id to all "shutdownable" resource to simplify investigating such kind of issues and also  fixes one of the most common one by not shutting down stores in `OneLevelCache` when the stores were not fully initialized.
2. The shutdown logic in GRPC layer was not fully implemented: when `GrpcContentServer` is shut down, all the pending operations were still not cancelled, because the shutdown cancellation token was never propagated.
So this PR addresses this issue as well.

An example of the issue 1:

```
Critical error occurred: OneLevelCache.ShutdownAsync stop 44.3285ms. result=[Error=[ContractException: Assertion failed: Cannot shut down 'RocksDbMemoizationDatabase' because ShutdownAsync method was already called on this instance..
	at \.\Public\Src\Cache\ContentStore\Library\Utils\StartupShutdownSlimBase.cs:111] Diagnostics=[System.Diagnostics.ContractsLight.ContractException: Assertion failed: Cannot shut down 'RocksDbMemoizationDatabase' because ShutdownAsync method was already called on this instance..
	at \.\Public\Src\Cache\ContentStore\Library\Utils\StartupShutdownSlimBase.cs:111
   at void System.Diagnostics.ContractsLight.ContractRuntimeHelper.TriggerFailure(ContractFailureKind kind, string msg, string userMessage, string conditionTxt)
   at void System.Diagnostics.ContractsLight.ContractRuntimeHelper.ReportFailure(ContractFailureKind kind, string msg, string conditionTxt, Provenance provenance)
   at void System.Diagnostics.ContractsLight.ContractFluentExtensions.Assert(in AssertionFailure result, string message)
   at async Task<BoolResult> BuildXL.Cache.ContentStore.Utils.StartupShutdownSlimBase.ShutdownAsync(Context context)
   at async Task<BoolResult> BuildXL.Cache.MemoizationStore.Sessions.OneLevelCacheBase.ShutdownCoreAsync(OperationContext context)
   at async Task<T> BuildXL.Cache.ContentStore.Tracing.Internal.PerformOperationBuilderBase<TResult, TBuilder>.RunOperationAndConvertExceptionToErrorAsync<T>(Func<Task<T>> operation)]]..
```

An example of the issue 2:

```
Critical error occurred: GrpcContentServer.CopyFileAsync stop 14621.8642ms. result=[Error=[InvalidOperationException: Shutdown has already been called] Diagnostics=[System.InvalidOperationException: Shutdown has already been called
   at void Grpc.Core.Internal.CompletionQueueSafeHandle.BeginOp()
   at void Grpc.Core.Internal.CallSafeHandle.StartSendMessage(ISendCompletionCallback callback, SliceBufferSafeHandle payload, WriteFlags writeFlags, bool sendEmptyInitialMetadata)
   at Task Grpc.Core.Internal.AsyncCallBase<TWrite, TRead>.SendMessageInternalAsync(TWrite msg, WriteFlags writeFlags)
   at Task Grpc.Core.Internal.ServerResponseStream<TRequest, TResponse>.WriteAsync(TResponse message)
   at async Task<(ValueTuple<long, long> Chunks)> BuildXL.Cache.ContentStore.Service.Grpc.GrpcContentServer.StreamContentAsync(Stream input, byte[] buffer, IServerStreamWriter<CopyFileResponse> responseStream, CancellationToken ct)
   at async Task<T> BuildXL.Cache.ContentStore.Tracing.Internal.PerformOperationBuilderBase<TResult, TBuilder>.RunOperationAndConvertExceptionToErrorAsync<T>(Func<Task<T>> operation)]]. Hash=VSO0:76AB506E7182CF9B48FD, GZip=off..
```
2020-05-20 21:51:23 +00:00
Sergey Tepliakov 59b11724b3 Merged PR 552845: Avoid critical errors in tests
Currently, a bunch of tests was generating critical errors.

This PR fixes all the known occurrences and also fixes the flaky behavior of the following test`LocalLocationStoreDistributedContentTests.ProactiveReplicationTest`.
2020-05-20 21:45:22 +00:00
Sergey Tepliakov 4c9a0d3485 Merged PR 553711: Use Create instead of OpenOrCreate to truncate the content
The original implementation was not resilient if the content on disk was modified.
In this case, the cache can "replace" just part of the file ending up with corrupted content.
2020-05-20 17:51:07 +00:00
Aleksandar Milicevic 6efca4749c Merged PR 553564: Simple unit test for RootJail (de)serialization
An addendum to !553456
2020-05-20 00:15:45 +00:00
Erik Mavrinac 3d789ec8cf Merged PR 553646: Add an optional ignoreKnownContentHash param to FileContentTableExtensions overload
Allows explicit bypass of synchronous table checks. Default is the current behavior.
2020-05-19 22:47:35 +00:00
Lance Collins 1641256fb0 Merged PR 553382: Allow client to recreate directories.
Allow client to recreate directories.
2020-05-19 17:28:38 +00:00
Serge Mera 23a62c2da5 Merged PR 553446: [Rush] Add package.json as a declared input file
[Rush] Add package.json as a declared input file

Related work items: #1697633
2020-05-19 16:33:38 +00:00
Aleksandar Milicevic ca46cb2a7b Process Execution: implement chroot jail for *nix
Process Execution: implement chroot jail for *nix
2020-05-19 15:01:08 +00:00
Serge Mera e6e368d129 Merged PR 553321: Add JavaScript dependency fixer analyzer
Adds an analyzer that tries to fix missing dependency on Rush-scheduled projects by looking at DFAs

Related work items: #1697633
2020-05-18 21:02:52 +00:00
CloudDev Build Account 5335072d1a New LKG 0.1.0-20200517.1 2020-05-18 20:07:45 +00:00
Erik Mavrinac b1f2cc9c96 Merged PR 553320: Use ValueTask for FileContentTable Get methods
To use the stack instead of heap for the common case of a content table cache hit.
2020-05-18 19:54:20 +00:00
Pratik Lade 5acd6ffe27 Merged PR 553304: Update QTest package
Update QTest package

Includes the following changes:
1. Fix for Code Coverage DFA
2. Remove redundant field from QTestcontextInfo

Updated with a fix for an earlier regression which caused validation with Office WAC queue failed.
I could not find the Bxl_OfficeTenant_Wac_Release queue today so I tested with Office Motif build queue here: https://cloudbuild.microsoft.com/build/cc56cda5-af0b-44df-9aec-625c2a5a7a1c?bq=Bxl_OfficeTenant_Motif
2020-05-18 18:01:52 +00:00
Semih Okur 8beca2cf1b Merged PR 548943: Introduce /memoryManageMode feature as an alternative to cancellation
still working on some tests.

Related work items: #1693683
2020-05-18 07:55:11 +00:00