Re: pg_recvlogical prints bogus error when interrupted
От | Andres Freund |
---|---|
Тема | Re: pg_recvlogical prints bogus error when interrupted |
Дата | |
Msg-id | 20221027231139.lqsjrtwpqhemepwo@awork3.anarazel.de обсуждение исходный текст |
Ответ на | Re: pg_recvlogical prints bogus error when interrupted (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>) |
Ответы |
Re: pg_recvlogical prints bogus error when interrupted
|
Список | pgsql-hackers |
Hi, On 2022-10-24 08:15:11 +0530, Bharath Rupireddy wrote: > I came up with the attached v2 patch, please have a look. Thanks for working on this! > + /* When we get SIGINT/SIGTERM, we exit */ > + if (ready_to_exit) > + { > + /* > + * Try informing the server about our exit, but don't wait around > + * or retry on failure. > + */ > + (void) PQputCopyEnd(conn, NULL); > + (void) PQflush(conn); > + time_to_abort = ready_to_exit; This doesn't strike me as great - because the ready_to_exit isn't checked in the loop around StreamLogicalLog(), we'll reconnect if something else causes StreamLogicalLog() to return. Why do we need both time_to_abort and ready_to_exit? Perhaps worth noting that time_to_abort is still an sig_atomic_t, but isn't modified in a signal handler, which seems a bit unnecessarily confusing. Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: