Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking Change between 16.3 and 16.4 #1301

Open
mkarg opened this issue Dec 25, 2024 · 3 comments
Open

Breaking Change between 16.3 and 16.4 #1301

mkarg opened this issue Dec 25, 2024 · 3 comments

Comments

@mkarg
Copy link

mkarg commented Dec 25, 2024

Each major version of PostgreSQL (in theory) can come with breaking changes in their API and internals. One such breaking change was the non-optional addition of ALPN to the TLS connection process in PostgreSQL 17. As a result, libpg v17 contains this breaking change, so it is risky to link psql v16 against libpg v17.

In fact, The Official PostgreSQL Docker Container since tag 16.4 is linking against libpg v17 producing real problems in production: Once PostgreSQL v16 (!) is proxied (e. g. TLS termination is not performed by PostgreSQL itself but by Traefik, as typical in cloud environments etc.), psql v16 (!) fails to connect due to missing ALPN custom name postgresql (remember, only v16 is in use here on client and server, and ALPN support was invented in PostgreSQL v17 but does not exist officially in v16.x)!

As such a breaking change is counter intuitive (and forbidden by SemVer), I kindly ask the PostgreSQL Docker Community to link 16.x against libpg v16 instead of v17.

Disclaimer: The source of this information is Tom Lane, I just forwarded it.

@LaurentGoderre
Copy link
Member

Which variant is this? Is it just the alpine one or all of them?

@mkarg
Copy link
Author

mkarg commented Dec 26, 2024

I have reproduced it using using the latest tag on arm64. I have not tested other platforms or tags.

@tianon
Copy link
Member

tianon commented Jan 7, 2025

For the Debian variants (like latest), we don't build/link them directly -- we use the upstream-maintained builds from https://wiki.postgresql.org/wiki/Apt 🤔

Do you have a minimal reproducer you could share?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants