Patch: restrict pg_rewind to whitelisted directories

From: Chris Travers <chris(dot)travers(at)adjust(dot)com>
To: PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: Patch: restrict pg_rewind to whitelisted directories
Date: 2017-10-30 13:14:12
Message-ID: CAN-RpxD1Mg4KAhPBx8x9sFmeVizdY1aJvv0iE25m6dKUNG_H8g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox
Thread:
Lists: pgsql-hackers

The attached patch is cleaned up and filed for the commit fest this next
month:

Here's the full commit message via Mercurial. I will likely have a new
branch per version the patch since that's the closest thing to a rebase in
this version control system.

changeset: 60492:47f87a2d2fa1

tag: mine/pg_rewind_restrict_dirs

parent: 60446:e638ba9c3c11

user: Chris Travers <chris(dot)travers(at)gmail(dot)com>

date: Mon Oct 30 12:25:18 2017 +0100

files: doc/src/sgml/ref/pg_rewind.sgml src/bin/pg_rewind/copy_fetch.c
src/bin/pg_rewind/fetch.c src/bin/pg_rewind/fetch.h
src/bin/pg_rewind/libpq_fetch.c src/bin/pg_rewind/pg_rewind.c
src/bin/pg_rewind/t/003_extrafiles.pl

description:

Restrict pg_rewind to whitelisted directories.

This is intended to be a minimum working version and in fact builds and
passes tests.

Note that tests for extra files have been changed to reflect new behavior
and additional

debugging informnation added in to output in case of failure.

The patch iterates through a series of set directories to synchronize them
only. This improves

predictability of the complete state of the system after a rewind.

One important outstanding question here is whether we need to ensure the
possibility of backing

up other files if they exist via an --include-path command line switch
(this would not be a glob).

In the thread discussing this patch, Michael Paquier has expressed concern
about configuration

files created by extensions or other components not being copied. I could
add such a switch but

the patch is long enough, and it is unclear enough to the extent this is
needed at present, so

I am leaving it at the reviewer's discretion whether I should add this here
or submit a second

patch later to add the ability to add additional paths to the filemap.

Either way, it is worth noting that I expect to have a subsequent patch
either incorporated here or in a further submission that takes this and
adds the ability to include additional directories or files via a command
line flag. This will *not* be a shell glob but one directory or file per
invocation of the switch (similar to -t in pg_dump).

--
Best Regards,
Chris Travers
Database Administrator

Tel: +49 162 9037 210 | Skype: einhverfr | www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin

Attachment Content-Type Size
pg_rewind_restrict_dirs.v2.patch application/octet-stream 11.0 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2017-10-30 13:16:14 Re: WIP: long transactions on hot standby feedback replica / proof of concept
Previous Message Simon Riggs 2017-10-30 13:07:48 Re: MERGE SQL Statement for PG11