Re: Broken --dry-run mode in pg_rewind

From: Vladimir Borodin <root(at)simply(dot)name>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Stephen Frost <sfrost(at)snowman(dot)net>
Subject: Re: Broken --dry-run mode in pg_rewind
Date: 2015-05-08 15:09:42
Message-ID: 17595D55-9F35-4D62-BBD3-40BDC1BFA16D@simply.name
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


> 8 мая 2015 г., в 16:39, Vladimir Borodin <root(at)simply(dot)name> написал(а):
>
>>
>> 8 мая 2015 г., в 16:11, Stephen Frost <sfrost(at)snowman(dot)net <mailto:sfrost(at)snowman(dot)net>> написал(а):
>>
>> * Heikki Linnakangas (hlinnaka(at)iki(dot)fi <mailto:hlinnaka(at)iki(dot)fi>) wrote:
>>> On 05/08/2015 03:39 PM, Michael Paquier wrote:
>>>> On Fri, May 8, 2015 at 9:34 PM, Heikki Linnakangas <hlinnaka(at)iki(dot)fi <mailto:hlinnaka(at)iki(dot)fi>> wrote:
>>>>> On 05/08/2015 03:25 PM, Vladimir Borodin wrote:
>>>>>> Seems, that pg_rewind does not account --dry-run option properly. A simple
>>>>>> fix
>>>>>> for that is attached.
>>>>>
>>>>>
>>>>> No, the --dry-run takes effect later. It performs all the actions it
>>>>> normally would, including reading files from the source, except for actually
>>>>> writing anything in the target. See the dry-run checks in file_ops.c
>
> Urgh, my test script had an error and I made grep only in pg_rewind.c. Sorry for noise.
>
>>>>
>>>> Even if the patch sent is incorrect, shouldn't there be some process
>>>> bypass in updateControlFile() and createBackupLabel() in case of a
>>>> --dry-run?
>>>
>>> They both use open_target_file() and write_target_file(), which
>>> check for --dry-run and do nothing if it's set.
>>>
>>> Hmm, I wonder it we should print something else than "Done!" at the
>>> end, if run in --dry-run mode. Or give some indication around the
>>> time it says "Rewinding from last common checkpoint at ...", that
>>> it's running in dry-run mode and won't actually modify anything. The
>>> progress messages are a bit alarming if you don't realize that it's
>>> skipping all the writes.
>
> That would be really nice.

Added comments in all places mentioned in this thread.

>
>>
>> Wouldn't hurt to also augment that rather doom-looking "point of no
>> return" comment with a note that says writes won't happen if in
>> dry-run. :)
>>
>> For my 2c anyway.
>>
>> Thanks!
>>
>> Stephen
>
>
> --
> May the force be with you…
> https://simply.name <https://simply.name/>

--
May the force be with you…
https://simply.name

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Christian Ullrich 2015-05-08 15:18:52 Re: transforms vs. CLOBBER_CACHE_ALWAYS
Previous Message Andres Freund 2015-05-08 15:03:40 Re: INSERT ... ON CONFLICT UPDATE/IGNORE 4.0