BUG #15554: Broken pipe when doing a COPY of a parallel query
От | PG Bug reporting form |
---|---|
Тема | BUG #15554: Broken pipe when doing a COPY of a parallel query |
Дата | |
Msg-id | 15554-04979fa61a082393@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #15554: Broken pipe when doing a COPY of a parallel query
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 15554 Logged by: Luis M Carril Email address: luis.carril@swarm64.com PostgreSQL version: 10.6 Operating system: Ubuntu 18.04 Description: Hi, when performing a COPY TO operation with the result of a parallel query a 'Broken Pipe' error is returned Steps to reproduce: create table a(u int); insert into a select * from generate_series(1,1000000); -- enough data to get a parallel plan copy ( select sum(u) from a) to program 'ls'; -- the SELECT has a gather node ERROR: could not close pipe to external command: Broken pipe Alternatively we can use the force_parallel_mode to reproduce it: set force_parallel_mode to on; copy ( select 1) to program 'ls'; -- this SELECT also has a gather node ERROR: could not close pipe to external command: Broken pipe Note that there is no broken pipe if there is no Gather node: set force_parallel_mode to on; copy ( select 1) to program 'ls'; COPY 1 Pg Version: version ----------------------------------------------------------------------------------------------- PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0, 64-bit Notes: The pclose call in FreeDesc (called by ClosePipeStream) is returning an EINTR, which seems to trigger because during the wait several SIGUSR1 due to the Gather node are triggered, which produces a SIGPIPE. I saw in the discussion of BUG #15449 (https://www.postgresql.org/message-id/flat/15449-1cf737dd5929450e%40postgresql.org) a related comments to ClosePipeToProgram and SIGPIPE, I tried the last submitted patch and the error still shows up. In the alpine Postgres docker image (postgres:10-alpine) the error does not manifest (probably because uses musl as C library and pclose behaves differently): version --------------------------------------------------------------------------------------- PostgreSQL 10.6 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit Cheers, Luis M Carril
В списке pgsql-bugs по дате отправления: