From: | "Marshall, Steve" <smarshall(at)wsi(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Subject: | Re: pg_listener entries deleted under heavy NOTIFY load only on Windows |
Date: | 2009-02-03 19:43:25 |
Message-ID: | 49889E5D.8020306@wsi.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
I've completed my test for changes to the Windows implementation of
pgkill. I ran two clients constantly doing a pair of notifications,
with one client subscribing to those events. I ran the test for 90
hours. I found 760 cases where the CallNamedPipe function initially
failed, but succeeded after recalling. In all but one of those cases,
only a single retry was needed; the other case required two retries.
As Tom has pointed out, there is no principled way to determine the
correct number of times to retry. Therefore, I have set the maximum
number of retries to 2, which is the worst case found in a fairly long
stress test. This strikes me as a reasonable balance between failing
quickly in truly erroneous cases, while still avoiding transient
pseudo-failures.
A patch with this change is attached. It should be applied to the
8.3.5 version of src/port/kill.c
Steve
Attachment | Content-Type | Size |
---|---|---|
kill.c.notify_dropping_patch | text/plain | 1.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2009-02-04 18:32:47 | Re: [HACKERS] BUG #4516: FOUND variable does not work after RETURN QUERY |
Previous Message | Joshua Tolley | 2009-02-03 18:45:23 | Re: Behavior of identically-named savepoints |