Skip to content

Commit cc34c54

Browse files
committed
fix(evals): treat stream_select false return as timeout
When stream_select() returns false (signal interrupt, pipe error, or descriptor closure), the read loop must kill the child process to prevent proc_close() from hanging indefinitely on a zombied process. Plan-by: glm-5.2 Acked-by: deepseek-v4-pro Signed-off-by: kyau <git@kyaulabs.com>
1 parent 652780f commit cc34c54

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

.opencode/evals/bin/includes/EvalRunner.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ private function readPipes($process, array $pipes, int $timeout, int $pid): arra
298298
$ready = @stream_select($read, $write, $except, $remainingSec, $remainingUsec);
299299

300300
if ($ready === false) {
301+
$timedOut = true;
301302
break;
302303
}
303304

0 commit comments

Comments
 (0)