pumpChild's PTY.Read raced Session.Shutdown's PTY.Close on the master field (Close set it nil while Read read it). Benign at process exit on main, but the daemon now runs Shutdown routinely (daemon stop). Guard the field with a mutex, capturing the fd under the lock and doing the blocking I/O outside it so Close still unblocks an in-flight Read. Caught under: go test -race -run 'Daemon|NetClient|Owner' -count=5.
4.2 KiB
4.2 KiB