[pgpool-general: 7817] Re: broken pipe in the logs

Tatsuo Ishii ishii at sraoss.co.jp
Thu Oct 21 10:00:34 JST 2021


Hi,

> Hello.
> 
> We are running a small self-managed pgpool and postgres setup in Google
> cloud. We have setup two Pgpools which connect to one primary and two
> replica postgres setup.
> 
> On more than one occasion, one of the pgpools has printed a "Broken pipe"
> error and the backend went unreachable for that pgpool, while the other
> pgpool was able to reach the backend postgres just fine. The bad pgpool
> will only start working after a restart of the pgpool.
> 
> I would really appreciate some help in understanding why this is happening
> and what can be done to mitigate this issue.
> 
> Log lines, are added below:
> 
> Oct 19 13:05:31 pgpool-fdfv pgpool[935]: 2021-07-21 13:05:31: pid
> 10003: LOG:  received degenerate backend request for node_id: 1 from
> pid [10003]
> Oct 19 13:05:31 pgpool-fdfv pgpool[935]: 2021-07-21 13:05:31: pid 935:
> LOG:  Pgpool-II parent process has received failover request
> Oct 19 13:05:31 pgpool-fdfv pgpool[935]: 2021-07-21 13:05:31: pid
> 10003: WARNING:  write on backend 1 failed with error :"Broken pipe"
> Oct 19 13:05:31 pgpool-fdfv pgpool[935]: 2021-07-21 13:05:31: pid
> 10003: DETAIL:  while trying to write data from offset: 0 wlen: 5

Can you please share the Pgpool-II version? Also sharing pgpool.conf
is helpful (you can remove parameters you don't want to put in
public).

I wonder if the corresponding backend process is still alive or
not. You can check it by using pcp_proc_info command. Once you
identify the backend process, you can check PostgreSQL log what
happend at that time.

In the mean time you can kill the pgpool process to let the pgpool
parent process to fork a new child process.

kill -6 "pid" or kill -9 "pid"
("pid" is 10003 in the case above)
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp



More information about the pgpool-general mailing list