From 9d7cd386a9dd6fd761fcbb5bbf0eff7a917cf746 Mon Sep 17 00:00:00 2001 From: Xinhao Yuan Date: Wed, 15 Jul 2026 14:25:59 -0700 Subject: [PATCH] Add a workaround for sigwait returning 0 but not setting the signal number. This should never happen, but I've seen it in recent MacOS CI runs. It does not break the fuzzing engine, but may cause unnecessary cleanup timeout. PiperOrigin-RevId: 948545330 --- centipede/runner_fork_server.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/centipede/runner_fork_server.cc b/centipede/runner_fork_server.cc index 6f6771779..f7a5919d7 100644 --- a/centipede/runner_fork_server.cc +++ b/centipede/runner_fork_server.cc @@ -349,6 +349,13 @@ void ForkServerCallMeVeryEarly() { if (sigwait(&wait_sigset, &sig) != 0) { Exit("###sigwait() failed\n"); } + if (sig == -1) { + // TODO(xinhaoyuan): This should never happen, but I've seen it happen + // on MacOS. Need further investigation. + Log("###sigwait() returns 0 without setting signal number!! Assume " + "SIGCHLD\n"); + sig = SIGCHLD; + } if (sig == SIGINT) { Log("###Get SIGINT - ignoring\n"); } else if (sig == SIGTERM) {