Closed 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 (fd 4). 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?