aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/async.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-09-23 17:16:51 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2010-09-23 17:16:51 -0400
commita959c67cb73cf7cfe8b368632062c625c0e01858 (patch)
tree1f8a0f5b378598493bea6c03d3f90346b08a0957 /src/backend/commands/async.c
parent660fbec560335292db9e05e4ad5d46437bb806bc (diff)
downloadpostgresql-a959c67cb73cf7cfe8b368632062c625c0e01858.tar.gz
postgresql-a959c67cb73cf7cfe8b368632062c625c0e01858.zip
ProcessIncomingNotify *must* reset notifyInterruptOccurred when called.
This was broken in 9.0 by careless addition of an early-exit path. Bug report and diagnosis by Jeff Davis.
Diffstat (limited to 'src/backend/commands/async.c')
-rw-r--r--src/backend/commands/async.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c
index 9ff00b768cd..a9923341147 100644
--- a/src/backend/commands/async.c
+++ b/src/backend/commands/async.c
@@ -2090,7 +2090,10 @@ ProcessIncomingNotify(void)
{
bool catchup_enabled;
- /* Do nothing if we aren't actively listening */
+ /* We *must* reset the flag */
+ notifyInterruptOccurred = 0;
+
+ /* Do nothing else if we aren't actively listening */
if (listenChannels == NIL)
return;
@@ -2102,8 +2105,6 @@ ProcessIncomingNotify(void)
set_ps_display("notify interrupt", false);
- notifyInterruptOccurred = 0;
-
/*
* We must run asyncQueueReadAllNotifications inside a transaction, else
* bad things happen if it gets an error.