pgsql: shm_mq: After a send fails with SHM_MQ_DETACHED, later ones shou

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: shm_mq: After a send fails with SHM_MQ_DETACHED, later ones shou
Дата
Msg-id E1b9zb7-0003Iv-4U@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
shm_mq: After a send fails with SHM_MQ_DETACHED, later ones should too.

Prior to this patch, it was occasionally possible, after shm_mq_sendv
had previously returned SHM_MQ_DETACHED, for a later shm_mq_sendv
operation to fail an assertion instead of just again returning
SHM_MQ_ATTACHED.  From the shm_mq code's point of view, it was
expecting to be called again with the same arguments, since the
previous operation had only partially completed.  However, a caller
who isn't using non-blocking mode won't be prepared to repeat the call
with the same arguments, and this code shouldn't expect that they
will.  Repair in such a way that we'll be OK whether the next call
uses the same arguments or not.

Found by Andreas Seltenreich.  Analysis and sketch of fix by Amit
Kapila.  Patch by me, reviewed by Amit Kapila.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/44339b892a04e94bbb472235882dc6f7023bdc65

Modified Files
--------------
src/backend/storage/ipc/shm_mq.c | 32 ++++++++++++++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)


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

Предыдущее
От: Robert Haas
Дата:
Сообщение: pgsql: pg_upgrade: Don't overwrite existing files.
Следующее
От: Robert Haas
Дата:
Сообщение: pgsql: Stop the executor if no more tuples can be sent from worker to l