On Mon, Jun 29, 2015 at 11:52:26AM +1200, Thomas Munro wrote: > On Mon, Jun 29, 2015 at 10:57 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > > Thomas Munro <thomas.mu...@enterprisedb.com> writes: > >> Just by the way, I wonder if this was that bug: > >> https://illumos.org/issues/1594 > > > > Oooh. Might or might not be *same* bug, but it sure looks like it could > > have the right symptom. If this is indeed inherited from old Solaris, > > I'm afraid we are totally fooling ourselves if we guess that it's no > > longer present in the wild.
Very interesting. Looks like the illumos strxfrm() came from FreeBSD, not from Solaris; illumos introduced their bug independently: https://illumos.org/issues/2 https://github.com/illumos/illumos-gate/commits/master/usr/src/lib/libc/port/locale/collate.c > Also, here is an interesting patch that went into the Apache C++ > standard library. Maybe the problem was limited to amd64 system... > > https://github.com/illumos/illumos-userland/blob/master/components/stdcxx/patches/047-collate.cpp.patch That's a useful data point. Based on Oskari Saarenmaa's report, newer Solaris 10 is not affected. The fix presumably showed up after the 05/08 release and no later than the 01/13 release. On Sun, Jun 28, 2015 at 07:00:14PM -0400, Tom Lane wrote: > > On Sun, Jun 28, 2015 at 12:58 PM, Josh Berkus <j...@agliodbs.com> wrote: > >> My perspective is that if both SmartOS and OmniOS pass, it's not our > >> responsibility to support OldSolaris if they won't update libraries. > Another idea would be to make a test during postmaster start to see > if this bug exists, and fail if so. I'm generally on board with the > thought that we don't need to work on systems with such a bad bug, > but it would be a good thing if the failure was clean and produced > a helpful error message, rather than looking like a Postgres bug. Failing cleanly on unpatched Solaris is adequate, agreed. A check at postmaster start isn't enough, because the postmaster might run in the C locale while individual databases or collations use problem locales. The safest thing is to test after every setlocale(LC_COLLATE) and newlocale(LC_COLLATE). That's once at backend start and once per backend per collation used, more frequent than I would like. Hmm. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers