Este código termina com o erro:
(
ssh localhost seq 100000
seq 100000
) | wc
#-> seq: write error: Resource temporarily unavailable
Este é um código mínimo para reproduzir o erro de gravação. O objetivo não é alterar a arquitetura do subprocesso/pipe para fazê-lo funcionar, mas entender por que esse erro ocorre quando fd 1 é atribuído a um pipe que é reutilizado posteriormente para gravar uma saída grande.
Por que o cliente SSH deixa o descritor de arquivo stdout sujo? É uma desvantagem de design? Existe uma opção para fazê-lo se comportar como outro processo faria?
EDIT : graças às pistas nos comentários, suspeito que possa estar relacionado às versões 7.9 a 8.4 do OpenSSH