blob: 1d72eb28216fb722426338f8b0bfa7789b1e6c73 [file] [log] [blame]
// Copyright 2020 The Bazel Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// This file's messages describe any failure(s) that occurred during Bazel's
// handling of a request. The intent is to provide more detail to a Bazel client
// than is conveyed with an exit code, to help those clients decide how to
// respond to, or classify, a failure.
syntax = "proto3";
package failure_details;
option java_package = "com.google.devtools.build.lib.server";
import "google/protobuf/descriptor.proto";
message FailureDetailMetadata {
uint32 exit_code = 1;
}
extend google.protobuf.EnumValueOptions {
FailureDetailMetadata metadata = 1078;
}
// The FailureDetail message type is designed such that consumers can extract a
// basic classification of a FailureDetail message even if the consumer was
// built with a stale definition. This forward compatibility is implemented via
// conventions on FailureDetail and its submessage types, as follows.
//
// *** FailureDetail field numbers
//
// Field numbers 1 through 100 (inclusive) are reserved for generally applicable
// values. Any number of these fields may be set on a FailureDetail message.
//
// Field numbers 101 through 10,000 (inclusive) are reserved for use inside the
// "oneof" structure. Only one of these values should be set on a FailureDetail
// message.
//
// Additional fields numbers are unlikely to be needed, but, for extreme future-
// proofing purposes, field numbers 10,001 through 1,000,000 (inclusive;
// excluding protobuf's reserved range 19000 through 19999) are reserved for
// additional generally applicable values.
//
// *** FailureDetail's "oneof" submessages
//
// Each field in the "oneof" structure is a submessage corresponding to a
// category of failure.
//
// In each of these submessage types, field number 1 is an enum whose values
// correspond to a subcategory of the failure. Generally, the enum's constant
// which maps to 0 should be interpreted as "unspecified", though this is not
// required.
//
// *** Recommended forward compatibility strategy
//
// The recommended forward compatibility strategy is to reduce a FailureDetail
// message to a pair of integers.
//
// The first integer corresponds to the field number of the submessage set
// inside FailureDetail's "oneof", which corresponds with the failure's
// category.
//
// The second integer corresponds to the value of the enum at field number 1
// within that submessage, which corresponds with the failure's subcategory.
//
// WARNING: This functionality is experimental and should not be relied on at
// this time.
// TODO(mschaller): remove experimental warning
message FailureDetail {
// A short human-readable message describing the failure, for debugging.
//
// This value is *not* intended to be used algorithmically.
string message = 1;
// Reserved for future generally applicable values. Any of these may be set.
reserved 2 to 100;
oneof category {
Interrupted interrupted = 101;
ExternalRepository external_repository = 103;
BuildProgress build_progress = 104;
RemoteOptions remote_options = 106;
ClientEnvironment client_environment = 107;
Crash crash = 108;
SymlinkForest symlink_forest = 110;
PackageOptions package_options = 114;
RemoteExecution remote_execution = 115;
Execution execution = 116;
Workspaces workspaces = 117;
CrashOptions crash_options = 118;
Filesystem filesystem = 119;
ExecutionOptions execution_options = 121;
Command command = 122;
Spawn spawn = 123;
GrpcServer grpc_server = 124;
CanonicalizeFlags canonicalize_flags = 125;
BuildConfiguration build_configuration = 126;
InfoCommand info_command = 127;
MemoryOptions memory_options = 129;
Query query = 130;
LocalExecution local_execution = 132;
ActionCache action_cache = 134;
FetchCommand fetch_command = 135;
SyncCommand sync_command = 136;
Sandbox sandbox = 137;
IncludeScanning include_scanning = 139;
TestCommand test_command = 140;
ActionQuery action_query = 141;
TargetPatterns target_patterns = 142;
CleanCommand clean_command = 144;
ConfigCommand config_command = 145;
ConfigurableQuery configurable_query = 146;
DumpCommand dump_command = 147;
HelpCommand help_command = 148;
MobileInstall mobile_install = 150;
ProfileCommand profile_command = 151;
RunCommand run_command = 152;
VersionCommand version_command = 153;
PrintActionCommand print_action_command = 154;
WorkspaceStatus workspace_status = 158;
JavaCompile java_compile = 159;
ActionRewinding action_rewinding = 160;
CppCompile cpp_compile = 161;
StarlarkAction starlark_action = 162;
NinjaAction ninja_action = 163;
DynamicExecution dynamic_execution = 164;
FailAction fail_action = 166;
SymlinkAction symlink_action = 167;
CppLink cpp_link = 168;
LtoAction lto_action = 169;
}
reserved 102; // For internal use
reserved 105; // For internal use
reserved 109; // For internal use
reserved 111 to 113; // For internal use
reserved 120; // For internal use
reserved 128; // For internal use
reserved 131; // For internal use
reserved 133; // For internal use
reserved 138; // For internal use
reserved 143; // For internal use
reserved 149; // For internal use
reserved 155 to 157; // For internal use
reserved 165; // For internal use
}
message Interrupted {
enum Code {
// Interrupted at an unspecified time.
INTERRUPTED_UNKNOWN = 0 [(metadata) = { exit_code: 8 }];
BUILD = 4 [(metadata) = { exit_code: 8 }];
BUILD_COMPLETION = 5 [(metadata) = { exit_code: 8 }];
PACKAGE_LOADING_SYNC = 6 [(metadata) = { exit_code: 8 }];
EXECUTOR_COMPLETION = 7 [(metadata) = { exit_code: 8 }];
COMMAND_DISPATCH = 8 [(metadata) = { exit_code: 8 }];
INFO_ITEM = 9 [(metadata) = { exit_code: 8 }];
AFTER_QUERY = 10 [(metadata) = { exit_code: 8 }];
FETCH_COMMAND = 17 [(metadata) = { exit_code: 8 }];
SYNC_COMMAND = 18 [(metadata) = { exit_code: 8 }];
CLEAN_COMMAND = 20 [(metadata) = { exit_code: 8 }];
MOBILE_INSTALL_COMMAND = 21 [(metadata) = { exit_code: 8 }];
QUERY = 22 [(metadata) = { exit_code: 8 }];
RUN_COMMAND = 23 [(metadata) = { exit_code: 8 }];
reserved 1 to 3; // For internal use
reserved 11 to 16; // For internal use
reserved 19; // For internal use
reserved 24 to 26; // For internal use
}
Code code = 1;
}
message Spawn {
enum Code {
SPAWN_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
// See the SpawnResult.Status Java enum for definitions of the following
// Spawn failure codes.
NON_ZERO_EXIT = 1 [(metadata) = { exit_code: 1 }];
TIMEOUT = 2 [(metadata) = { exit_code: 1 }];
// Note: Spawn OUT_OF_MEMORY leads to a BUILD_FAILURE exit_code because the
// build tool itself did not run out of memory.
OUT_OF_MEMORY = 3 [(metadata) = { exit_code: 1 }];
EXECUTION_FAILED = 4 [(metadata) = { exit_code: 1 }];
EXECUTION_DENIED = 5 [(metadata) = { exit_code: 1 }];
REMOTE_CACHE_FAILED = 6 [(metadata) = { exit_code: 34 }];
COMMAND_LINE_EXPANSION_FAILURE = 7 [(metadata) = { exit_code: 1 }];
EXEC_IO_EXCEPTION = 8 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
// For Codes describing generic failure to spawn (eg. EXECUTION_FAILED and
// EXECUTION_DENIED) the `catastrophic` field may be set to true indicating a
// failure that immediately terminated the entire build tool.
bool catastrophic = 2;
// If Code is NON_ZERO_EXIT, the `spawn_exit_code` field may be set to the
// non-zero exit code returned by the spawned process to the OS.
//
// NOTE: This field must not be confused with the build tool's overall
// exit code.
int32 spawn_exit_code = 3;
}
message ExternalRepository {
enum Code {
EXTERNAL_REPOSITORY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
OVERRIDE_DISALLOWED_MANAGED_DIRECTORIES = 1 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
// Additional data could include external repository names.
}
message BuildProgress {
enum Code {
BUILD_PROGRESS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
OUTPUT_INITIALIZATION = 3 [(metadata) = { exit_code: 36 }];
BES_RUNS_PER_TEST_LIMIT_UNSUPPORTED = 4 [(metadata) = { exit_code: 2 }];
BES_LOCAL_WRITE_ERROR = 5 [(metadata) = { exit_code: 36 }];
BES_INITIALIZATION_ERROR = 6 [(metadata) = { exit_code: 36 }];
BES_UPLOAD_TIMEOUT_ERROR = 7 [(metadata) = { exit_code: 38 }];
BES_FILE_WRITE_TIMEOUT = 8 [(metadata) = { exit_code: 38 }];
BES_FILE_WRITE_IO_ERROR = 9 [(metadata) = { exit_code: 38 }];
BES_FILE_WRITE_INTERRUPTED = 10 [(metadata) = { exit_code: 38 }];
BES_FILE_WRITE_CANCELED = 11 [(metadata) = { exit_code: 38 }];
BES_FILE_WRITE_UNKNOWN_ERROR = 12 [(metadata) = { exit_code: 38 }];
BES_UPLOAD_LOCAL_FILE_ERROR = 13 [(metadata) = { exit_code: 38 }];
BES_STREAM_NOT_RETRYING_FAILURE = 14 [(metadata) = { exit_code: 45 }];
BES_STREAM_COMPLETED_WITH_UNACK_EVENTS_ERROR = 15
[(metadata) = { exit_code: 45 }];
BES_STREAM_COMPLETED_WITH_UNSENT_EVENTS_ERROR = 16
[(metadata) = { exit_code: 45 }];
BES_UPLOAD_RETRY_LIMIT_EXCEEDED_FAILURE = 17
[(metadata) = { exit_code: 38 }];
reserved 1, 2; // For internal use
}
Code code = 1;
// Additional data could include the build progress upload endpoint.
}
message RemoteOptions {
enum Code {
REMOTE_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
REMOTE_DEFAULT_EXEC_PROPERTIES_LOGIC_ERROR = 1
[(metadata) = { exit_code: 2 }];
// Credentials could not be read from the requested file/socket/process/etc.
CREDENTIALS_READ_FAILURE = 2 [(metadata) = { exit_code: 36 }];
// Credentials could not be written to a shared, temporary file.
CREDENTIALS_WRITE_FAILURE = 3 [(metadata) = { exit_code: 36 }];
DOWNLOADER_WITHOUT_GRPC_CACHE = 4 [(metadata) = { exit_code: 2 }];
EXECUTION_WITH_INVALID_CACHE = 5 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message ClientEnvironment {
enum Code {
CLIENT_ENVIRONMENT_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
CLIENT_CWD_MALFORMED = 1 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message Crash {
enum Code {
CRASH_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
CRASH_OOM = 1 [(metadata) = { exit_code: 33 }];
}
Code code = 1;
// The cause chain of the crash, with the outermost throwable first. Limited
// to the outermost exception and at most 4 nested causes (so, max size of 5).
repeated Throwable causes = 2;
}
message Throwable {
// The class name of the java.lang.Throwable.
string throwable_class = 1;
// The throwable's message.
string message = 2;
// The result of calling toString on the deepest (i.e. closest to the
// throwable's construction site) 1000 (or fewer) StackTraceElements.
// Unstructured to simplify string matching.
repeated string stack_trace = 3;
}
message SymlinkForest {
enum Code {
SYMLINK_FOREST_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
TOPLEVEL_OUTDIR_PACKAGE_PATH_CONFLICT = 1 [(metadata) = { exit_code: 2 }];
TOPLEVEL_OUTDIR_USED_AS_SOURCE = 2 [(metadata) = { exit_code: 2 }];
CREATION_FAILED = 3 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message PackageOptions {
enum Code {
reserved 2, 3; // For internal use
PACKAGE_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
PACKAGE_PATH_INVALID = 1 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message RemoteExecution {
// The association of some of these options with exit code 2, "command line
// error", seems sketchy. Especially worth reconsidering are the channel init
// failure modes, which can correspond to failures occurring in gRPC setup.
// These all correspond with current Bazel behavior.
enum Code {
REMOTE_EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
CAPABILITIES_QUERY_FAILURE = 1 [(metadata) = { exit_code: 34 }];
CREDENTIALS_INIT_FAILURE = 2 [(metadata) = { exit_code: 2 }];
CACHE_INIT_FAILURE = 3 [(metadata) = { exit_code: 2 }];
RPC_LOG_FAILURE = 4 [(metadata) = { exit_code: 2 }];
EXEC_CHANNEL_INIT_FAILURE = 5 [(metadata) = { exit_code: 2 }];
CACHE_CHANNEL_INIT_FAILURE = 6 [(metadata) = { exit_code: 2 }];
DOWNLOADER_CHANNEL_INIT_FAILURE = 7 [(metadata) = { exit_code: 2 }];
LOG_DIR_CLEANUP_FAILURE = 8 [(metadata) = { exit_code: 36 }];
CLIENT_SERVER_INCOMPATIBLE = 9 [(metadata) = { exit_code: 34 }];
DOWNLOADED_INPUTS_DELETION_FAILURE = 10 [(metadata) = { exit_code: 34 }];
REMOTE_DOWNLOAD_OUTPUTS_MINIMAL_WITHOUT_INMEMORY_DOTD = 11
[(metadata) = { exit_code: 2 }];
REMOTE_DOWNLOAD_OUTPUTS_MINIMAL_WITHOUT_INMEMORY_JDEPS = 12
[(metadata) = { exit_code: 2 }];
INCOMPLETE_OUTPUT_DOWNLOAD_CLEANUP_FAILURE = 13
[(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message Execution {
enum Code {
EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
EXECUTION_LOG_INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
EXECUTION_LOG_WRITE_FAILURE = 2 [(metadata) = { exit_code: 36 }];
EXECROOT_CREATION_FAILURE = 3 [(metadata) = { exit_code: 36 }];
ACTION_OUTPUT_DIRECTORY_DELETION_FAILURE = 4
[(metadata) = { exit_code: 36 }];
ACTION_OUTPUT_DIRECTORY_CREATION_FAILURE = 5
[(metadata) = { exit_code: 36 }];
PERSISTENT_ACTION_OUTPUT_DIRECTORY_CREATION_FAILURE = 6
[(metadata) = { exit_code: 36 }];
LOCAL_OUTPUT_DIRECTORY_SYMLINK_FAILURE = 7 [(metadata) = { exit_code: 36 }];
ACTION_INPUT_FILES_MISSING = 8 [(metadata) = { exit_code: 1 }];
LOCAL_TEMPLATE_EXPANSION_FAILURE = 9 [(metadata) = { exit_code: 36 }];
INPUT_DIRECTORY_CHECK_IO_EXCEPTION = 10 [(metadata) = { exit_code: 36 }];
EXTRA_ACTION_OUTPUT_CREATION_FAILURE = 11 [(metadata) = { exit_code: 36 }];
TEST_RUNNER_IO_EXCEPTION = 12 [(metadata) = { exit_code: 36 }];
FILE_WRITE_IO_EXCEPTION = 13 [(metadata) = { exit_code: 36 }];
TEST_OUT_ERR_IO_EXCEPTION = 14 [(metadata) = { exit_code: 36 }];
SYMLINK_TREE_MANIFEST_COPY_IO_EXCEPTION = 15
[(metadata) = { exit_code: 36 }];
SYMLINK_TREE_MANIFEST_LINK_IO_EXCEPTION = 16
[(metadata) = { exit_code: 36 }];
SYMLINK_TREE_CREATION_IO_EXCEPTION = 17 [(metadata) = { exit_code: 36 }];
SYMLINK_TREE_CREATION_COMMAND_EXCEPTION = 18
[(metadata) = { exit_code: 36 }];
ACTION_INPUT_READ_IO_EXCEPTION = 19 [(metadata) = { exit_code: 36 }];
ACTION_NOT_UP_TO_DATE = 20 [(metadata) = { exit_code: 1 }];
PSEUDO_ACTION_EXECUTION_PROHIBITED = 21 [(metadata) = { exit_code: 1 }];
DISCOVERED_INPUT_DOES_NOT_EXIST = 22 [(metadata) = { exit_code: 1 }];
ACTION_OUTPUTS_DELETION_FAILURE = 23 [(metadata) = { exit_code: 1 }];
ACTION_OUTPUTS_NOT_CREATED = 24 [(metadata) = { exit_code: 1 }];
ACTION_FINALIZATION_FAILURE = 25 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
// Failure details about Bazel's WORKSPACE features.
message Workspaces {
enum Code {
WORKSPACES_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
WORKSPACES_LOG_INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
WORKSPACES_LOG_WRITE_FAILURE = 2 [(metadata) = { exit_code: 36 }];
// See `managed_directories` in
// https://docs.bazel.build/versions/master/skylark/lib/globals.html#workspace.
ILLEGAL_WORKSPACE_FILE_SYMLINK_WITH_MANAGED_DIRECTORIES = 3
[(metadata) = { exit_code: 1 }];
WORKSPACE_FILE_READ_FAILURE_WITH_MANAGED_DIRECTORIES = 4
[(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message CrashOptions {
enum Code {
CRASH_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
reserved 1; // For internal use
}
Code code = 1;
}
message Filesystem {
enum Code {
FILESYSTEM_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
DEFAULT_DIGEST_HASH_FUNCTION_CHANGED = 1 [(metadata) = { exit_code: 37 }];
DEFAULT_DIGEST_HASH_FUNCTION_NOT_SET = 2 [(metadata) = { exit_code: 37 }];
EMBEDDED_BINARIES_ENUMERATION_FAILURE = 3 [(metadata) = { exit_code: 36 }];
SERVER_PID_TXT_FILE_READ_FAILURE = 4 [(metadata) = { exit_code: 1 }];
SERVER_FILE_WRITE_FAILURE = 5 [(metadata) = { exit_code: 1 }];
DEFAULT_DIGEST_HASH_FUNCTION_INVALID_VALUE = 6
[(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message ExecutionOptions {
// All numerical exit code associations correspond to pre-existing Bazel
// behavior. These associations are suspicious:
// - REQUESTED_STRATEGY_INCOMPATIBLE_WITH_SANDBOXING (instead: 2?)
// - DEPRECATED_LOCAL_RESOURCES_USED (instead: 2?)
// TODO(b/138456686): Revise these after the (intentionally non-breaking)
// initial rollout of FailureDetail-based encoding.
enum Code {
EXECUTION_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
INVALID_STRATEGY = 3 [(metadata) = { exit_code: 2 }];
REQUESTED_STRATEGY_INCOMPATIBLE_WITH_SANDBOXING = 4
[(metadata) = { exit_code: 36 }];
DEPRECATED_LOCAL_RESOURCES_USED = 5 [(metadata) = { exit_code: 36 }];
INVALID_CYCLIC_DYNAMIC_STRATEGY = 6 [(metadata) = { exit_code: 36 }];
RESTRICTION_UNMATCHED_TO_ACTION_CONTEXT = 7 [(metadata) = { exit_code: 2 }];
REMOTE_FALLBACK_STRATEGY_NOT_ABSTRACT_SPAWN = 8
[(metadata) = { exit_code: 2 }];
STRATEGY_NOT_FOUND = 9 [(metadata) = { exit_code: 2 }];
DYNAMIC_STRATEGY_NOT_SANDBOXED = 10 [(metadata) = { exit_code: 2 }];
reserved 1, 2; // For internal use
}
Code code = 1;
}
message Command {
enum Code {
// The name "COMMAND_UNKNOWN" might reasonably be interpreted as "command
// not found". The enum's default value should represent a lack of knowledge
// about the failure instead.
COMMAND_FAILURE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
COMMAND_NOT_FOUND = 1 [(metadata) = { exit_code: 2 }];
ANOTHER_COMMAND_RUNNING = 2 [(metadata) = { exit_code: 9 }];
PREVIOUSLY_SHUTDOWN = 3 [(metadata) = { exit_code: 36 }];
STARLARK_CPU_PROFILE_FILE_INITIALIZATION_FAILURE = 4
[(metadata) = { exit_code: 36 }];
STARLARK_CPU_PROFILING_INITIALIZATION_FAILURE = 5
[(metadata) = { exit_code: 36 }];
STARLARK_CPU_PROFILE_FILE_WRITE_FAILURE = 6
[(metadata) = { exit_code: 36 }];
INVOCATION_POLICY_PARSE_FAILURE = 7 [(metadata) = { exit_code: 2 }];
INVOCATION_POLICY_INVALID = 8 [(metadata) = { exit_code: 2 }];
OPTIONS_PARSE_FAILURE = 9 [(metadata) = { exit_code: 2 }];
STARLARK_OPTIONS_PARSE_FAILURE = 10 [(metadata) = { exit_code: 2 }];
ARGUMENTS_NOT_RECOGNIZED = 11 [(metadata) = { exit_code: 2 }];
NOT_IN_WORKSPACE = 12 [(metadata) = { exit_code: 2 }];
SPACES_IN_WORKSPACE_PATH = 13 [(metadata) = { exit_code: 36 }];
IN_OUTPUT_DIRECTORY = 14 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message GrpcServer {
enum Code {
GRPC_SERVER_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
GRPC_SERVER_NOT_COMPILED_IN = 1 [(metadata) = { exit_code: 37 }];
SERVER_BIND_FAILURE = 2 [(metadata) = { exit_code: 1 }];
BAD_COOKIE = 3 [(metadata) = { exit_code: 36 }];
NO_CLIENT_DESCRIPTION = 4 [(metadata) = { exit_code: 36 }];
reserved 5; // For internal use
}
Code code = 1;
}
message CanonicalizeFlags {
enum Code {
CANONICALIZE_FLAGS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
FOR_COMMAND_INVALID = 1 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
// Failure modes described by this category pertain to the Bazel invocation
// configuration consumed by Bazel's analysis phase. This category is not
// intended as a grab-bag for all Bazel flag value constraint violations, which
// instead generally belong in the category for the subsystem whose flag values
// participate in the constraint.
message BuildConfiguration {
// TODO(mschaller): many more codes should be added to represent different
// configuration-related failure modes. See InvalidConfigurationException.
enum Code {
BUILD_CONFIGURATION_UNKNOWN = 0 [(metadata) = { exit_code: 2 }];
PLATFORM_MAPPING_EVALUATION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message InfoCommand {
// The distinction between a failure to write a single info item and a failure
// to write them all seems sketchy. Why do they have different exit codes?
// This reflects current Bazel behavior, but deserves more thought.
enum Code {
INFO_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
TOO_MANY_KEYS = 1 [(metadata) = { exit_code: 2 }];
KEY_NOT_RECOGNIZED = 2 [(metadata) = { exit_code: 2 }];
INFO_BLOCK_WRITE_FAILURE = 3 [(metadata) = { exit_code: 7 }];
ALL_INFO_WRITE_FAILURE = 4 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message MemoryOptions {
enum Code {
MEMORY_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
EXPERIMENTAL_OOM_MORE_EAGERLY_THRESHOLD_INVALID_VALUE = 1
[(metadata) = { exit_code: 2 }];
EXPERIMENTAL_OOM_MORE_EAGERLY_NO_TENURED_COLLECTORS_FOUND = 2
[(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message Query {
enum Code {
QUERY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
QUERY_FILE_WITH_COMMAND_LINE_EXPRESSION = 1 [(metadata) = { exit_code: 2 }];
QUERY_FILE_READ_FAILURE = 2 [(metadata) = { exit_code: 2 }];
COMMAND_LINE_EXPRESSION_MISSING = 3 [(metadata) = { exit_code: 2 }];
OUTPUT_FORMAT_INVALID = 4 [(metadata) = { exit_code: 2 }];
GRAPHLESS_PREREQ_UNMET = 5 [(metadata) = { exit_code: 2 }];
QUERY_OUTPUT_WRITE_FAILURE = 6 [(metadata) = { exit_code: 36 }];
QUERY_STDOUT_FLUSH_FAILURE = 13 [(metadata) = { exit_code: 36 }];
ANALYSIS_QUERY_PREREQ_UNMET = 14 [(metadata) = { exit_code: 2 }];
QUERY_RESULTS_FLUSH_FAILURE = 15 [(metadata) = { exit_code: 36 }];
reserved 7 to 12; // For internal use
}
Code code = 1;
}
message LocalExecution {
enum Code {
LOCAL_EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
LOCKFREE_OUTPUT_PREREQ_UNMET = 1 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message ActionCache {
enum Code {
ACTION_CACHE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message FetchCommand {
enum Code {
FETCH_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
EXPRESSION_MISSING = 1 [(metadata) = { exit_code: 2 }];
OPTIONS_INVALID = 2 [(metadata) = { exit_code: 2 }];
QUERY_PARSE_ERROR = 3 [(metadata) = { exit_code: 2 }];
QUERY_EVALUATION_ERROR = 4 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message SyncCommand {
enum Code {
SYNC_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
PACKAGE_LOOKUP_ERROR = 1 [(metadata) = { exit_code: 7 }];
WORKSPACE_EVALUATION_ERROR = 2 [(metadata) = { exit_code: 7 }];
REPOSITORY_FETCH_ERRORS = 3 [(metadata) = { exit_code: 7 }];
REPOSITORY_NAME_INVALID = 4 [(metadata) = { exit_code: 7 }];
}
Code code = 1;
}
message Sandbox {
enum Code {
SANDBOX_FAILURE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message IncludeScanning {
enum Code {
INCLUDE_SCANNING_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
INITIALIZE_INCLUDE_HINTS_ERROR = 1 [(metadata) = { exit_code: 36 }];
SCANNING_IO_EXCEPTION = 2 [(metadata) = { exit_code: 36 }];
INCLUDE_HINTS_FILE_NOT_IN_PACKAGE = 3 [(metadata) = { exit_code: 36 }];
INCLUDE_HINTS_READ_FAILURE = 4 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message TestCommand {
enum Code {
TEST_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
NO_TEST_TARGETS = 1 [(metadata) = { exit_code: 4 }];
TEST_WITH_NOANALYZE = 2 [(metadata) = { exit_code: 1 }];
TESTS_FAILED = 3 [(metadata) = { exit_code: 3 }];
}
Code code = 1;
}
message ActionQuery {
// All numerical exit code associations correspond to pre-existing Bazel
// behavior. These associations are suspicious:
// - COMMAND_LINE_EXPANSION_FAILURE: this is associated with 2, the numerical
// exit code for "bad Bazel command line", but is generated when an
// action's command line fails to expand, which sounds similar but is
// completely different.
// - OUTPUT_FAILURE: this is associated with 6, an undocumented exit code.
// - INVALID_AQUERY_EXPRESSION: this is associate with 1, which is not
// documented for (a)query.
// TODO(b/138456686): Revise these after the (intentionally non-breaking)
// initial rollout of FailureDetail-based encoding.
enum Code {
ACTION_QUERY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
COMMAND_LINE_EXPANSION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
OUTPUT_FAILURE = 2 [(metadata) = { exit_code: 6 }];
COMMAND_LINE_EXPRESSION_MISSING = 3 [(metadata) = { exit_code: 2 }];
EXPRESSION_PARSE_FAILURE = 4 [(metadata) = { exit_code: 2 }];
SKYFRAME_STATE_WITH_COMMAND_LINE_EXPRESSION = 5
[(metadata) = { exit_code: 2 }];
INVALID_AQUERY_EXPRESSION = 6 [(metadata) = { exit_code: 1 }];
SKYFRAME_STATE_PREREQ_UNMET = 7 [(metadata) = { exit_code: 2 }];
AQUERY_OUTPUT_TOO_BIG = 8 [(metadata) = { exit_code: 7 }];
}
Code code = 1;
}
message TargetPatterns {
enum Code {
TARGET_PATTERNS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
TARGET_PATTERN_FILE_WITH_COMMAND_LINE_PATTERN = 1
[(metadata) = { exit_code: 2 }];
TARGET_PATTERN_FILE_READ_FAILURE = 2 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message CleanCommand {
enum Code {
CLEAN_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
OUTPUT_SERVICE_CLEAN_FAILURE = 1 [(metadata) = { exit_code: 6 }];
ACTION_CACHE_CLEAN_FAILURE = 2 [(metadata) = { exit_code: 36 }];
OUT_ERR_CLOSE_FAILURE = 3 [(metadata) = { exit_code: 36 }];
OUTPUT_BASE_DELETE_FAILURE = 4 [(metadata) = { exit_code: 36 }];
OUTPUT_BASE_TEMP_MOVE_FAILURE = 5 [(metadata) = { exit_code: 36 }];
ASYNC_OUTPUT_BASE_DELETE_FAILURE = 6 [(metadata) = { exit_code: 6 }];
EXECROOT_DELETE_FAILURE = 7 [(metadata) = { exit_code: 36 }];
EXECROOT_TEMP_MOVE_FAILURE = 8 [(metadata) = { exit_code: 36 }];
ASYNC_EXECROOT_DELETE_FAILURE = 9 [(metadata) = { exit_code: 6 }];
}
Code code = 1;
}
message ConfigCommand {
enum Code {
CONFIG_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
TOO_MANY_CONFIG_IDS = 1 [(metadata) = { exit_code: 2 }];
CONFIGURATION_NOT_FOUND = 2 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message ConfigurableQuery {
enum Code {
CONFIGURABLE_QUERY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
COMMAND_LINE_EXPRESSION_MISSING = 1 [(metadata) = { exit_code: 2 }];
EXPRESSION_PARSE_FAILURE = 2 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message DumpCommand {
enum Code {
DUMP_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
NO_OUTPUT_SPECIFIED = 1 [(metadata) = { exit_code: 7 }];
ACTION_CACHE_DUMP_FAILED = 2 [(metadata) = { exit_code: 7 }];
COMMAND_LINE_EXPANSION_FAILURE = 3 [(metadata) = { exit_code: 7 }];
ACTION_GRAPH_DUMP_FAILED = 4 [(metadata) = { exit_code: 7 }];
STARLARK_HEAP_DUMP_FAILED = 5 [(metadata) = { exit_code: 8 }];
}
Code code = 1;
}
message HelpCommand {
enum Code {
HELP_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
MISSING_ARGUMENT = 1 [(metadata) = { exit_code: 2 }];
COMMAND_NOT_FOUND = 2 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message MobileInstall {
enum Code {
MOBILE_INSTALL_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
CLASSIC_UNSUPPORTED = 1 [(metadata) = { exit_code: 2 }];
NO_TARGET_SPECIFIED = 2 [(metadata) = { exit_code: 2 }];
MULTIPLE_TARGETS_SPECIFIED = 3 [(metadata) = { exit_code: 2 }];
TARGET_TYPE_INVALID = 4 [(metadata) = { exit_code: 6 }];
NON_ZERO_EXIT = 5 [(metadata) = { exit_code: 6 }];
ERROR_RUNNING_PROGRAM = 6 [(metadata) = { exit_code: 6 }];
}
Code code = 1;
}
message ProfileCommand {
enum Code {
PROFILE_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
OLD_BINARY_FORMAT_UNSUPPORTED = 1 [(metadata) = { exit_code: 1 }];
FILE_READ_FAILURE = 2 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message RunCommand {
enum Code {
RUN_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
NO_TARGET_SPECIFIED = 1 [(metadata) = { exit_code: 2 }];
TOO_MANY_TARGETS_SPECIFIED = 2 [(metadata) = { exit_code: 2 }];
TARGET_NOT_EXECUTABLE = 3 [(metadata) = { exit_code: 2 }];
TARGET_BUILT_BUT_PATH_NOT_EXECUTABLE = 4 [(metadata) = { exit_code: 37 }];
TARGET_BUILT_BUT_PATH_VALIDATION_FAILED = 5
[(metadata) = { exit_code: 36 }];
RUN_UNDER_TARGET_NOT_BUILT = 6 [(metadata) = { exit_code: 2 }];
RUN_PREREQ_UNMET = 7 [(metadata) = { exit_code: 2 }];
TOO_MANY_TEST_SHARDS_OR_RUNS = 8 [(metadata) = { exit_code: 2 }];
TEST_ENVIRONMENT_SETUP_FAILURE = 9 [(metadata) = { exit_code: 36 }];
COMMAND_LINE_EXPANSION_FAILURE = 10 [(metadata) = { exit_code: 36 }];
NO_SHELL_SPECIFIED = 11 [(metadata) = { exit_code: 2 }];
SCRIPT_WRITE_FAILURE = 12 [(metadata) = { exit_code: 6 }];
RUNFILES_DIRECTORIES_CREATION_FAILURE = 13 [(metadata) = { exit_code: 36 }];
RUNFILES_SYMLINKS_CREATION_FAILURE = 14 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message VersionCommand {
enum Code {
VERSION_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
NOT_AVAILABLE = 1 [(metadata) = { exit_code: 2 }];
}
Code code = 1;
}
message PrintActionCommand {
enum Code {
PRINT_ACTION_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
TARGET_NOT_FOUND = 1 [(metadata) = { exit_code: 1 }];
COMMAND_LINE_EXPANSION_FAILURE = 2 [(metadata) = { exit_code: 1 }];
TARGET_KIND_UNSUPPORTED = 3 [(metadata) = { exit_code: 1 }];
ACTIONS_NOT_FOUND = 4 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message WorkspaceStatus {
enum Code {
WORKSPACE_STATUS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
NON_ZERO_EXIT = 1 [(metadata) = { exit_code: 1 }];
ABNORMAL_TERMINATION = 2 [(metadata) = { exit_code: 1 }];
EXEC_FAILED = 3 [(metadata) = { exit_code: 1 }];
PARSE_FAILURE = 4 [(metadata) = { exit_code: 36 }];
VALIDATION_FAILURE = 5 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message JavaCompile {
enum Code {
JAVA_COMPILE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
REDUCED_CLASSPATH_FAILURE = 1 [(metadata) = { exit_code: 1 }];
COMMAND_LINE_EXPANSION_FAILURE = 2 [(metadata) = { exit_code: 1 }];
JDEPS_READ_IO_EXCEPTION = 3 [(metadata) = { exit_code: 36 }];
REDUCED_CLASSPATH_FALLBACK_CLEANUP_FAILURE = 4
[(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message ActionRewinding {
enum Code {
ACTION_REWINDING_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
LOST_INPUT_TOO_MANY_TIMES = 1 [(metadata) = { exit_code: 1 }];
LOST_INPUT_IS_SOURCE = 2 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message CppCompile {
enum Code {
CPP_COMPILE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
FIND_USED_HEADERS_IO_EXCEPTION = 1 [(metadata) = { exit_code: 36 }];
COPY_OUT_ERR_FAILURE = 2 [(metadata) = { exit_code: 36 }];
D_FILE_READ_FAILURE = 3 [(metadata) = { exit_code: 36 }];
COMMAND_GENERATION_FAILURE = 4 [(metadata) = { exit_code: 1 }];
MODULE_EXPANSION_TIMEOUT = 5 [(metadata) = { exit_code: 1 }];
INCLUDE_PATH_OUTSIDE_EXEC_ROOT = 6 [(metadata) = { exit_code: 1 }];
FAKE_COMMAND_GENERATION_FAILURE = 7 [(metadata) = { exit_code: 1 }];
UNDECLARED_INCLUSIONS = 8 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message StarlarkAction {
enum Code {
STARLARK_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
UNUSED_INPUT_LIST_READ_FAILURE = 1 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message NinjaAction {
enum Code {
NINJA_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
INVALID_DEPFILE_DECLARED_DEPENDENCY = 1 [(metadata) = { exit_code: 36 }];
D_FILE_PARSE_FAILURE = 2 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message DynamicExecution {
enum Code {
DYNAMIC_EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
XCODE_RELATED_PREREQ_UNMET = 1 [(metadata) = { exit_code: 36 }];
}
Code code = 1;
}
message FailAction {
enum Code {
FAIL_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
INTENTIONAL_FAILURE = 1 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message SymlinkAction {
enum Code {
SYMLINK_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
EXECUTABLE_INPUT_NOT_FILE = 1 [(metadata) = { exit_code: 1 }];
EXECUTABLE_INPUT_IS_NOT = 2 [(metadata) = { exit_code: 1 }];
EXECUTABLE_INPUT_CHECK_IO_EXCEPTION = 3 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message CppLink {
enum Code {
CPP_LINK_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
COMMAND_GENERATION_FAILURE = 1 [(metadata) = { exit_code: 1 }];
FAKE_COMMAND_GENERATION_FAILURE = 2 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}
message LtoAction {
enum Code {
LTO_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
INVALID_ABSOLUTE_PATH_IN_IMPORTS = 1 [(metadata) = { exit_code: 1 }];
MISSING_BITCODE_FILES = 2 [(metadata) = { exit_code: 1 }];
}
Code code = 1;
}