diff --git a/lib/fed/conn.go b/lib/fed/conn.go
index 90dbd6bc77647cc107189689eaa9bf22c4b9315a..599b4baf8d1e66b7ee1b13886699f6d9fe12e7a6 100644
--- a/lib/fed/conn.go
+++ b/lib/fed/conn.go
@@ -5,6 +5,8 @@ import (
 	"encoding/binary"
 	"io"
 	"net"
+
+	"pggat2/lib/util/pools"
 )
 
 type Conn interface {
@@ -16,6 +18,8 @@ type Conn interface {
 	Close() error
 }
 
+var buffers = pools.Locked[net.Buffers]{}
+
 const pktBufSize = 4096
 
 type netConn struct {
@@ -29,9 +33,12 @@ type netConn struct {
 }
 
 func WrapNetConn(conn net.Conn) Conn {
+	bufs, _ := buffers.Get()
 	return &netConn{
 		conn: conn,
 		w:    conn,
+
+		writeBuf: bufs,
 	}
 }
 
@@ -146,6 +153,10 @@ func (T *netConn) WritePacket(packet Packet) error {
 }
 
 func (T *netConn) Close() error {
+	if T.writeBuf != nil {
+		buffers.Put(T.writeBuf)
+		T.writeBuf = nil
+	}
 	return T.conn.Close()
 }
 
diff --git a/lib/gat/acceptor.go b/lib/gat/acceptor.go
index 4a445c6caf2a0f3451190a33abdd5901fcc5f16c..87fdfe2aef4c02169dec77b2efe55fa337e77217 100644
--- a/lib/gat/acceptor.go
+++ b/lib/gat/acceptor.go
@@ -1,8 +1,12 @@
 package gat
 
 import (
+	"errors"
+	"io"
 	"net"
 
+	"tuxpa.in/a/zlog/log"
+
 	"pggat2/lib/bouncer/frontends/v0"
 	"pggat2/lib/fed"
 	"pggat2/lib/util/beforeexit"
@@ -61,6 +65,7 @@ func serve(client fed.Conn, acceptParams frontends.AcceptParams, pools Pools) er
 	p := pools.Lookup(acceptParams.User, acceptParams.Database)
 
 	if p == nil {
+		log.Printf("pool not found: user=%s database=%s", acceptParams.User, acceptParams.Database)
 		return nil
 	}
 
@@ -81,12 +86,17 @@ func Serve(acceptor Acceptor, pools Pools) error {
 	for {
 		conn, acceptParams, err := acceptor.Accept()
 		if err != nil {
-			// log.Println("error accepting", err)
+			if errors.Is(err, net.ErrClosed) {
+				return nil
+			}
+			log.Print("error accepting client: ", err)
 			continue
 		}
 		go func() {
-			_ = serve(conn, acceptParams, pools)
-			// log.Println("error serving", err)
+			err := serve(conn, acceptParams, pools)
+			if err != nil && !errors.Is(err, io.EOF) {
+				log.Print("error serving client: ", err)
+			}
 		}()
 	}
 }