Обсуждение: PSA: Planning to grease protocol connections during 19beta
I want to make sure this doesn't take anyone by surprise: I'm planning
to get Jelte's "grease" patch into shape for a commit some time in
January.
https://commitfest.postgresql.org/patch/6157/
If you're unfamiliar with the concept of greasing [1], one way to
think of it is that we're inverting Postel's Law: we will be very
liberal in what we send during connection, and then fail the
connection outright if a server doesn't reply with a
NegotiateProtocolVersion that points out our nonsense. This helps
build confidence that a future bump in our protocol defaults won't
cause operational failures due to buggy implementations (proxies,
bouncers, other servers).
The plan is to grease the minor version number and at least one
protocol extension during the 19 beta, then revert partway through (as
tracked by a mid-beta Open Item). Users who run into trouble during
beta can revert to the previous behavior by setting
max_protocol_version=3.0, ideally *after* they file a bug report for
the peer implementation. Documenting that, in a way that's effective
for both users and implementers, is something that still needs work
for the current patchset.
So, if anyone has objections to the overall idea, now is a great time
to say so. (Here is fine, but preferably also on the patch thread for
posterity.)
Thanks!
--Jacob
[1] https://datatracker.ietf.org/doc/draft-edm-protocol-greasing/
On Tue, Dec 9, 2025 at 5:16 PM Jacob Champion <jacob.champion@enterprisedb.com> wrote: > I want to make sure this doesn't take anyone by surprise: I'm planning > to get Jelte's "grease" patch into shape for a commit some time in > January. As of January 54th, this is committed. I wanted to get people's thoughts on communication. As it stands now, beta users will be directed towards our own documentation [1] when they hit a grease failure. But personally, I'd like the landing page to be on the wiki, for several reasons: - It can be written in a more casual voice, and go into detail that would be out of place in a docs note - It's easier to change quickly in response to end user feedback, if we receive any - It can remain in place after the beta period ends But having libpq link to a wiki page makes that page a vandalism target. Can a wiki page be protected in a way that still lets committers edit it? Is there a third option that works better than the docs or the wiki? --Jacob [1] https://www.postgresql.org/docs/devel/libpq-connect.html#LIBPQ-CONNECT-MAX-PROTOCOL-VERSION
Jacob Champion <jacob.champion@enterprisedb.com> writes:
> I wanted to get people's thoughts on communication. As it stands now,
> beta users will be directed towards our own documentation [1] when
> they hit a grease failure. But personally, I'd like the landing page
> to be on the wiki, for several reasons:
> - It can be written in a more casual voice, and go into detail that
> would be out of place in a docs note
> - It's easier to change quickly in response to end user feedback, if
> we receive any
> - It can remain in place after the beta period ends
> But having libpq link to a wiki page makes that page a vandalism
> target. Can a wiki page be protected in a way that still lets
> committers edit it? Is there a third option that works better than the
> docs or the wiki?
We have the ability to lock down a wiki page, but I believe that means
nobody can edit it until a wiki admin unlocks it. That might be the
way to go here though. I concur with your reasoning that the main
docs are a less-good place.
regards, tom lane
On Mon, Feb 23, 2026 at 12:20 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > We have the ability to lock down a wiki page, but I believe that means > nobody can edit it until a wiki admin unlocks it. That might be the > way to go here though. I concur with your reasoning that the main > docs are a less-good place. Okay, sounds good. I've created https://wiki.postgresql.org/wiki/Grease for now; I'll work on filling it in. I think FAQ-style might work well for this format. --Jacob