Re: Re: [COMMITTERS] pgsql: Perform only one ReadControlFile() during startup.
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org
Date: 2017-09-18T10:32:13Z
Lists: pgsql-hackers
Attachments
- 0001-Add-tests-for-postmaster-crash-restarts.patch (text/x-diff)
On 2017-09-17 01:07:52 -0700, Andres Freund wrote: > On 2017-09-16 13:27:05 -0700, Andres Freund wrote: > > > This does not seem like a problem that justifies a system-wide change > > > that's much more delicate than you thought. > > > > We need one more initialization call during crash-restart - that doesn't > > seem particularly hard a fix. > > FWIW, attached is that simple fix. Not quite ready for commit - needs > more comments, thoughts and a glass of wine less to commit. > > I'll try to come up with a tap test that tests crash restarts tomorrow - > not sure if there's a decent way to trigger one on windows without > writing a C function. Will play around with that tomorrow. This took a bit longer than I anticipated. Attached. There's surprisingly many issues with timing that make this not as easy as I hoped. I think in later commits we should extend this to cover things like the autovacuum / stats process / ... being killed - but that seems like material for a separate commit. One thing that I've noticed for a while, but that I was reminded of again here. We very frequently allow psql to reconnect in case of crash, just for postmaster to notice a child has gone and kill that session. I don't recall that frequently happening, but these days it happens nearly every time. Regards, Andres
Commits
-
Add test for postmaster crash restarts.
- a1924a4ea293 11.0 landed
-
Fix crash restart bug introduced in 8356753c212.
- ec9e05b3c392 11.0 landed
-
Perform only one ReadControlFile() during startup.
- 8356753c212a 11.0 cited