| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
Update the callers that only need getMetadata to use the new interface.
PiperOrigin-RevId: 167992239
|
|
|
|
|
|
| |
This is a prerequisite for merging the two interfaces.
PiperOrigin-RevId: 167843789
|
|
|
|
|
|
|
|
|
| |
Split collect, concurrent, vfs, windows into package-level BUILD files.
Move clock classes out of "util", into their own Java package.
Move CompactHashSet into its own Java package to break a dependency cycle.
Give nestedset and inmemoryfs their own package-level BUILD files.
PiperOrigin-RevId: 167702127
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 167574104
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 167505493
|
|
|
|
|
|
|
|
| |
BUILD files.
Replace all ":relative" labels with "//absolute:path" labels for easier search & replace.
PiperOrigin-RevId: 167500985
|
|
|
|
|
|
|
|
|
|
| |
- Move ProfilerInfo into a subpackage (it's not necessary for profiling, just for analyzing a profile).
- Make some fields in Profiler public for ProfileInfo.
- Mark Profiler as ThreadSafe; there's no cyclic dependency here.
This is based on ulfjack's microbazel patch series: https://github.com/ulfjack/bazel/commit/44553fcac0fc876784d8f48c2e577d8c999712de
PiperOrigin-RevId: 167121952
|
|
|
|
| |
PiperOrigin-RevId: 166849610
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This paves the way for Skylark-side compact command lines that can fail during expansion.
In general, expansion happens in these scenarios:
* Action execution expands the command line to execute it. This is fine since we are well equipped already to handle failing actions.
* In the analysis phase we expand command lines to investigate whether we need a params file. This could be moved to the execution phase, which would have the benefit of getting params files out of the action graph and saving memory.
* Key computation expands the command line. This could be fixed by allowing command lines to compute their own keys (which wouldn't try to expand the command line). This could have the benefit of being more efficient.
* Extra actions expand the command line to construct the extra action proto. This could maybe be deferred to the execution phase (writing the extra action), which would also be more memory efficient.
For failed key computations, we return a singleton "error" key. This means multiple actions that will fail will map to the same key. These actions will necessarily fail if executed, so we should not need to worry about these ending up in the action cache. If we do manage to make the command line compute its own keys then this will become moot in the future.
RELNOTES: None
PiperOrigin-RevId: 166266385
|
|
|
|
|
|
| |
action actually executed.
PiperOrigin-RevId: 164917959
|
|
|
|
|
|
|
|
| |
These are depended upon by analysis code, so need to live in the same library
as lib.analysis. Moving them here makes it possible to split the build-base
library into separate libraries for analysis, execution, and rules.
PiperOrigin-RevId: 164847161
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules.
PiperOrigin-RevId: 164835678
|
|
|
|
|
|
| |
Closes #3508.
PiperOrigin-RevId: 164722086
|
|
|
|
| |
PiperOrigin-RevId: 164577062
|
|
|
|
|
|
|
| |
Instead use MetadataHandler.getMetadata().isFile(), which is basically what
isRegularFile did before.
PiperOrigin-RevId: 163351014
|
|
|
|
|
|
|
| |
The value of stderr should go to the stderr field, not the stdout field.
Change-Id: Ic5341220b2e4207aa42570d3683c66131dac38cc
PiperOrigin-RevId: 163324715
|
|
|
|
|
|
|
|
| |
This is a first step on moving the configuration checksum and target
label from the ActionExecuted payload and into ActionCompletedId.
Change-Id: I989c9b708cd2a4172f6483d97bc7842d9841e3a8
PiperOrigin-RevId: 163233097
|
|
|
|
|
|
|
| |
This is more consistent with other values, and removes the need to inject it
into the constructor of the various strategy implementations.
PiperOrigin-RevId: 162729187
|
|
|
|
|
|
| |
The plan is to add it to ActionExecutionContext, which is also there.
PiperOrigin-RevId: 162656835
|
|
|
|
|
|
|
| |
It can be accessed as ctx.genfiles_dir and should be printed as before for
compatibility.
PiperOrigin-RevId: 162360940
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main change here is to only catch SpawnExecException in
StandaloneTestStrategy, so all other exceptions simplify propagate up. As a
result, Bazel no longer retries tests that fail with an exception, we only
retry tests that actually ran, had a spawn result, and resulted in a
UserExecException. That is probably what we want.
Also do some cleanup:
- Remove ExecException.timedOut; nobody was calling it (but there's still
SpawnExecException.timedOut)
- Remove SpawnActionContext.shouldPropagateExecException; all exceptions
(except SpawnExecException) are now propagated by default
- Remote the SandboxOptions from the SandboxStrategies; all sandboxing options
are now handled by the underlying SpawnRunner implementations
I'll send a followup CL to remove the UserExecException and
EnvironmentalExecException types; the types don't do anything special, and
there are no catch blocks in production code that catch one of these more
specific types.
This should fix #3322 by removing a bunch of special handling.
PiperOrigin-RevId: 161960919
|
|
|
|
|
|
|
| |
order to allow tests that depend on pruned inputs to work for both the legacy
and crosstool cases.
PiperOrigin-RevId: 161955432
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161937673
|
|
|
|
|
|
|
|
|
|
| |
Whenever we report an action in the build event protocol that has
a configuration associated with it, report the configuration as
well in the protocol (and not only the checksum, if the configuration
is not that of one of the top-level configured targets).
Change-Id: I9b085d5381b3c3509b4f3b99c8a77bc8fba6abfe
PiperOrigin-RevId: 161789745
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Make use of existing abstractions like SpawnRunner and SpawnExecutionPolicy.
- Instead of having the *Strategy create a *Runner, and then call back into
SandboxStrategy, create a single SandboxContainer which contains the full
command line, environment, and everything needed to create and delete the
sandbox directory.
- Do all the work in SandboxStrategy, including creation and deletion of the
sandbox directory.
- Use SpawnResult instead of throwing, catching, and rethrowing.
- Simplify the control flow a bit.
PiperOrigin-RevId: 161644979
|
|
|
|
|
|
|
|
|
|
| |
Simplify the code by providing the default implementation of
`SkylarkValue$isImmutable` that always returns false. All objects are
considered mutable unless their `isImmutable` method is overridden.
This change doesn't affect the current behavior.
PiperOrigin-RevId: 161422029
|
|
|
|
|
|
|
| |
Fixes #3345.
RELNOTES: None.
PiperOrigin-RevId: 161395466
|
|
|
|
|
|
|
|
|
| |
Java compile actions create unnecessary wrapper objects around a shared constant object. We can share the ActionEnviroment between these actions.
In the general spawn case there will be a lot of empty action environments. Make sure that these are shared too.
RELNOTES: None
PiperOrigin-RevId: 161389056
|
|
|
|
|
|
|
|
|
| |
If --incompatible_descriptive_string_representations is passed, artifacts
are converted to strings using `str`, `repr` and `print` functions
differently (more descriptive, without leaking information that shouldn't
be accessible).
PiperOrigin-RevId: 161230209
|
|
|
|
|
|
|
|
|
| |
Add a single getMetadata method (matching MetadataHandler), and rewrite
everything in those terms.
This is in preparation for merging ActionInputFileCache and MetadataHandler.
PiperOrigin-RevId: 161053535
|
|
|
|
|
|
|
| |
does not have one. Hardcoded value of 120 seconds is clearly a mistake.
TESTED=remote worker
PiperOrigin-RevId: 160891214
|
|
|
|
|
|
|
|
|
|
| |
Some of the callers are not using the proper one from the configuration, and
are thus ignoring --action_env. Some are only using part of the configuration's
action environment. I tried to carefully not change the semantics in any case.
Semantic-changing changes come later.
PiperOrigin-RevId: 160891204
|
|
|
|
|
|
|
|
|
|
| |
In some cases, when the configuration is known anyway, it might help debug
why an action failed. For the time being, we only report of id of the
configuration without guaranteeing that details about the configuration are
shown in the sream.
Change-Id: I23bcad2f6407e03c7defcdd795629dfca2b1ea92
PiperOrigin-RevId: 160874546
|
|
|
|
|
|
|
|
| |
It also changes the return value of ctx.template_action to None, so a
very minor breaking change. There are no internal usages at least.
RELNOTES: None.
PiperOrigin-RevId: 160825636
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 160817326
|
|
|
|
|
|
|
| |
It's now easier to customize Printer if in different situations objects should
be printed differently. Also its API is cleaner now. Names of methods of SkylarkValue objects now reflect names of Skylark functions: SkylarkValue#repr and SkylarkPrintableValue#str.
PiperOrigin-RevId: 160635154
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 160630261
|
|
|
|
|
|
|
| |
With a few manual fixes for readability.
RELNOTES: None.
PiperOrigin-RevId: 160582556
|
|
|
|
|
|
|
|
| |
By default it just delegates to the existing #writeOutputFile, but implementations may choose to override if they have easy access to a ByteString.
Also change some DeterministicWriter implementations that do have easy access to the ByteString.
PiperOrigin-RevId: 160550028
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are currently tracking the action environment (computed from --action_env),
and the test action environment (computed from --test_env, and not including
the action env) as two pairs of fields, and a lot of callers haven't been
updated to handle both parts (TestRunnerAction does, but many 'normal' actions
don't). However, both parts have always both be handled, and moving them into
a single abstraction makes it harder to accidentally miss one part.
We'll subsequently need to update all the action implementations to use the
new abstraction, and also update the Skylark API (or bypass it and always apply
the action environment for all actions, except we don't know which
configuration to use).
PiperOrigin-RevId: 160386181
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 160264501
|
|
|
|
|
|
|
|
|
|
| |
Replace all previous uses of Metadata with FileArtifactValue (or a simple inner
class in the case of ActionCacheChecker.CONSTANT_METADATA).
Care was taken to make the equals method obey the equals contract, even in the
presence of multiple implementations.
PiperOrigin-RevId: 160115080
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adjust the interface of Metadata to match the interface of FileArtifactValue.
These classes are almost the same, but not quite, so we currently have to
create and return new objects whenever the MetadataHandler is called; by making
the interfaces identical, we can just return a FileArtifactValue instead (in a
future change).
This is in preparation for merging the ActionInputFileCache and MetadataHandler
interfaces.
PiperOrigin-RevId: 159802834
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is part of cleaning up the ActionInputFileCache / MetadataHandler split.
Both classes generally store and return identical information, except the
MetadataHandler lies about constant metadata artifacts. Instead of lying here,
update the ActionCacheChecker, which is the only place where we actually want
constant metadata.
Additionally, remove getMetadataMaybe; again, the only caller that needs
special casing is the ActionCacheChecker, so we move the special casing there
instead of having it in the MetadataHandler.
PiperOrigin-RevId: 159665345
|
|
|
|
| |
PiperOrigin-RevId: 159423459
|
|
|
|
|
|
|
| |
Move everything to ActionExecutionContext, and drop Executor whereever possible.
This clarifies the API, makes it simpler to test, and simplifies the code.
PiperOrigin-RevId: 159414816
|
|
|
|
|
|
|
| |
Fixed https://github.com/bazelbuild/bazel/issues/3043
Change-Id: Ibbe6ba945bbd439cd84676fcb7fd7ecbbb99e5f0
PiperOrigin-RevId: 159261292
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 158498863
|
|
|
|
|
|
|
| |
Remove SpawnExecutionPolicy.shouldPrefetchInputsForLocalExecution in favor of
a static helper method in Spawns.
PiperOrigin-RevId: 158119993
|
|
|
|
|
|
|
|
|
| |
It was previously the odd-one out in lib.analysis.actions, due to other code
that wanted to depend on it without pulling in all of analysis. However, it's
needed to interpret Spawn instances, and Spawn lives in lib.actions, so it
makes more sense to move it there, and remove the special-casing.
PiperOrigin-RevId: 158116684
|