On 1/8/26 5:19 PM, Daniel Verite wrote:
Rihad wrote:
DETAIL: The database was created using collation version 43.0, but the
operating system provides version 34.0.
The OS are both FreeBSD, but the master runs 14.3, the replica runs
13.5. PostgreSQL packages are built with ICU support by default, the
versions used are identical: icu-76.1
Could it be that the OS (libc) needs to be the same version? I hoped it
would be enough to use the same ICU.
That would be the case if the database collation provider was ICU,
that is pg_database.datlocprovider = 'i'
Otherwise no, it's the libc version that matters, unless using
the binary-sorting C or C.UTF-8 collations.
43.0 and 34.0 don't look like ICU collation version numbers, so
they probably refer to FreeBSD libc (pg_database.datlocprovider = 'c')
As a general rule, you should indeed run the same OS version
for the primary and physical replicas.
Before Postgres version 15 this message did not exist, so the risks
of mismatch were silent but they existed just the same.
Best regards,
Thanks. Both FreeBSD 13.5 & 14.3 are "current", just from different
major branches. I wonder why they use such different locale/collate
versioning, meaning that they differ roughly by that much as in 34 vs.
43. Maybe someone there mistyped 34?)