From: | Joe Conway <mail(at)joeconway(dot)com> |
---|---|
To: | Tristan Partin <tristan(at)neon(dot)tech>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, gdo(at)leader(dot)it |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG |
Date: | 2023-06-10 16:12:36 |
Message-ID: | f1856a5d-3703-66ff-e7c7-01d2489315c1@joeconway.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
On 6/9/23 22:10, Joe Conway wrote:
> On 6/9/23 15:05, Joe Conway wrote:
>> I wonder if it isn't a behavior change in libperl itself. It seems
>> that merely doing "load 'plperl';" is enough to cause the issue
> I can reproduce with a simple test program by linking libperl:
>
> 8<-------- test.c ----------------
A bit more spelunking leads me to the following observations and
conclusions:
1/ On RHEL7 with perl v5.16.3 the problem does not occur
2/ On RHEL9 with perl v5.32.1 the problem does occur
3/ The difference in behavior is triggered by the newer perl doing a
bunch of newlocale/uselocale calls not done by the older perl, combined
with a glibc behavior which seems surprising at best.
From localeinfo.h in glibc source tree:
8<------------------------
/* This fetches the thread-local locale_t pointer, either one set with
uselocale or &_nl_global_locale. */
#define _NL_CURRENT_LOCALE (__libc_tsd_get (locale_t, LOCALE))
8<------------------------
4/ I successfully tested a fix in the simplified reproducer program sent
earlier. It amounts to adding:
8<------------------------
uselocale(LC_GLOBAL_LOCALE);
8<------------------------
prior to calling
8<------------------------
extlconv = localeconv();
8<------------------------
5/ The attached fixes the issue for me on pg10 and passes check-world.
Comments?
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Attachment | Content-Type | Size |
---|---|---|
20230610-plperl_locale_issue-000.patch | text/x-patch | 1.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2023-06-10 18:42:54 | Re: BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG |
Previous Message | Joe Conway | 2023-06-10 02:10:20 | Re: BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG |
From | Date | Subject | |
---|---|---|---|
Next Message | Hannu Krosing | 2023-06-10 18:01:47 | Re: Let's make PostgreSQL multi-threaded |
Previous Message | jian he | 2023-06-10 15:51:30 | Re: Do we want a hashset type? |