#1275 and #8946 introduced retry when read/write catched EINTR. But it seems unconditional retry (without sighandler) is incorrect.
coreutils/coreutils#268 (comment)
For example, trace -o /dev/null -e inject=write:error=EINTR:when=2 tee should cause
tee: 'standard output': Interrupted system call (until we introduce zero-copy code path), but we don't do that.
We don't need to exactly match when=N, but we should not infinitely retry.
[Edit] read is unrelated. write should not retly.
#1275 and #8946 introduced retry when read/write catched EINTR. But it seems unconditional retry (without sighandler) is incorrect.
coreutils/coreutils#268 (comment)
For example,
trace -o /dev/null -e inject=write:error=EINTR:when=2 teeshould causetee: 'standard output': Interrupted system call(until we introduce zero-copy code path), but we don't do that.We don't need to exactly match
when=N, but we should not infinitely retry.[Edit] read is unrelated. write should not retly.