Wrong defeinition of pq_putmessage_noblock since 9.5

Поиск
Список
Период
Сортировка
От Kyotaro HORIGUCHI
Тема Wrong defeinition of pq_putmessage_noblock since 9.5
Дата
Msg-id 20160728.185228.58375982.horiguchi.kyotaro@lab.ntt.co.jp
обсуждение исходный текст
Ответы Re: Wrong defeinition of pq_putmessage_noblock since 9.5  (Fujii Masao <masao.fujii@gmail.com>)
Список pgsql-hackers
Hello,

While testing replication for 9.5, we found that repl-master can
ignore wal_sender_timeout and seemingly waits for TCP
retransmission timeout for the case of sudden power-off of a
standby.

My investigation told me that the immediate cause could be that
secure_write() is called with *blocking mode* (that is,
port->noblock = false) under *pq_putmessage_noblock* macro called
from XLogSendPhysical().

libpq.h of 9.5 and newer defines it as the following,

> #define pq_putmessage(msgtype, s, len) \
>     (PqCommMethods->putmessage(msgtype, s, len))
> #define pq_putmessage_noblock(msgtype, s, len) \
>     (PqCommMethods->putmessage(msgtype, s, len))

which is apparently should be the following.

> #define pq_putmessage_noblock(msgtype, s, len) \
>     (PqCommMethods->putmessage_noblock(msgtype, s, len))

The attached patch fixes it.

regards,

-- 
Kyotaro Horiguchi
NTT Open Source Software Center

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

Предыдущее
От: Artur Zakirov
Дата:
Сообщение: pg_upgrade: exit_hook_registered variable
Следующее
От: Kyotaro HORIGUCHI
Дата:
Сообщение: Re: pg_upgrade: exit_hook_registered variable