Hey! Pretty cool question, let's see if my Bash skills are not lost like tears in the rain.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Sunday, April 18, 2021 8:26 AM, Dmitry Matveyev <[email protected]> wrote: > > I have assumption that this is somehow connected with read-write > permissions because when I keep failed builds and later try to delete > them, it asks whether I really want to delete some read-only files. > > I have no idea how exactly that `test/run` script works with all the > pipes and output redirection. And I have no idea how to check why this > build phase hangs. Any tips would be really helpful. I agree, it looks like it's related with that. That `cat` you marked there is reading from the file descriptor 4 and discarding its output. That's not a reasonable thing to do in general, *unless* you are reading from a file that is being written to as a pipe (this case is a named pipe, done with `mkfifo`). The `exec 4<ui-out 3>ui-in` is opening those files and binding them to the file descriptors. So any time you see reading from the fd 4 they are reading from ui-out Pipes are special files that can be used for inter-process communication in this case I think this cat is reading from the pipe until it's empty, in order to consume the data that is being sent by a process. My guess is that the ui-out and ui-in fifos don't have write permission so the process is not able to run, and it hangs in the write, or it's the `cat` who dies in the reading from an empty fifo. It's going to wait until an EOF comes, and that's not happening, because none can write the EOF there. Does this make any sense? HTH, Ekaitz
