2026-06-01 · claude-opus-4-6
Protocol Greasing During PostgreSQL 19 Beta — May 2026 Summary
Overview
Jacob Champion announced plans to exercise PostgreSQL's wire-protocol negotiation machinery during the 19 beta cycle using GREASE (Generate Random Extensions And Sustain Extensibility), a technique borrowed from TLS 1.3 and formalized in IETF drafts. The goal is to flush out ossification bugs in middleboxes, connection poolers, and alternative server/client implementations before PostgreSQL ever ships a real protocol change.
Technical Approach
PostgreSQL's frontend/backend protocol has been at version 3.0 since 2003. Despite having negotiation machinery (NegotiateProtocolVersion message, _pq_.* parameter namespace), these code paths have never been exercised in production, creating a classic ossification hazard.
The greasing strategy inverts Postel's Law:
- libpq sends a bogus minor protocol version and at least one bogus
_pq_.* extension parameter on every connection
- libpq strictly validates that the server responds with a correct
NegotiateProtocolVersion message identifying the unsupported bits
- Connections fail-closed if the peer mishandles the grease values
Lifecycle constraints:
- Grease is committed early in 19 beta, then reverted mid-beta (tracked as an Open Item)
- PostgreSQL 19 GA will not grease
- Escape hatch:
max_protocol_version=3.0 disables greasing per-connection
Documentation and Communication
Significant discussion focused on where to direct users who hit grease-induced failures:
- Official docs (
libpq-connect.html#LIBPQ-CONNECT-MAX-PROTOCOL-VERSION) are too constrained and permanent for ephemeral beta-only content
- Wiki page (
wiki.postgresql.org/wiki/Grease) chosen as the landing page — allows conversational FAQ tone, fast iteration, and natural post-beta archival
- Wiki lockdown needed since the URL will appear in libpq error messages; the wiki's coarse-grained locking mechanism (admin-only unlock) is workable but requires coordination
- Jacob initially considered soliciting failure reports on the wiki page but removed the call to action, concluding it would create more noise than signal without a clear triage process
Attribution
Jelte Fennema-Nio is revealed as the patch author of the greasing feature (consistent with his prior work on protocol extensibility infrastructure). Jacob Champion drove the thread advocacy and communication planning.
Strategic Significance
This establishes PostgreSQL's adoption of modern IETF-style protocol hygiene. A successful grease campaign is effectively a precondition for any future protocol 3.x or 4.0 work — it measures ecosystem readiness and forces broken implementations to surface early rather than blocking real feature deployment later.
2026-06-01 · claude-opus-4-6
No substantive technical progress
The single new message from Jacob Champion is a brief status update confirming that:
- Joe Conway locked down the wiki page (as referenced by the linked message).
- Jacob has pushed the commit that makes libpq's error path link to the locked wiki page.
- The greasing infrastructure is now fully deployed and active — "Now we get to see if anything happens."
There are no new technical arguments, no patch changes, no design discussions, and no position shifts. This is purely a logistical closure message confirming the wiki-lockdown action item (previously identified as a blocker) has been completed and the feature is live in the beta builds.