Re: SV: Problem with pg_notify / listen
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Noah Misch <noah@leadboat.com>
Cc: Gustavsson Mikael <mikael.gustavsson@smhi.se>,
pgsql-bugs@lists.postgresql.org,
Svensson Peter <peter.svensson@smhi.se>,
Almen Anders <anders.almen@smhi.se>
Date: 2020-11-28T19:15:11Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix a recently-introduced race condition in LISTEN/NOTIFY handling.
- f6324bbbe63c 10.16 landed
- f5de090cc175 13.2 landed
- cbc7a7a10c2d 12.6 landed
- 9c83b54a9ccd 14.0 landed
- 8a4069766079 9.6.21 landed
- 60d6c71430f9 9.5.25 landed
- 40f2fbe71ad6 11.11 landed
-
Prevent concurrent SimpleLruTruncate() for any given SLRU.
- d4031d78460c 11.10 cited
Noah Misch <noah@leadboat.com> writes: > On Fri, Nov 27, 2020 at 11:03:40PM -0500, Tom Lane wrote: >> Hmm, it's not very clear what "stop" means here. What do you think of >> QUEUE_OLDEST_PAGE? > QUEUE_OLDEST_PAGE is fine. I like it a little less than QUEUE_STOP_PAGE, > because oldestClogXid is a logical tail, and QUEUE_OLDEST_PAGE would be a > physical tail. I went with QUEUE_STOP_PAGE. In further testing, I noted that the patch as I had it re-introduced the symptom that 8b7ae5a82 fixed, that running "make installcheck" twice in a row causes the async-notify isolation test to fail. That's because I'd changed asyncQueueUsage() to measure the distance back to the physical tail, which isn't stable because we only truncate after crossing an SLRU segment boundary. So I reverted it to measuring the distance to QUEUE_TAIL. You could argue either way about which definition is more useful to end users, perhaps; but in practice the difference should usually be too small to matter, for everyone except regression tests that are looking for distance exactly zero. Anyhow, pushed with that fix. Mikael, it appears that you have three options: revert to 11.9 until 11.11 is out, restart your server every time it approaches notify-queue-full, or apply this patch: https://git.postgresql.org/gitweb/?p=postgresql.git;a=patch;h=40f2fbe71ad615a2bcaaf5b840ccb9329e4378aa regards, tom lane