New issue by nmeum on mblaze repository https://github.com/leahneukirchen/mblaze/issues/203 Description: While trying to get the mblaze test suite running on Alpine Linux, I noticed that the `multi redir` test from `2000-mpick.t` does not terminate, even with current git HEAD. To reproduce: ``` $ cat /tmp/input inbox/cur/1:2,S inbox/cur/2:2,ST inbox/cur/3:2,SRT inbox/cur/4:2,SRFT inbox/cur/5:2,T inbox/cur/6:2,SRF inbox/cur/7:2,SR inbox/cur/8:2,SF inbox/cur/9:2, $ cat expr let foo = from.addr == "peter@example.org" let bar = from.disp == "Peter Example" in foo |"sed ""s/^/1:&/""" && bar |"sed ""s/^/2:&/""" && skip $ mpick -F ./expr < /tmp/input 1:inbox/cur/1:2,S 1:inbox/cur/9:2, 2:inbox/cur/1:2,S 2:inbox/cur/9:2, ``` I debugged this a bit with `strace(1)`. The output of the 3 processes (mpick, sed, and sed) is available here: * [sed.25493.txt](https://github.com/leahneukirchen/mblaze/files/6135400/sed.25493.txt) * [sed.25494.txt](https://github.com/leahneukirchen/mblaze/files/6135401/sed.25494.txt) * [sed.25495.txt](https://github.com/leahneukirchen/mblaze/files/6135402/sed.25495.txt) I am a bit confused as to what is happening here. The mpick process (PID 25493) blocks because it waits for the first sed process (PID 25494) to terminate (since mpick uses `pclose(3)`). The sed process on the other hand doesn't terminate because it is still reading from the reading end of the pipe. However, I would expect that read to return with an EOF because the mpick process already closed the writing end of the pipe. Yet for some reason, it is stuck in a read system call. Maybe I am missing something obvious here, any idea what might be causing this?