i.0 = 1
i.1 = Copies('*',5000)
Address SYSTEM 'somecommand' with input stem i.
From time to time, only 4096 bytes are received (this is the size of IObuf in shell.c). It is easiest to reproduce the problem by enclosing the Address SYSTEM command in a DO 10 loop, eventually (4-5 iterations) it will fail whereas from the keyboard it tends to succeed most of the time - this is a timing-dependent problem.
This is because EAGAIN is not handled properly in write_buffered() when a flush is requested (the write is not retried and the last chunk of data is basically discarded). The problem may be broader than that, I am not familiar with the source code. I expect that this happens on every operating system, but I have only tried on Windows. If the operating system buffers pipe writes, it may take more than 4096 bytes to trigger the problem.