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

7601 Коммитов

Автор SHA1 Сообщение Дата
Aleksandar Milicevic b6a0ca4a62
[MacSandbox] skip unnecessarily creating trie nodes on lookups (#246)
Before this PR, on every trie operation a leaf node corresponding to a given key is retrieved, creating any intermediate nodes along the way.

This is unnecessary for lookup operations. When the key does not exist in the trie, instead of traversing the trie until a leaf node is found and creating all intermediate nodes along the way, the lookup should fail as soon as an intermediate node is not found.

As a consequence of the previous implementation, if a process connects to the kext and then immediately disconnects, that alone causes the size of the `connectedClients_` dictionary to monotonically grow. This can become a problem because those nodes are released only when the kext is unloaded.
2019-05-03 08:52:46 -07:00
Aleksandar Milicevic 17917896e9
[macOS] Untrack /usr/lib by default instead of sealing it (#243)
It's important to untrack /usr/lib instead of making it a source sealed directory because the set of dynamically loaded libraries (from /usr/lib) during an execution of a process is not necessarily deterministic. For example, when the same process---which itself is deterministic---is executed multiple times on the same inputs, the set of dynamically loaded libraries can vary from time to time.

Re-enabled tests:

- IntegrationTest.BuildXL.Scheduler.NonDeterminismProbeTests
  - NonDeterminismOpaqueDirectoryOutputDifferentFiles
  - NonDeterminismOpaqueDirectoryOutput
- Test.BuildXL.FingerprintStore.FingerprintStoreTests
  - VerifyGarbageCollectWorks
  - DontOverwriteExistingContentAddressableEntries

AB#1519677
AB#1513463
AB#1520150
2019-05-03 08:06:15 -07:00
Iman Narasamdya 4bee1cdef3
Test querying the journal on getting the journal accessor, even in elevated mode (#244)
In the past in elevated mode, we simply return the journal accessor without checking if we can query the journal. This causes a problem because then tests that require journal scan will run although the journal cannot be queried, e.g., due to failure in opening volume handle.
2019-05-02 23:36:28 -07:00
Kristijan Šimić 2054bd1bf5
Fix issues to make our CI pipelines play nice with the new Mojave VMs in Azure (#241) 2019-05-02 20:58:55 +02:00
Aleksandar Milicevic f513f84ab6
[macOS] Pass xcconfig when building SandboxMonitor too (#238)
SandboxMonitor should receive the same xcconfig file so that it connects to the appropriate kext.
2019-05-02 10:43:53 -07:00
Huihui Nora Huang 323707cac2
Add wiki page for "weight" feature (#234)
* Add wiki page for weight feature
2019-05-02 10:27:20 -07:00
Kevin Bazan Williams a73d2f02ac
Grpc p2p cache factory (#220)
* Add DualServerClientContentStore

* Use out-process CAS, pass DistributedContentSettings

* Remove RedisConnectionString logic from Application

* Remove unused method

* +PR comments
2019-05-02 09:25:45 -07:00
Aleksandar Milicevic 7bb0ca4439
Use different BundleIDs for debug and release kexts (#236)
This change improves the typical dev loop on macOS by allowing 2 kexts to be loaded at the same time:

  1. one that came with the LKG (which one is compiled as release), and
  2. one compiled as debug from the current sources

The first one is typically used when compiling current sources, and the second one when running tests.
2019-05-02 08:58:07 -07:00
Serge Mera 71c9d22bc6
Make AllowSameContentDoubleWrites the default for the MSBuild resolver, and enable to configure the double write policy (#235) 2019-05-01 17:50:51 -07:00
Aleksandar Milicevic 8731a41be3
Fix sandboxed process tests (#232)
AB#1519309
AB#1519677
2019-05-01 16:49:44 -07:00
Serge Mera e9149f352b
Add double write policy to allow same content double writes (#224)
Add double write policy to allow same content double writes
2019-05-01 16:23:25 -07:00
dannyvv 98e3db3817
Add png with optimal github og:image size (#231) 2019-05-01 14:48:50 -07:00
CloudDev Build Account dffd6e42a7 New Public LKG 0.1.0-20190430.1 2019-05-01 21:03:46 +00:00
Kristijan Šimić 094c563045
Relax the polling conditions for distributed build orchestration as workers can slow down at times (#227) 2019-05-01 22:59:48 +02:00
CloudDev Build Account 7603ed613f New Internal LKG 0.1.0-20190430.1 2019-05-01 20:30:43 +00:00
Anirudh Santhiar ba2d4bce6c Add CodeCoverage and ZipSandbox options to QTest (#217) 2019-05-01 12:09:46 -07:00
David Wright fff627b533
Empty file optimizations (#221)
* No empty files in cache directory.

* Use FileSystem. PassThroughFileSystem's internal Open should be synchronous
2019-04-30 17:57:55 -07:00
Sergey Teplyakov 82f3ad2091
More descriptive error message when finalizer fails for FileStream. (#209)
* More descriptive error message when finalizer fails for FileStream.

* Use two constructors on windows only

* Fix compilation issue for .net core

* Temporarily disabling the feature

* Switching back to TrackingFileStream.

* Closing the file
2019-04-30 17:12:00 -07:00
Sergey Teplyakov f1dd91e625
Use extra retry strategy for Event Hub client (#228)
* Use extra retry strategy for Event Hub client

* Remove namespace

* Made strategy class private
2019-04-30 16:22:10 -07:00
Semih Okur d8557ec03e
Disable the flakey 'UseJunctionRoots' test (#225) 2019-04-30 15:52:28 -07:00
dannyvv 85d0a9d47d
Add support for contentFiles to nuget package manger and use for cloudbuild package (#214) 2019-04-29 23:37:02 -07:00
Iman Narasamdya 6e6e27bbcf
Fix underbuild in incremental scheduling caused by disappearing output directory (#223) 2019-04-29 21:46:18 -07:00
Aleksandar Milicevic 0c3c38db5c
[MacOS] Add default source seal directories lazily (#218)
1. Make sure default source seal directories are added to the pip graph only if explicitly requested (by virtue of setting DependsOnCurrentOs).  

2. Propagate errors if creating default source seal directories fails.

AB#1517833
2019-04-29 15:16:03 -07:00
Iman Narasamdya 4a8877c2b2
Fix for BuildXL hangs in temporary cleaner (#216)
BuildXL appeared to hanged upon disposing temp cleaner. The dump file only shows that the dispose method was stuck on Thread.Join.

These changes attempt at fixing this issue by doing two things:

Add cancellation token during directory deletion.
Add timeout to Thread.Join (temp cleaner is best effort)
2019-04-29 09:54:07 -07:00
Aleksandar Milicevic 39d54eff1f
Handle 'rename directory' operation on macOS (#208)
Special handling for directory rename.

Scenario: a pip writes a bunch of files into a directory (e.g., 'out.tmp') and then renames that directory (e.g., to 'out'). Once 'out.tmp' is renamed to 'out', we need to explicitly update all previously reported paths under 'out.tmp'.  Since we cannot change the past and directly mutate previously reported paths, we simply enumerate the content of the renamed directory and report all the files in there as writes. This is exactly how this is done on Windows, except that it's implemented in the Detours layer.

AB#1362637
2019-04-29 09:08:33 -07:00
dannyvv 27a01fb521
Update Microsft.Net.Compilers(Roslyn) to 3.0.0 to enable C#/CSharp 8 features (#197) 2019-04-29 08:43:52 -07:00
Kristijan Šimić 273411308b
Fix pip materialization issues on macOS (#202)
* Attempt on fixing pip materialization issues with retry logic
* Disable flaky CI tests for macOS for later investigation
2019-04-29 16:15:47 +02:00
CloudDev Build Account 81bf59f37c New Public LKG 0.1.0-20190426.9 2019-04-27 18:06:40 +00:00
CloudDev Build Account a924bc307e New Internal LKG 0.1.0-20190426.9 2019-04-27 17:35:25 +00:00
Iman Narasamdya 69a8b253c7
Include cache file existence check when materializing file (#215)
* Try cache file existence check when materializing file

* Use name instead of position in log
2019-04-26 23:07:32 -07:00
Lance Collins 9405caed06
Don't construct PinResult from another PinResult as this causes PinResult to get created as an Error with the origin result code as a the error string. BuildXL relies on the result code being ContentNotFound (not Error) for pin failures due to missing content. (#211) 2019-04-26 18:15:54 -07:00
Aleksandar Milicevic 2a4cc2ec52
Fix EventCount telemetry for macOS (#204)
The current EventCount table has columns whose names start with a digit; the AriaV2 static library for macOS doesn't seem to support this.

This commit renames `EventCount` to `EventCounts` and makes sure that no table column starts with a digit (when it does, `e_` is automatically prepended to it)

AB#1511704
2019-04-26 17:21:02 -07:00
Annie Fu d72a42a6cd Use jsondiffpatch.net for cache miss analysis (#207)
* Switch cache miss to use jsondiffpatch.net

* Rip out old diffing classes

* Remove unnecesary line in test
2019-04-26 16:35:29 -07:00
Annie Fu 628f28b76e Add explanatory comments to Kusto query for SuggestedBugName (#212) 2019-04-26 16:34:43 -07:00
olkononenko 006f3fc733
Add lazy directory materialization for IPC pips (#206)
The change is mainly needed so drop pips would not materialize all the files from inside drop artifacts. For example, if customers want to upload only small subset of files from a directory, in the past we would materialize all the files (even though we did not need them) and then upload only those files that match a filter. With this change, we would not materialize directory artifacts at all; instead, dropdaemon will only materialize those files that match the filter.

AB#1487719
2019-04-26 13:17:32 -07:00
Michael Pysson 5db5207578
Fix crash when displaying miss reason for mount changing (#210) 2019-04-26 13:10:06 -07:00
CloudDev Build Account fc1d753a28 New Public LKG 0.1.0-20190425.4 2019-04-26 19:01:20 +00:00
CloudDev Build Account 562be3e667 New Internal LKG 0.1.0-20190425.4 2019-04-26 18:39:06 +00:00
dannyvv 71f1d7031d
Stop building most projects under net461
Maintaining the bits in our nuget folders as customers depend on them (#205)
2019-04-25 13:51:19 -07:00
Titi Phan 2378554564
Pipe through buffer size for GRPC file copies (#175)
* Pipe through buffer size

* Pipe through buffer size

* Fix up unit test

* Fix up tests

* Fix up unit test and add comment

* Edit name
2019-04-25 10:51:25 -07:00
dannyvv be6dbdcba2
Use net472 for our drop binaries in the Sdk folder (#200) 2019-04-25 10:32:08 -07:00
dannyvv 303b49cc3e
Remove unnecesary feed. The removed feed is already upstreamed to the main feed (#203) 2019-04-25 10:31:36 -07:00
dannyvv 3d047515f3
Stop producing net461 nuget package (#201) 2019-04-25 10:17:35 -07:00
dannyvv b5588dd039
Fix nuget spec gen to ensure roslyn 3.0 package is not treated like a managed package (#198) 2019-04-24 17:58:25 -07:00
Aleksandar Milicevic e8da261788
Fix InterpretImportFileWithAbsolutePath unit test on macOS (#199)
AB#1333905
2019-04-24 17:35:17 -07:00
Iman Narasamdya 080fb78700
Execute process pips externally via sandboxed process executor tool (#159)
This change introduces a so-called sandboxed process executor tool that takes a sandboxed process info as an input and outputs a sandboxed process result containing details of file accesses.

The tool will be used to run process pips that require admin privilege, and the tool will run inside a VM. Traditionally, BuildXL in SandboxedProcessPipExecutor will create a detoured child process and communicate with the child process by means of pipes. For process pips that require admin, SandboxedProcessPipExecutor will (1) serialize sandboxed process info, (2) launch the sandboxed process executor tool, and (3) deserialize sandboxed process result produce in (2).

The sandboxed process executor tool will either replace QuickBuild's Tracker.exe or be called by QuickBuild's Tracker.exe. The cutting layer allows the two scenarios to be done, but the latter is the easiest.
2019-04-24 14:35:08 -07:00
CloudDev Build Account c1e0130064 New Public LKG 0.1.0-20190423.6 2019-04-24 21:03:55 +00:00
CloudDev Build Account 1e504f9883 New Internal LKG 0.1.0-20190423.6 2019-04-24 20:30:43 +00:00
dannyvv 6f64606a5c
Cleanup: Usings and headers in app folder (#195) 2019-04-24 09:02:11 -07:00
dannyvv cebb422687
Cleanup: Usings and headers in cache folder (#196)
* Cleanup: Usings and headers in cache/verticalstore folder
* Cleanup: Usings and headers in cache/memoizationstore folder
* Cleanup: Usings and headers in cache/contentstore folder
* Cleanup: Usings and headers in cache/distcache.host folder
2019-04-24 09:02:00 -07:00