Re: What is happening on buildfarm member baiji?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: What is happening on buildfarm member baiji?
Дата
Msg-id 12053.1179156520@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: What is happening on buildfarm member baiji?  (Magnus Hagander <magnus@hagander.net>)
Ответы Re: What is happening on buildfarm member baiji?  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-hackers
Magnus Hagander <magnus@hagander.net> writes:
> +         sprintf(mutexName,"postgresql.interlock.%i", portNumber);

That won't do; it should be legal for two postmasters to listen on
different IP addresses using the same port number.  So you need to
include some representation of the IP address being bound to.

> +         if (GetLastError() == ERROR_ALREADY_EXISTS)
> +             ereport(FATAL,
> +                     (errcode(ERRCODE_LOCK_FILE_EXISTS),
> +                      errmsg("interlock mutex \"%s\" already exists", mutexName),
> +                      errhint("Is another postgres listening on port %i", portNumber)));

ereport(FATAL) is quite inappropriate here.  Do the same thing that
bind() failure would do, ie, ereport(LOG) and continue the loop.
Also, you probably need to think about cleaning up the mutex in
case one of the later steps of socket-acquisition fails.  We should
only be holding locks on addresses we've successfully bound.
        regards, tom lane


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

Предыдущее
От: Gregory Stark
Дата:
Сообщение: Re: What is happening on buildfarm member baiji?
Следующее
От: Gregory Stark
Дата:
Сообщение: Re: What is happening on buildfarm member baiji?