Re: BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1)
От | Clemens Zeidler |
---|---|
Тема | Re: BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1) |
Дата | |
Msg-id | 45a5a8c0-da4c-31f7-0bf9-23a622bc44e6@sussol.net обсуждение исходный текст |
Ответ на | Re: BUG #17299: Exit code 3 when open connections concurrently (PQisthreadsafe() == 1) (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
Thanks Tom, With "C" local you meant running: > LANGUAGE=C ./my_app right? unfortunately this didn't give any better errors when crashing... I had a look at the memory of the crashed process and the second arg for libintl_dcigettext points to a string in memory: 'connection to server at "%s" (%s), port %s failed:' which is the same what my app prints when it is not crashing, e.g. 'Failed to initialize connection 1: connection to server at "localhost" (::1), port 5432 failed: fe_sendauth: no password supplied' So it seems we are on the right track (?). Is this of any further help or should I continue looking in in libintl? that's part of glib, is it? Regards Clemens On 26/11/21 9:57 am, Tom Lane wrote: > 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 по дате отправления: