diff options
| author | Daniil Belov <70999565+BelovDV@users.noreply.github.com> | 2023-03-28 12:13:42 +0300 |
|---|---|---|
| committer | Daniil Belov <70999565+BelovDV@users.noreply.github.com> | 2023-03-28 17:22:30 +0300 |
| commit | be6a09f96bbe0c0c6ce909a84ea0164112edfced (patch) | |
| tree | a1b41e1d7bdd65e88f5f4ba844d16ecd3c2e213b | |
| parent | cbc064b341be231403d181402a786cce7f1c73f1 (diff) | |
| download | rust-be6a09f96bbe0c0c6ce909a84ea0164112edfced.tar.gz rust-be6a09f96bbe0c0c6ce909a84ea0164112edfced.zip | |
[fix] don't panic on failure to acquire jobserver token
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/write.rs | 4 | ||||
| -rw-r--r-- | tests/run-make/jobserver-error/Makefile | 8 | ||||
| -rw-r--r-- | tests/run-make/jobserver-error/jobserver.stderr | 4 |
3 files changed, 14 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs index 7ce72d21727..2dda4cd1694 100644 --- a/compiler/rustc_codegen_ssa/src/back/write.rs +++ b/compiler/rustc_codegen_ssa/src/back/write.rs @@ -1452,8 +1452,8 @@ fn start_executing_work<B: ExtraBackendMethods>( Err(e) => { let msg = &format!("failed to acquire jobserver token: {}", e); shared_emitter.fatal(msg); - // Exit the coordinator thread - panic!("{}", msg) + codegen_done = true; + codegen_aborted = true; } } } diff --git a/tests/run-make/jobserver-error/Makefile b/tests/run-make/jobserver-error/Makefile new file mode 100644 index 00000000000..3b9104fc354 --- /dev/null +++ b/tests/run-make/jobserver-error/Makefile @@ -0,0 +1,8 @@ +include ../../run-make-fulldeps/tools.mk + +# only-linux + +# Test compiler behavior in case: `jobserver-auth` points to correct pipe which is not jobserver. + +all: + bash -c 'echo "fn main() {}" | MAKEFLAGS="--jobserver-auth=3,3" $(RUSTC) - 3</dev/null' 2>&1 | diff jobserver.stderr - diff --git a/tests/run-make/jobserver-error/jobserver.stderr b/tests/run-make/jobserver-error/jobserver.stderr new file mode 100644 index 00000000000..d18e15a2628 --- /dev/null +++ b/tests/run-make/jobserver-error/jobserver.stderr @@ -0,0 +1,4 @@ +error: failed to acquire jobserver token: early EOF on jobserver pipe + +error: aborting due to previous error + |
