Re: kevent latch paths don't handle postmaster death well

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: kevent latch paths don't handle postmaster death well
Дата
Msg-id 3637798.1602716242@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: kevent latch paths don't handle postmaster death well  (Thomas Munro <thomas.munro@gmail.com>)
Список pgsql-hackers
Thomas Munro <thomas.munro@gmail.com> writes:
> (Hmm, I wonder about that Windows process exit event.)

If anyone wants to test that, I can save you a little time building
infrastructure, perhaps.  I used the attached program built into a .so.
After creating the function, invoke it, and once it's blocked kill -9
the postmaster.  If it successfully reports multiple WL_POSTMASTER_DEATH
results then it's good.

            regards, tom lane

/*

create function wait_on_process_latch() returns void
strict volatile language c as '.../whatever.so';

select wait_on_process_latch();

 */

#include "postgres.h"

#include "fmgr.h"
#include "miscadmin.h"
#include "storage/latch.h"
#include "pgstat.h"

PG_MODULE_MAGIC;

/*
 * wait_on_process_latch() returns void
 */
PG_FUNCTION_INFO_V1(wait_on_process_latch);
Datum
wait_on_process_latch(PG_FUNCTION_ARGS)
{
    int count = 10;

    while (count-- > 0)
    {
        int            rc;

        CHECK_FOR_INTERRUPTS();

        elog(INFO, "waiting on latch");

        rc = WaitLatch(MyLatch,
                       WL_LATCH_SET | WL_POSTMASTER_DEATH, 0,
                       WAIT_EVENT_BGWORKER_SHUTDOWN);

        if (rc & WL_POSTMASTER_DEATH)
        {
            elog(INFO, "got WL_POSTMASTER_DEATH report");
        }

        ResetLatch(MyLatch);
    }

    PG_RETURN_VOID();
}

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: Re: kevent latch paths don't handle postmaster death well
Следующее
От: Andres Freund
Дата:
Сообщение: Re: kevent latch paths don't handle postmaster death well