Re: BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1) - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1)
Date
Msg-id 321837.1637873852@sss.pgh.pa.us
Whole thread Raw
In response to BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1)  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1)
List pgsql-bugs
PG Bug reporting form <noreply@postgresql.org> writes:
> We ran into a problem that came up when using diesel-rs to connect to
> postgres. The used connection manager spins up connections concurrently on
> startup. On Windows 10, the app startup of the client fails occasionally
> (thread problem?). The issue can be reproduced in a minimal bin which just
> tries to open 10 connections concurrently (see link *).

I don't know why there'd be such a limit - some weird Windows limitation,
perhaps?  Anyway, the immediate failure seems to be in libintl's gettext
support:

> 04 00007ffa`4f98f2fd     : 00000281`eeb36fe0 00000281`eeb36be0
> 00000281`00000000 00000281`eeb21170 : msvcrt!doexit+0x171
> 05 00000000`68284fe3     : 00000000`00000000 00000000`00000000
> 00000000`00000000 00000000`00000000 : msvcrt!abort+0x8d
> 06 00000000`6828190c     : 00000001`80029288 00000001`80027680
> 00000000`00000000 000000ec`00000000 : libintl_9!libintl_dcigettext+0x643
> 07 00000001`80008313     : 0000212a`1a4222ff 000000ec`7c7fe988
> 00000281`eeb53be0 00007ffa`51e1b9c2 : libintl_9!libintl_dcgettext+0x1c
> 08 00000001`8000387e     : 00000281`eeb21170 00000281`eeb48dc0
> 00000281`eeb21170 00000281`eeb3fdd0 : LIBPQ!PQpingParams+0x2933
> 09 00000001`8000603c     : 00000000`00000000 00000281`eeb21170
> 00000281`eeb01ad0 00000281`eeafc450 : LIBPQ!PQconnectPoll+0x63e
> 0a 00000001`80003168     : 00000281`eeb21170 00000281`eeb01ad0

Maybe you'd be able to get a usable error message if you run the
app under some other locale --- I'd try "C" locale for starters.

gettext() really is not supposed to ever crash like that (at worst,
it's supposed to return the original string if it fails to localize it).
So I think you have grounds for a bug report to the libintl maintainers,
independently of what exactly is causing libpq to want to get a translated
message.

            regards, tom lane



pgsql-bugs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: BUG #17298: Error in func pg_get_serial_sequence()
Next
From: Clemens Zeidler
Date:
Subject: Re: BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1)