f7ad0054

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Line-buffer stderr in coverage mode to prevent interleaving with child writes

In a Nix build sandbox stderr defaults to BlockBuffering. The parent's
progress messages would sit in the buffer until it filled, while child
processes (which inherit the fd) wrote to it directly past the parent's
Handle lock — bursts could interleave at the byte level, producing
"cccccooooo..."-style garbled progress lines.

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 3s 3s 3s
Eval 3s 36s 36s 39s
Build 6s 1m16s 32s 39s
Test - - - -
Deploy - - - -
Suite 0s 1m55s 39s 39s

Timeline

0s10s20s30s