Erik Rijkers <e...@xs4all.nl> writes:
> On 2018-12-16 07:03, Tom Lane wrote:
>> Um ... this example works for me, in both HEAD and v11 branch tip.
>> Moreover, the behavior you describe is exactly what ffa4cbd623 was
>> intended to fix.  Is there any chance that you got 11.1 and v11
>> branch tip mixed up?

> [ nope ]
> On the other hand, in that test.sh, have you tried enlarging the test 
> table?

Yeah, I tried sizes ranging up to 1m tuples without success.

However, something else occurred to me this morning, and a bit
later I can reproduce the problem!  I did it by changing the
table's definition to use a shell pipeline:

     program       'unzip -p \"/tmp/t.zip\" \"tmp/t.txt\" | cat'

ERROR:  program "unzip -p "/tmp/t.zip" "tmp/t.txt" | cat" failed
DETAIL:  child process exited with exit code 141

What is happening for me, I think, is that if the PROGRAM is
just "unzip" then the shell exec's it directly, and so the
SIGPIPE result is reported directly to the PG backend.  But
if the PROGRAM is too complicated to handle that way, then
unzip and cat are children of a shell process, and one or both
of them get SIGPIPE, and the shell reports that as exit status
128 + SIGPIPE.  So we need to consider that result as indicating
a sigpipe failure, too.

It remains unclear why you had an intervening shell process when
I didn't, but perhaps that can be chalked up to use of a different
shell?

                        regards, tom lane

Reply via email to