diff --git a/pulsar/internal/connection.go b/pulsar/internal/connection.go index ecda4faf22..e9b2443b43 100644 --- a/pulsar/internal/connection.go +++ b/pulsar/internal/connection.go @@ -858,13 +858,14 @@ func (c *connection) Close() { c.Lock() cnx := c.cnx c.Unlock() - c.changeState(connectionClosed) + c.changeState(connectionClosing) if cnx != nil { _ = cnx.Close() } close(c.closeCh) + c.changeState(connectionClosed) listeners := make(map[uint64]ConnectionListener) c.listenersLock.Lock()