From 6ca3d8ed4e9c23cdd67f9bb9b90a4184f73ea1b8 Mon Sep 17 00:00:00 2001 From: Anton Levakin Date: Tue, 10 Oct 2023 17:56:43 +0200 Subject: [PATCH] Revert "CancelRequest: don't try to read the reply" This reverts commit c861bce438ee5b96cc2dcc78718731dce6949060. --- pgconn/pgconn.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pgconn/pgconn.go b/pgconn/pgconn.go index dc81680ff..b6116d36a 100644 --- a/pgconn/pgconn.go +++ b/pgconn/pgconn.go @@ -944,11 +944,17 @@ func (pgConn *PgConn) CancelRequest(ctx context.Context) error { binary.BigEndian.PutUint32(buf[4:8], 80877102) binary.BigEndian.PutUint32(buf[8:12], uint32(pgConn.pid)) binary.BigEndian.PutUint32(buf[12:16], uint32(pgConn.secretKey)) - // Postgres will process the request and close the connection - // so when don't need to read the reply - // https://www.postgresql.org/docs/current/protocol-flow.html#id-1.10.6.7.10 _, err = cancelConn.Write(buf) - return err + if err != nil { + return err + } + + _, err = cancelConn.Read(buf) + if err != io.EOF { + return err + } + + return nil } // WaitForNotification waits for a LISTON/NOTIFY message to be received. It returns an error if a notification was not