Fix NOTIFY to cope with I/O problems, such as out-of-disk-space.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 3ac860f6b33ffa0733d4d013718c5f408282fcb6
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2012-06-29T04:51:44Z
Releases: 9.1.5
Fix NOTIFY to cope with I/O problems, such as out-of-disk-space.

The LISTEN/NOTIFY subsystem got confused if SimpleLruZeroPage failed,
which would typically happen as a result of a write() failure while
attempting to dump a dirty pg_notify page out of memory.  Subsequently,
all attempts to send more NOTIFY messages would fail with messages like
"Could not read from file "pg_notify/nnnn" at offset nnnnn: Success".
Only restarting the server would clear this condition.  Per reports from
Kevin Grittner and Christoph Berg.

Back-patch to 9.0, where the problem was introduced during the
LISTEN/NOTIFY rewrite.

Files

PathChange+/−
src/backend/commands/async.c modified +22 −5