Re: Two pg_rewind patches (auto generate recovery conf and ensure clean shutdown)
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Alexey Kondratov <a.kondratov@postgrespro.ru>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Paul Guo <pguo@pivotal.io>, Thomas Munro <thomas.munro@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Jimmy Yih <jyih@pivotal.io>, Ashwin Agrawal <aagrawal@pivotal.io>
Date: 2019-10-07T01:06:51Z
Lists: pgsql-hackers
Attachments
- rewind-new-tests.patch (text/x-diff) patch
On Fri, Oct 04, 2019 at 05:21:25PM +0300, Alexey Kondratov wrote: > I've checked your patch, but it seems that it cannot be applied as is, since > it e.g. adds a comment to 005_same_timeline.pl without actually changing the > test. So I've slightly modified your patch and tried to fit both dry-run and > ensureCleanShutdown testing together. It works just fine and fails > immediately if any of recent fixes is reverted. I still think that dry-run > testing is worth adding, since it helped to catch this v12 refactoring > issue, but feel free to throw it way if it isn't commitable right now, of > course. I can guarantee the last patch I sent can be applied on top of HEAD: https://www.postgresql.org/message-id/20191004083721.GA1829@paquier.xyz It would be nice to add the --dry-run part, though I think that we could just make that part of one of the existing tests, and stop the target server first (got to think about that part, please see below). > As for incompatible options and sanity checks testing, yes, I agree that it > is a matter of different patch. I attached it as a separate WIP patch just > for history. Maybe I will try to gather more cases there later. Thanks. I have applied the first patch for the various improvements around --no-ensure-shutdown. Regarding the rest, I have hacked my way through as per the attached. The previous set of patches did the following, which looked either overkill or not necessary: - Why running test 005 with the remote mode? - --dry-run coverage is basically the same with the local and remote modes, so it seems like a waste of resource to run it for all the tests and all the modes. I tend to think that this would live better as part of another existing test, only running for say the local mode. It is also possible to group all your tests from patch 2 and 006_actions.pl in this area. - There is no need for the script checking for options combinations to initialize a data folder. It is important to design the tests to be cheap and meaningful. Patch v3-0002 also had a test to make sure that the source server is shut down cleanly before using it. I have included that part as well, as the flow feels right. So, Alexey, what do you think? -- Michael
Commits
-
Improve test coverage of pg_rewind
- 55ba56415bae 13.0 landed
-
Improve handling and coverage of --no-ensure-shutdown in pg_rewind
- caa078353ecd 13.0 landed
-
Fix issues in pg_rewind with --no-ensure-shutdown/--write-recovery-conf
- 6837632b758e 13.0 landed
-
Fix --dry-run mode of pg_rewind
- c2e3b311d9ef 12.1 landed
- 6f3823b03560 13.0 landed
-
pg_rewind: test new --write-recovery-conf functionality
- 7524c788743f 13.0 landed
-
pg_rewind: Allow writing recovery configuration
- 927474ce1a24 13.0 landed
-
Have pg_rewind run crash recovery before rewinding
- 5adafaf176d0 13.0 landed
-
Split out recovery confing-writing code from pg_basebackup
- caba97a9d9f4 13.0 landed
-
Switch TAP tests of pg_rewind to use non-superuser role, take two
- d9f543e9e9be 12.0 cited