On 8/14/2022 11:44 AM, Jim Porter wrote: > On 8/14/2022 11:06 AM, Lars Ingebrigtsen wrote: >> Some esh-proc tests seem to be failing here: >> >> https://hydra.nixos.org/build/187349852/nixlog/1 >> >> And I've seen the same myself, but intermittently, so it seems like some >> of the (new) tests there aren't quite stable. > > From Hydra, it seems that the issue is that there's a broken pipe, so > there's probably a timing issue with how the external process runs vs > Eshell's internal code. I'll try to reproduce this locally and fix it. Ok, after stepping away for a bit and letting this bubble around in my head, the issue turned out to be pretty simple (I think). Attached is a patch that should fix this. Here's what's going on. Imagine you have a pipeline like 'lisp-command | external-command'. It could operate in this order: * Start external-command * Send output of lisp-command to external-command * Finish external-command That's good. However, it could also do this: * Start external-command * Finish external-command * Send output of lisp-command to external-command -> SIGPIPE! The fix is to make sure that lisp commands also handle SIGPIPE (aka 'eshell-broken-pipe'), just like how external commands do. This is actually a bug introduced from the patch for bug#54062, but luckily the tests I added for bug#56025 revealed the issue.