Re: Aw: BUG #18312: libpq: PQsetdbLogin() not thread-safe

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Christian Maurer <c(dot)maurer(at)gmx(dot)at>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: Aw: BUG #18312: libpq: PQsetdbLogin() not thread-safe
Date: 2024-02-02 15:48:56
Message-ID: 3154181.1706888936@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Christian Maurer <c(dot)maurer(at)gmx(dot)at> writes:
> I managed to capture a stack trace for the crash via WinDbg:
>  
> Frame Index      Call Site                                   Child-SP        Return Address
> [0x0]         ntdll!NtTerminateProcess+0x14            0x18aa9fdf88   0x7fffce3cda98
> [0x1]         ntdll!RtlExitUserProcess+0xb8            0x18aa9fdf90   0x7fffcd99e82b
> [0x2]         KERNEL32!ExitProcessImplementation+0xb   0x18aa9fdfc0   0x7fffcd42a155
> [0x3]         msvcrt!_crtExitProcess+0x15              0x18aa9fdff0   0x7fffcd42a7c5
> [0x4]         msvcrt!doexit+0x171                      0x18aa9fe020   0x7fffcd41f26d
> [0x5]         msvcrt!abort+0x8d                        0x18aa9fe090   0x68281886
> [0x6]         libintl_9!libintl_bindtextdomain+0x56    0x18aa9fe640   0x7fff7dcd2e93
> [0x7]         LIBPQ!PQenv2encoding+0x1193              0x18aa9fe670   0x7fff7dcd2c9e

Hm, so it's bindtextdomain() that is aborting. Back at [1]
I wondered whether we needed to introduce a critical section
to prevent multiple threads from calling that concurrently,
even though its docs allege you shouldn't have to. Perhaps
it's thread-safe except on Windows?

regards, tom lane

[1] https://www.postgresql.org/message-id/flat/CAE7q7Eit4Eq2%3Dbxce%3DFm8HAStECjaXUE%3DWBQc-sDDcgJQ7s7eg%40mail.gmail.com

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Robert Haas 2024-02-02 15:49:17 Re: "unexpected duplicate for tablespace" problem in logical replication
Previous Message Laurenz Albe 2024-02-02 15:16:57 Re: BUG #18324: Duplicate value when I insert values in PK column