From dfd198003a03dbb96e4607b0d3a0bb9a7398ccb7 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Sat, 16 Dec 2023 09:23:17 -0800 Subject: [PATCH] Fix panic in Pipeline when PgConn is busy or closed --- pgconn/pgconn.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pgconn/pgconn.go b/pgconn/pgconn.go index 803b41d1..fe9e3777 100644 --- a/pgconn/pgconn.go +++ b/pgconn/pgconn.go @@ -2053,6 +2053,13 @@ func (p *Pipeline) Flush() error { // Sync establishes a synchronization point and flushes the queued requests. func (p *Pipeline) Sync() error { + if p.closed { + if p.err != nil { + return p.err + } + return errors.New("pipeline closed") + } + p.conn.frontend.SendSync(&pgproto3.Sync{}) err := p.Flush() if err != nil {