Fix a thinko introduced into CountActiveBackends by a recent patch:
authorTom Lane <[email protected]>
Wed, 29 Jul 2009 15:57:23 +0000 (15:57 +0000)
committerTom Lane <[email protected]>
Wed, 29 Jul 2009 15:57:23 +0000 (15:57 +0000)
we should ignore NULL array entries, not non-NULL ones.  This had the
effect of disabling commit_delay, and could have caused a crash in the
rare race condition the patch was intended to fix.

Bug report and diagnosis by Jeff Janes, in bug #4952.

src/backend/storage/ipc/procarray.c

index a9ae969f31eea6b8a75ac03ba42a17e358c0c599..94459cc1993fd7d565122237eb8374f98912dce4 100644 (file)
@@ -23,7 +23,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.40.2.1 2009/03/31 05:18:39 heikki Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.40.2.2 2009/07/29 15:57:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1101,7 +1101,7 @@ CountActiveBackends(void)
         * the free list and are recycled. Its contents are nonsense in that
         * case, but that's acceptable for this function.
         */
-       if (proc != NULL)
+       if (proc == NULL)
            continue;
 
        if (proc == MyProc)