Concretely:
- in `UnSandboxedProcess`: when `m_processExecutor.WaitForExit()` ends up killing the underlying process because it exceeded its timeout, call `this.KillAsync()` to notify any subclasses that the process was killed.
AB#1528677
Getting file attributes for probing file existence with GetFileAttributesW sometimes results in "access denied". This causes problem especially during file materialization. Because such a probe is interpreted as probing non-existent path, the materialization target is not deleted. However, cache, using .NET File.Exist, is able to determine that the file exists. Thus, cache refuses to materialize the file.
DominoMessage
| where PreciseTimeStamp >= ago(20d)
| where message contains "but cache decided it as"
| project PreciseTimeStamp-8h, RoleInstance, RelatedActivityId, message
This PR tries to address TryProbePathExistence to do the same as .NET File.Exist, i.e, call GetFileAttributesW first, and fall back to FindFirstFile.
One reason for fixing TryProbePathExistence is because it is used at many places in BuildXL codebase.
* Start implementation of BuildXL VFS cas process. Currently just proxies to a backing content server. Next step is to actually add virtualization.
* PR feedback.
* Only VFS build on full framework.
* PR feedback.
SDKs for CoreRT native compilation on macOS.
For now, only AppHostPatcher is compiled to native (and that executable is subsequently used to patch binaries throughout the rest of the build).
Future PRs can enable compiling other executables to native.
In this change we hook up the mechanism for running pip in VM.
Interaction with VM is via so-called VmCommandProxy, which is provided by CB team. Instead of calling the methods of VmCommandProxy, we launch VmCommandProxy executable with specific commands. In this way, we don't need to be bound by the .NET framework used by VmCommandProxy.
Currently, VM initialization requires username/password because it has to create a drive map from the VM back to the host. This will change soon. The changes in this PR will enable us to test running pip in VM in the CI/CBTest environment.
Add priority field to pips, which allow some pips to be scheduled before others. Change scheduling so pip priority field takes precedence and critical path/historic priority changes the priority within the same pip priority.