pgsql: Handle WAIT_IO_COMPLETION return from WaitForMultipleObjectsEx()

From: Noah Misch <noah(at)leadboat(dot)com>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Handle WAIT_IO_COMPLETION return from WaitForMultipleObjectsEx()
Date: 2014-07-25 22:53:26
Message-ID: E1XAoMg-0006hj-LZ@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Handle WAIT_IO_COMPLETION return from WaitForMultipleObjectsEx().

This return code is possible wherever we pass bAlertable = TRUE; it
arises when Windows caused the current thread to run an "I/O completion
routine" or an "asynchronous procedure call". PostgreSQL does not
provoke either of those Windows facilities, hence this bug remaining
largely unnoticed, but other local code might do so. Due to a shortage
of complaints, no back-patch for now.

Per report from Shiv Shivaraju Gowda, this bug can cause
PGSemaphoreLock() to PANIC. The bug can also cause select() to report
timeout expiration too early, which might confuse pgstat_init() and
CheckRADIUSAuth().

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/de35a9771004b9d521c9d5882db6be4fba20e80e

Modified Files
--------------
src/backend/port/win32/socket.c | 3 +-
src/backend/port/win32_sema.c | 58 +++++++++++++++++++++++----------------
2 files changed, 37 insertions(+), 24 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2014-07-25 23:49:30 pgsql: Fix a performance problem in pg_dump's dump order selection logi
Previous Message Robert Haas 2014-07-24 13:26:17 pgsql: Prevent shm_mq_send from reading uninitialized memory.