Re: Undetected Deadlock
Simon Riggs <simon.riggs@enterprisedb.com>
From: Simon Riggs <simon.riggs@enterprisedb.com>
To: Michael Harris <harmic@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@alvh.no-ip.org>, pgsql-general@lists.postgresql.org
Date: 2022-02-10T07:00:17Z
Lists: pgsql-general
On Wed, 9 Feb 2022 at 23:50, Michael Harris <harmic@gmail.com> wrote: > > On Mon, 7 Feb 2022 at 09:57, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Do you want to try this and see if it actually adds any robustness with your buggy code? > > Sorry for the delayed response, & thanks for the patch. > > I wasn't able to test with our actual application because it could > take days for it to actually trigger the problem, so I tested it with > a simulation, which you can find here: > > https://github.com/harmic/pg_almloss Thanks for writing a test case. Could you specify the licence of that as The PostgreSQL Licence, to allow it to be used as a permanent test case? We can add other misbehaviors as well, as needed. > With that simulation I could attach gdb to the backend and see that > signal_pending & signal_due_at were being reset in the expected way, > even when a missed interrupt was triggered. > > I'm convinced your patch improves robustness under the scenario we saw. Cool, thanks -- Simon Riggs http://www.EnterpriseDB.com/
Commits
-
Make timeout.c more robust against missed timer interrupts.
- d37776e451e3 15.0 landed
- 2e211c16612a 14.3 landed
-
Improve timeout.c's handling of repeated timeout set/cancel.
- 09cf1d522676 14.0 cited