> 21663: execve("/usr/gnu/bin/sed", 0x08067DA8, 0x08073BA0) argc = 91 > ... > 21665: execve("/usr/gnu/bin/sed", 0x08073508, 0x08073BA0) argc = 81 > ... > 21667: execve("/usr/gnu/bin/sed", 0x080739E4, 0x08073BB4) argc = 33 > ... > 21665: read(0, 0xFEF59FD8, 1024) (sleeping...) > 21667: read(0, 0x08092254, 5120) (sleeping...) > 21663: write(1, 0x080A6754, 5120) (sleeping...)
So, we have (sed X | sed Y | sed Z), and sed X is sleeping waiting for its write to finish, while sed Y is sleeping waiting for its read to finish. I'm not sure, but this would appear to be a kernel bug in Solaris 11. It is suspicious that the 0xFEF59FD8 differs so markedly from the 0x08092254, and that the 1024 differs from the 5120; I wonder why that is? sed Y and sed Z are doing essentially the same thing: waiting for stdin at startup. Do you get the same problem with the /usr/bin/sed?