Perform a zero-downtime PgBouncer restart or config reload using an so_reuseport rolling restart
domain: pgbouncer.org · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Enable so_reuseport in pgbouncer.ini and run two or more PgBouncer processes bound to the same listen port
For a pure config change that doesn't need a new binary, send the RELOAD command over the admin console (or SIGHUP) instead of restarting
For a binary upgrade, restart processes one at a time: send SHUTDOWN WAIT_FOR_CLIENTS (or SIGTERM) to one process while the others keep accepting new connections on the shared port
Let clients on the draining process reconnect naturally (via server_idle_timeout or app-side reconnect) so that process exits cleanly once empty
Start the replacement process on the same port and repeat for each remaining process
Known gotchas
The old -R/--online-restart flag is deprecated in favor of the so_reuseport rolling-restart approach — don't rely on it in current PgBouncer versions
SO_REUSEPORT support depends on the OS (Linux and modern BSDs support it); confirm platform support before depending on this pattern
RELOAD only picks up changeable settings from pgbouncer.ini; some settings still require a full process restart
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?