Re: pause recovery if pitr target not reached

Peter Eisentraut <[email protected]> Tue, 14 Jan 2020 21:13:51 +0100
Newsgroups gmane.comp.db.postgresql.devel.general
Organization 2ndQuadrant
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------2D336B47155609F90376D82C
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2019-12-11 12:40, Leif Gunnar Erlandsen wrote:
> Adding patch written for 13dev from git
> 
> "Michael Paquier" <[email protected]> skrev 1. desember 2019 kl. 03:08:
> 
>> On Fri, Nov 22, 2019 at 11:26:59AM +0000, Leif Gunnar Erlandsen wrote:
>>
>>> No it does not. It works well to demonstrate its purpose though.
>>> And it might be to stop with FATAL would be more correct.
>>
>> This is still under active discussion. Please note that the latest
>> patch does not apply, so a rebase would be nice to have. I have moved
>> the patch to next CF, waiting on author.

I reworked your patch a bit.  I changed the outcome to be an error, as 
was discussed.  I also added tests and documentation.  Please take a look.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--------------2D336B47155609F90376D82C
Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
 name="v5-0001-Fail-if-recovery-target-is-not-reached.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="v5-0001-Fail-if-recovery-target-is-not-reached.patch"

RnJvbSAwODUwZGUzOTIyODU0ZWNkZDQyNDlmOThlYTg1NGFmZDZlY2M5YWUyIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy
YXV0Lm9yZz4KRGF0ZTogVHVlLCAxNCBKYW4gMjAyMCAyMTowMToyNiArMDEwMApTdWJqZWN0
OiBbUEFUQ0ggdjVdIEZhaWwgaWYgcmVjb3ZlcnkgdGFyZ2V0IGlzIG5vdCByZWFjaGVkCgpC
ZWZvcmUsIGlmIGEgcmVjb3ZlcnkgdGFyZ2V0IGlzIGNvbmZpZ3VyZWQsIGJ1dCB0aGUgYXJj
aGl2ZSBlbmRlZApiZWZvcmUgdGhlIHRhcmdldCB3YXMgcmVhY2hlZCwgcmVjb3Zlcnkgd291
bGQgZW5kIGFuZCB0aGUgc2VydmVyIHdvdWxkCnByb21vdGUgd2l0aG91dCBmdXJ0aGVyIG5v
dGljZS4gIFRoYXQgd2FzIGRlZW1lZCB0byBiZSBwcmV0dHkgd3JvbmcuCldpdGggdGhpcyBj
aGFuZ2UsIGlmIHRoZSByZWNvdmVyeSB0YXJnZXQgaXMgbm90IHJlYWNoZWQsIGl0IGlzIGEg
ZmF0YWwKZXJyb3IuCgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9t
ZXNzYWdlLWlkL2ZsYXQvOTkzNzM2ZGQzZjE3MTNlYzFmNjNmYzNiNjUzODM5ZjVAbGFrby5u
bwotLS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAg
NSArKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgfCAx
OSArKysrKysrKysKIHNyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtICAgICAgICAgICAg
ICAgfCAzMyArKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3JlY292ZXJ5L3QvMDAzX3JlY292
ZXJ5X3RhcmdldHMucGwgfCA0NSArKysrKysrKysrKysrKysrKysrKy0KIDQgZmlsZXMgY2hh
bmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k
b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5k
ZXggNWQ0NWI2ZjdjYi4uMzg1Y2NjNzE5NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Nv
bmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMzU3MSw2ICsz
NTcxLDExIEBAIDx0aXRsZT5SZWNvdmVyeSBUYXJnZXQ8L3RpdGxlPgogICAgICAgICBJZiA8
eHJlZiBsaW5rZW5kPSJndWMtaG90LXN0YW5kYnkiLz4gaXMgbm90IGVuYWJsZWQsIGEgc2V0
dGluZyBvZgogICAgICAgICA8bGl0ZXJhbD5wYXVzZTwvbGl0ZXJhbD4gd2lsbCBhY3QgdGhl
IHNhbWUgYXMgPGxpdGVyYWw+c2h1dGRvd248L2xpdGVyYWw+LgogICAgICAgIDwvcGFyYT4K
KyAgICAgICA8cGFyYT4KKyAgICAgICAgSW4gYW55IGNhc2UsIGlmIGEgcmVjb3ZlcnkgdGFy
Z2V0IGlzIGNvbmZpZ3VyZWQgYnV0IHRoZSBhcmNoaXZlCisgICAgICAgIHJlY292ZXJ5IGVu
ZHMgYmVmb3JlIHRoZSB0YXJnZXQgaXMgcmVhY2hlZCwgdGhlIHNlcnZlciB3aWxsIHNodXQg
ZG93bgorICAgICAgICB3aXRoIGEgZmF0YWwgZXJyb3IuCisgICAgICAgPC9wYXJhPgogICAg
ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3Ny
Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90
cmFuc2FtL3hsb2cuYwppbmRleCA3ZjRmNzg0YzBlLi40M2E3OGUzNjVkIDEwMDY0NAotLS0g
YS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQv
YWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC03MzAzLDYgKzczMDMsMTUgQEAgU3RhcnR1cFhM
T0codm9pZCkKIAkJCQkJCWJyZWFrOwogCQkJCX0KIAkJCX0KKwkJCWVsc2UgaWYgKHJlY292
ZXJ5VGFyZ2V0ICE9IFJFQ09WRVJZX1RBUkdFVF9VTlNFVCkKKwkJCXsKKwkJCQkvKgorCQkJ
CSAqIEEgcmVjb3ZlcnkgdGFyZ2V0IHdhcyBzZXQgYnV0IHdlIGdvdCBoZXJlIHdpdGhvdXQg
dGhlCisJCQkJICogdGFyZ2V0IGJlaW5nIHJlYWNoZWQuCisJCQkJICovCisJCQkJZXJlcG9y
dChGQVRBTCwKKwkJCQkJCShlcnJtc2coInJlY292ZXJ5IGVuZGVkIGJlZm9yZSBjb25maWd1
cmVkIHJlY292ZXJ5IHRhcmdldCB3YXMgcmVhY2hlZCIpKSk7CisJCQl9CiAKIAkJCS8qIEFs
bG93IHJlc291cmNlIG1hbmFnZXJzIHRvIGRvIGFueSByZXF1aXJlZCBjbGVhbnVwLiAqLwog
CQkJZm9yIChybWlkID0gMDsgcm1pZCA8PSBSTV9NQVhfSUQ7IHJtaWQrKykKQEAgLTczMjQs
NiArNzMzMywxNiBAQCBTdGFydHVwWExPRyh2b2lkKQogCQl9CiAJCWVsc2UKIAkJeworCQkJ
aWYgKHJlY292ZXJ5VGFyZ2V0ICE9IFJFQ09WRVJZX1RBUkdFVF9VTlNFVCkKKwkJCXsKKwkJ
CQkvKgorCQkJCSAqIEEgcmVjb3ZlcnkgdGFyZ2V0IHdhcyBzZXQgYnV0IHdlIGdvdCBoZXJl
IHdpdGhvdXQgdGhlCisJCQkJICogdGFyZ2V0IGJlaW5nIHJlYWNoZWQuCisJCQkJICovCisJ
CQkJZXJlcG9ydChGQVRBTCwKKwkJCQkJCShlcnJtc2coInJlY292ZXJ5IGVuZGVkIGJlZm9y
ZSBjb25maWd1cmVkIHJlY292ZXJ5IHRhcmdldCB3YXMgcmVhY2hlZCIpKSk7CisJCQl9CisK
IAkJCS8qIHRoZXJlIGFyZSBubyBXQUwgcmVjb3JkcyBmb2xsb3dpbmcgdGhlIGNoZWNrcG9p
bnQgKi8KIAkJCWVyZXBvcnQoTE9HLAogCQkJCQkoZXJybXNnKCJyZWRvIGlzIG5vdCByZXF1
aXJlZCIpKSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbSBi
L3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCmluZGV4IDJlMGNmNGEyZjMuLmJlNDRl
ODc4NGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCisrKyBi
L3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCkBAIC02NTMsNiArNjUzLDkgQEAgUmVz
dG9yaW5nIFdBTCBzZWdtZW50cyBmcm9tIGFyY2hpdmVzIHVzaW5nIHJlc3RvcmVfY29tbWFu
ZCBjYW4gYmUgZW5hYmxlZAogYnkgcGFzc2luZyB0aGUga2V5d29yZCBwYXJhbWV0ZXIgaGFz
X3Jlc3RvcmluZyA9PiAxLiBUaGlzIGlzIGRpc2FibGVkIGJ5CiBkZWZhdWx0LgogCitJcyBo
YXNfcmVzdG9yaW5nIGlzIHVzZWQsIHN0YW5kYnkgbW9kZSBpcyB1c2VkIGJ5IGRlZmF1bHQu
ICBUbyB1c2UKK3JlY292ZXJ5IG1vZGUgaW5zdGVhZCwgcGFzcyB0aGUga2V5d29yZCBwYXJh
bWV0ZXIgc3RhbmRieSA9PiAwLgorCiBUaGUgYmFja3VwIGlzIGNvcGllZCwgbGVhdmluZyB0
aGUgb3JpZ2luYWwgdW5tb2RpZmllZC4gcGdfaGJhLmNvbmYgaXMKIHVuY29uZGl0aW9uYWxs
eSBzZXQgdG8gZW5hYmxlIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb25zLgogCkBAIC02NjksNiAr
NjcyLDcgQEAgc3ViIGluaXRfZnJvbV9iYWNrdXAKIAogCSRwYXJhbXN7aGFzX3N0cmVhbWlu
Z30gPSAwIHVubGVzcyBkZWZpbmVkICRwYXJhbXN7aGFzX3N0cmVhbWluZ307CiAJJHBhcmFt
c3toYXNfcmVzdG9yaW5nfSA9IDAgdW5sZXNzIGRlZmluZWQgJHBhcmFtc3toYXNfcmVzdG9y
aW5nfTsKKwkkcGFyYW1ze3N0YW5kYnl9ID0gMSB1bmxlc3MgZGVmaW5lZCAkcGFyYW1ze3N0
YW5kYnl9OwogCiAJcHJpbnQKIAkgICIjIEluaXRpYWxpemluZyBub2RlIFwiJG5vZGVfbmFt
ZVwiIGZyb20gYmFja3VwIFwiJGJhY2t1cF9uYW1lXCIgb2Ygbm9kZSBcIiRyb290X25hbWVc
IlxuIjsKQEAgLTY5OSw3ICs3MDMsNyBAQCBwb3J0ID0gJHBvcnQKIAkJCSJ1bml4X3NvY2tl
dF9kaXJlY3RvcmllcyA9ICckaG9zdCciKTsKIAl9CiAJJHNlbGYtPmVuYWJsZV9zdHJlYW1p
bmcoJHJvb3Rfbm9kZSkgaWYgJHBhcmFtc3toYXNfc3RyZWFtaW5nfTsKLQkkc2VsZi0+ZW5h
YmxlX3Jlc3RvcmluZygkcm9vdF9ub2RlKSBpZiAkcGFyYW1ze2hhc19yZXN0b3Jpbmd9Owor
CSRzZWxmLT5lbmFibGVfcmVzdG9yaW5nKCRyb290X25vZGUsICRwYXJhbXN7c3RhbmRieX0p
IGlmICRwYXJhbXN7aGFzX3Jlc3RvcmluZ307CiAJcmV0dXJuOwogfQogCkBAIC05MzksNyAr
OTQzLDcgQEAgcHJpbWFyeV9jb25uaW5mbz0nJHJvb3RfY29ubnN0cicKICMgSW50ZXJuYWwg
cm91dGluZSB0byBlbmFibGUgYXJjaGl2ZSByZWNvdmVyeSBjb21tYW5kIG9uIGEgc3RhbmRi
eSBub2RlCiBzdWIgZW5hYmxlX3Jlc3RvcmluZwogewotCW15ICgkc2VsZiwgJHJvb3Rfbm9k
ZSkgPSBAXzsKKwlteSAoJHNlbGYsICRyb290X25vZGUsICRzdGFuZGJ5KSA9IEBfOwogCW15
ICRwYXRoID0gVGVzdExpYjo6cGVybDJob3N0KCRyb290X25vZGUtPmFyY2hpdmVfZGlyKTsK
IAlteSAkbmFtZSA9ICRzZWxmLT5uYW1lOwogCkBAIC05NjEsNyArOTY1LDMwIEBAIHN1YiBl
bmFibGVfcmVzdG9yaW5nCiAJCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKIHJlc3RvcmVfY29t
bWFuZCA9ICckY29weV9jb21tYW5kJwogKSk7Ci0JJHNlbGYtPnNldF9zdGFuZGJ5X21vZGUo
KTsKKwlpZiAoJHN0YW5kYnkpCisJeworCQkkc2VsZi0+c2V0X3N0YW5kYnlfbW9kZSgpOwor
CX0KKwllbHNlCisJeworCQkkc2VsZi0+c2V0X3JlY292ZXJ5X21vZGUoKTsKKwl9CisJcmV0
dXJuOworfQorCis9cG9kCisKKz1pdGVtICRub2RlLT5zZXRfcmVjb3ZlcnlfbW9kZSgpCisK
K1BsYWNlIHJlY292ZXJ5LnNpZ25hbCBmaWxlLgorCis9Y3V0CisKK3N1YiBzZXRfcmVjb3Zl
cnlfbW9kZQoreworCW15ICgkc2VsZikgPSBAXzsKKworCSRzZWxmLT5hcHBlbmRfY29uZign
cmVjb3Zlcnkuc2lnbmFsJywgJycpOwogCXJldHVybjsKIH0KIApkaWZmIC0tZ2l0IGEvc3Jj
L3Rlc3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3ZlcnlfdGFyZ2V0cy5wbCBiL3NyYy90ZXN0L3Jl
Y292ZXJ5L3QvMDAzX3JlY292ZXJ5X3RhcmdldHMucGwKaW5kZXggZDhmYmQ1MDAxMS4uNWUy
Y2YyMTdhNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3Zlcnlf
dGFyZ2V0cy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVyeV90YXJn
ZXRzLnBsCkBAIC0zLDcgKzMsOCBAQAogdXNlIHdhcm5pbmdzOwogdXNlIFBvc3RncmVzTm9k
ZTsKIHVzZSBUZXN0TGliOwotdXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gODsKK3VzZSBUZXN0
OjpNb3JlIHRlc3RzID0+IDEwOwordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CiAKICMg
Q3JlYXRlIGFuZCB0ZXN0IGEgc3RhbmRieSBmcm9tIGdpdmVuIGJhY2t1cCwgd2l0aCBhIGNl
cnRhaW4gcmVjb3ZlcnkgdGFyZ2V0LgogIyBDaG9vc2UgJHVudGlsX2xzbiBsYXRlciB0aGFu
IHRoZSB0cmFuc2FjdGlvbiBjb21taXQgdGhhdCBjYXVzZXMgdGhlIHJvdwpAQCAtMTQ1LDMg
KzE0Niw0NSBAQCBzdWIgdGVzdF9yZWNvdmVyeV9zdGFuZGJ5CiBteSAkbG9nZmlsZSA9IHNs
dXJwX2ZpbGUoJG5vZGVfc3RhbmRieS0+bG9nZmlsZSgpKTsKIG9rKCRsb2dmaWxlID1+IHFy
L211bHRpcGxlIHJlY292ZXJ5IHRhcmdldHMgc3BlY2lmaWVkLywKIAknbXVsdGlwbGUgY29u
ZmxpY3Rpbmcgc2V0dGluZ3MnKTsKKworIyBDaGVjayBiZWhhdmlvciB3aGVuIHJlY292ZXJ5
IGVuZHMgYmVmb3JlIHRhcmdldCBpcyByZWFjaGVkCisKKyRub2RlX3N0YW5kYnkgPSBnZXRf
bmV3X25vZGUoJ3N0YW5kYnlfOCcpOworJG5vZGVfc3RhbmRieS0+aW5pdF9mcm9tX2JhY2t1
cCgkbm9kZV9tYXN0ZXIsICdteV9iYWNrdXAnLAorCQkJCQkJCQloYXNfcmVzdG9yaW5nID0+
IDEsIHN0YW5kYnkgPT4gMCk7Ciskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdy
ZXNxbC5jb25mJywKKwkJCQkJCSAgICJyZWNvdmVyeV90YXJnZXRfbmFtZSA9ICdkb2VzX25v
dF9leGlzdCciKTsKKworcnVuX2xvZyhbJ3BnX2N0bCcsICctRCcsICRub2RlX3N0YW5kYnkt
PmRhdGFfZGlyLAorCQkgJy1sJywgJG5vZGVfc3RhbmRieS0+bG9nZmlsZSwgJ3N0YXJ0J10p
OworCisjIHdhaXQgdXAgdG8gMTAgc2Vjb25kcyBmb3IgcG9zdGdyZXMgdG8gdGVybWluYXRl
Citmb3JlYWNoIG15ICRpICgwLi4xMDApCit7CisJbGFzdCBpZiAhIC1mICRub2RlX3N0YW5k
YnktPmRhdGFfZGlyIC4gJy9wb3N0bWFzdGVyLnBpZCc7CisJdXNsZWVwKDEwMF8wMDApOwor
fQorJGxvZ2ZpbGUgPSBzbHVycF9maWxlKCRub2RlX3N0YW5kYnktPmxvZ2ZpbGUoKSk7Citv
aygkbG9nZmlsZSA9fiBxci9GQVRBTDogIHJlY292ZXJ5IGVuZGVkIGJlZm9yZSBjb25maWd1
cmVkIHJlY292ZXJ5IHRhcmdldCB3YXMgcmVhY2hlZC8sCisJJ3JlY292ZXJ5IGVuZCBiZWZv
cmUgdGFyZ2V0IHJlYWNoZWQgaXMgYSBmYXRhbCBlcnJvcicpOworCisjIGFsc28gdGVzdCB0
aGUgY2FzZSBvZiBubyByZWRvIG5lZWRlZCAoc2FtZSByZXN1bHQgYnV0IGRpZmZlcmVudCBj
b2RlIHBhdGgpCitteSAkbm9kZTIgPSBnZXRfbmV3X25vZGUoJ25vZGUyJyk7Ciskbm9kZTIt
PmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxKTsKKyRub2RlMi0+YXBwZW5kX2NvbmYoCisJ
J3Bvc3RncmVzcWwuY29uZicsICJyZWNvdmVyeV90YXJnZXRfbmFtZSA9ICdkb2VzX25vdF9l
eGlzdCcKK3Jlc3RvcmVfY29tbWFuZCA9ICdmYWxzZScKK2hvdF9zdGFuZGJ5ID0gb2ZmIik7
Ciskbm9kZTItPmFwcGVuZF9jb25mKCdyZWNvdmVyeS5zaWduYWwnLCAnJyk7CisKK3J1bl9s
b2coWydwZ19jdGwnLCAnLUQnLCAkbm9kZTItPmRhdGFfZGlyLAorCQkgJy1sJywgJG5vZGUy
LT5sb2dmaWxlLCAnc3RhcnQnXSk7CisKK2ZvcmVhY2ggbXkgJGkgKDAuLjEwMCkKK3sKKwls
YXN0IGlmICEgLWYgJG5vZGUyLT5kYXRhX2RpciAuICcvcG9zdG1hc3Rlci5waWQnOworCXVz
bGVlcCgxMDBfMDAwKTsKK30KKyRsb2dmaWxlID0gc2x1cnBfZmlsZSgkbm9kZTItPmxvZ2Zp
bGUoKSk7CitvaygkbG9nZmlsZSA9fiBxci9GQVRBTDogIHJlY292ZXJ5IGVuZGVkIGJlZm9y
ZSBjb25maWd1cmVkIHJlY292ZXJ5IHRhcmdldCB3YXMgcmVhY2hlZC8sCisJJ3JlY292ZXJ5
IGVuZCBiZWZvcmUgdGFyZ2V0IHJlYWNoZWQgaXMgYSBmYXRhbCBlcnJvciAobm8gcmVkbyBy
ZXF1aXJlZCknKTsKLS0gCjIuMjQuMQoK
--------------2D336B47155609F90376D82C--