Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1YqiDY-0002qc-7T for pgsql-hackers@arkaria.postgresql.org; Fri, 08 May 2015 13:21:28 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1YqiDX-0002HD-K3 for pgsql-hackers@arkaria.postgresql.org; Fri, 08 May 2015 13:21:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1YqiDV-0002H1-SJ for pgsql-hackers@postgresql.org; Fri, 08 May 2015 13:21:26 +0000 Received: from mail-wi0-x230.google.com ([2a00:1450:400c:c05::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1YqiDS-0005lw-Hh for pgsql-hackers@postgresql.org; Fri, 08 May 2015 13:21:24 +0000 Received: by wiun10 with SMTP id n10so27199166wiu.1 for ; Fri, 08 May 2015 06:21:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:reply-to:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type; bh=nQ9HVHtSHfLaZ1gSlDns2ZCVsXTZQo8J91w46oMemSs=; b=y+jLZLYb7fUkTcrqBD3Tfuy8H7ul/aTIcbGUTUCa0BsdlWR+8u+/NqFd+rQsxE7y/q GwLGYHIAPhbrS//Mhnl/fuwPo/GTeg7BMtSf5bnEKd0gdjQ+bBvPD0BP+AKBimKZMISr 2Sgc6nAS8h6qWTY00m4VQQHNDXWQQokOCBk7G8M7v9y6c976sbEfYG5isIlepB+hJyop Mb+ws7dMnIqKClU6KAqxxxPeTw2ick/dD/IxzUNy85tlFXJsxhlbD8CTb0O1XHikuXrc ckLysrNaWs6lzY9beATCNGmPB6YIGAHT205R7FUs8GqFvNtXraXFy0Qw1Mubr13ZMi7s T+VA== X-Received: by 10.194.60.164 with SMTP id i4mr7340032wjr.133.1431091281348; Fri, 08 May 2015 06:21:21 -0700 (PDT) Received: from [192.168.1.99] (dsl-hkibrasgw1-58c38f-82.dhcp.inet.fi. [88.195.143.82]) by mx.google.com with ESMTPSA id dz4sm12333145wib.17.2015.05.08.06.21.18 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 May 2015 06:21:19 -0700 (PDT) Message-ID: <554CB84E.3070406@iki.fi> Date: Fri, 08 May 2015 16:21:18 +0300 From: Heikki Linnakangas Reply-To: hlinnaka@iki.fi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.6.0 MIME-Version: 1.0 To: Michael Paquier CC: Robert Haas , Venkata Balaji N , Andres Freund , Fujii Masao , Borodin Vladimir , PostgreSQL-development Subject: Re: Streaming replication and WAL archive interactions References: <548AF1CB.80702@vmware.com> <689EB259-44C2-4820-B901-4F6B1C55A1E4@simply.name> <549083D6.1000301@vmware.com> <54949108.3030109@vmware.com> <552FA38F.9060005@iki.fi> <5535FE71.1010905@iki.fi> <55362CAD.2000207@iki.fi> <553741FE.1080403@iki.fi> In-Reply-To: Content-Type: multipart/mixed; boundary="------------010407040809000301060608" X-Pg-Spam-Score: -2.4 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This is a multi-part message in MIME format. --------------010407040809000301060608 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 04/22/2015 10:07 AM, Michael Paquier wrote: > On Wed, Apr 22, 2015 at 3:38 PM, Heikki Linnakangas wrote: >> I feel that the best approach is to archive the last, partial segment, but >> with the .partial suffix. I don't see any plausible real-wold setup where >> the current behavior would be better. I don't really see much need to >> archive the partial segment at all, but there's also no harm in doing it, as >> long as it's clearly marked with the .partial suffix. > > Well, as long as it is clearly archived at promotion, even with a > suffix, I guess that I am fine... This will need some tweaking on > restore_command for existing applications, but as long as it is > clearly documented I am fine. Shouldn't this be a different patch > though? Ok, I came up with the attached, which adds the .partial suffix to the partial WAL segment that's archived after promotion. I couldn't find any natural place to talk about it in the docs, though. I think after the docs changes from the main patch are applied, it would be natural to mention this in the "Continuous archiving in standby", so I think I'll add that later. Barring objections, I'll push this later tonight. Now that we got this last-partial-segment problem out of the way, I'm going to try fixing the problem you (Michael) pointed out about relying on pgstat file. Meanwhile, I'd love to get more feedback on the rest of the patch, and the documentation. - Heikki --------------010407040809000301060608 Content-Type: application/x-patch; name="0001-Add-macros-to-check-if-a-filename-is-a-WAL-segment-o.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-macros-to-check-if-a-filename-is-a-WAL-segment-o.pa"; filename*1="tch" RnJvbSAxNWMxMjMxNDFkMWVlZjBkNmIwNWEzODRkMWM1YzIwMmZmYTA0YTg0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFr YW5nYXMgPGhlaWtraS5saW5uYWthbmdhc0Bpa2kuZmk+CkRhdGU6IEZyaSwg OCBNYXkgMjAxNSAxMjowNDo0NiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMS8y XSBBZGQgbWFjcm9zIHRvIGNoZWNrIGlmIGEgZmlsZW5hbWUgaXMgYSBXQUwg c2VnbWVudCBvcgogb3RoZXIgc3VjaCBmaWxlLgoKV2UgaGFkIG1hbnkgaW5z dGFuY2VzIG9mIHRoZSBzdHJsZW4gKyBzdHJzcG4gY29tYmluYXRpb24gdG8g Y2hlY2sgZm9yIHRoYXQuClRoaXMgbWFrZXMgdGhlIGNvZGUgYSBiaXQgZWFz aWVyIHRvIHJlYWQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jICAgICAgfCAxMSArKystLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vYmFzZWJhY2t1cC5jICAgfCAgNyArKy0tLS0tCiBzcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfcmVjZWl2ZXhsb2cuYyB8IDE2ICsrLS0tLS0t LS0tLS0tLS0KIHNyYy9iaW4vcGdfcmVzZXR4bG9nL3BnX3Jlc2V0eGxvZy5j ICAgIHwgIDggKysrKysrLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nX2lu dGVybmFsLmggICAgIHwgMTggKysrKysrKysrKysrKysrKysrCiA1IGZpbGVz IGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCA5 MjgyMmExLi41MDk3MTczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCkBAIC0zNTc3LDggKzM1NzcsNyBAQCBSZW1vdmVPbGRY bG9nRmlsZXMoWExvZ1NlZ05vIHNlZ25vLCBYTG9nUmVjUHRyIFByaW9yUmVk b1B0ciwgWExvZ1JlY1B0ciBlbmRwdHIpCiAJd2hpbGUgKCh4bGRlID0gUmVh ZERpcih4bGRpciwgWExPR0RJUikpICE9IE5VTEwpCiAJewogCQkvKiBJZ25v cmUgZmlsZXMgdGhhdCBhcmUgbm90IFhMT0cgc2VnbWVudHMgKi8KLQkJaWYg KHN0cmxlbih4bGRlLT5kX25hbWUpICE9IDI0IHx8Ci0JCQlzdHJzcG4oeGxk ZS0+ZF9uYW1lLCAiMDEyMzQ1Njc4OUFCQ0RFRiIpICE9IDI0KQorCQlpZiAo IUlzWExvZ0ZpbGVOYW1lKHhsZGUtPmRfbmFtZSkpCiAJCQljb250aW51ZTsK IAogCQkvKgpAQCAtMzY1MCw4ICszNjQ5LDcgQEAgUmVtb3ZlTm9uUGFyZW50 WGxvZ0ZpbGVzKFhMb2dSZWNQdHIgc3dpdGNocG9pbnQsIFRpbWVMaW5lSUQg bmV3VExJKQogCXdoaWxlICgoeGxkZSA9IFJlYWREaXIoeGxkaXIsIFhMT0dE SVIpKSAhPSBOVUxMKQogCXsKIAkJLyogSWdub3JlIGZpbGVzIHRoYXQgYXJl IG5vdCBYTE9HIHNlZ21lbnRzICovCi0JCWlmIChzdHJsZW4oeGxkZS0+ZF9u YW1lKSAhPSAyNCB8fAotCQkJc3Ryc3BuKHhsZGUtPmRfbmFtZSwgIjAxMjM0 NTY3ODlBQkNERUYiKSAhPSAyNCkKKwkJaWYgKCFJc1hMb2dGaWxlTmFtZSh4 bGRlLT5kX25hbWUpKQogCQkJY29udGludWU7CiAKIAkJLyoKQEAgLTM4Mzks MTAgKzM4MzcsNyBAQCBDbGVhbnVwQmFja3VwSGlzdG9yeSh2b2lkKQogCiAJ d2hpbGUgKCh4bGRlID0gUmVhZERpcih4bGRpciwgWExPR0RJUikpICE9IE5V TEwpCiAJewotCQlpZiAoc3RybGVuKHhsZGUtPmRfbmFtZSkgPiAyNCAmJgot CQkJc3Ryc3BuKHhsZGUtPmRfbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9 PSAyNCAmJgotCQkJc3RyY21wKHhsZGUtPmRfbmFtZSArIHN0cmxlbih4bGRl LT5kX25hbWUpIC0gc3RybGVuKCIuYmFja3VwIiksCi0JCQkJICAgIi5iYWNr dXAiKSA9PSAwKQorCQlpZiAoSXNCYWNrdXBIaXN0b3J5RmlsZU5hbWUoeGxk ZS0+ZF9uYW1lKSkKIAkJewogCQkJaWYgKFhMb2dBcmNoaXZlQ2hlY2tEb25l KHhsZGUtPmRfbmFtZSkpCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9iYXNlYmFja3VwLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9iYXNlYmFja3VwLmMKaW5kZXggMzU2M2ZkOS4uZGUxMDNjNiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vYmFzZWJhY2t1 cC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2Jhc2ViYWNrdXAu YwpAQCAtMzUwLDE3ICszNTAsMTQgQEAgcGVyZm9ybV9iYXNlX2JhY2t1cChi YXNlYmFja3VwX29wdGlvbnMgKm9wdCwgRElSICp0YmxzcGNkaXIpCiAJCXdo aWxlICgoZGUgPSBSZWFkRGlyKGRpciwgInBnX3hsb2ciKSkgIT0gTlVMTCkK IAkJewogCQkJLyogRG9lcyBpdCBsb29rIGxpa2UgYSBXQUwgc2VnbWVudCwg YW5kIGlzIGl0IGluIHRoZSByYW5nZT8gKi8KLQkJCWlmIChzdHJsZW4oZGUt PmRfbmFtZSkgPT0gMjQgJiYKLQkJCQlzdHJzcG4oZGUtPmRfbmFtZSwgIjAx MjM0NTY3ODlBQkNERUYiKSA9PSAyNCAmJgorCQkJaWYgKElzWExvZ0ZpbGVO YW1lKGRlLT5kX25hbWUpICYmCiAJCQkJc3RyY21wKGRlLT5kX25hbWUgKyA4 LCBmaXJzdG9mZiArIDgpID49IDAgJiYKIAkJCQlzdHJjbXAoZGUtPmRfbmFt ZSArIDgsIGxhc3RvZmYgKyA4KSA8PSAwKQogCQkJewogCQkJCXdhbEZpbGVM aXN0ID0gbGFwcGVuZCh3YWxGaWxlTGlzdCwgcHN0cmR1cChkZS0+ZF9uYW1l KSk7CiAJCQl9CiAJCQkvKiBEb2VzIGl0IGxvb2sgbGlrZSBhIHRpbWVsaW5l IGhpc3RvcnkgZmlsZT8gKi8KLQkJCWVsc2UgaWYgKHN0cmxlbihkZS0+ZF9u YW1lKSA9PSA4ICsgc3RybGVuKCIuaGlzdG9yeSIpICYmCi0JCQkJCSBzdHJz cG4oZGUtPmRfbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9PSA4ICYmCi0J CQkJCSBzdHJjbXAoZGUtPmRfbmFtZSArIDgsICIuaGlzdG9yeSIpID09IDAp CisJCQllbHNlIGlmIChJc1RMSGlzdG9yeUZpbGVOYW1lKGRlLT5kX25hbWUp KQogCQkJewogCQkJCWhpc3RvcnlGaWxlTGlzdCA9IGxhcHBlbmQoaGlzdG9y eUZpbGVMaXN0LCBwc3RyZHVwKGRlLT5kX25hbWUpKTsKIAkJCX0KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZleGxvZy5j IGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV4bG9nLmMKaW5k ZXggZTc3ZDJiNi4uNTM4MDJhZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX3JlY2VpdmV4bG9nLmMKKysrIGIvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX3JlY2VpdmV4bG9nLmMKQEAgLTE4OCwyMyArMTg4LDEx IEBAIEZpbmRTdHJlYW1pbmdTdGFydCh1aW50MzIgKnRsaSkKIAogCQkvKgog CQkgKiBDaGVjayBpZiB0aGUgZmlsZW5hbWUgbG9va3MgbGlrZSBhbiB4bG9n IGZpbGUsIG9yIGEgLnBhcnRpYWwgZmlsZS4KLQkJICogWGxvZyBmaWxlcyBh cmUgYWx3YXlzIDI0IGNoYXJhY3RlcnMsIGFuZCAucGFydGlhbCBmaWxlcyBh cmUgMzIKLQkJICogY2hhcmFjdGVycy4KIAkJICovCi0JCWlmIChzdHJsZW4o ZGlyZW50LT5kX25hbWUpID09IDI0KQotCQl7Ci0JCQlpZiAoc3Ryc3BuKGRp cmVudC0+ZF9uYW1lLCAiMDEyMzQ1Njc4OUFCQ0RFRiIpICE9IDI0KQotCQkJ CWNvbnRpbnVlOworCQlpZiAoSXNYTG9nRmlsZU5hbWUoZGlyZW50LT5kX25h bWUpKQogCQkJaXNwYXJ0aWFsID0gZmFsc2U7Ci0JCX0KLQkJZWxzZSBpZiAo c3RybGVuKGRpcmVudC0+ZF9uYW1lKSA9PSAzMikKLQkJewotCQkJaWYgKHN0 cnNwbihkaXJlbnQtPmRfbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSAhPSAy NCkKLQkJCQljb250aW51ZTsKLQkJCWlmIChzdHJjbXAoJmRpcmVudC0+ZF9u YW1lWzI0XSwgIi5wYXJ0aWFsIikgIT0gMCkKLQkJCQljb250aW51ZTsKKwkJ ZWxzZSBpZiAoSXNQYXJ0aWFsWExvZ0ZpbGVOYW1lKGRpcmVudC0+ZF9uYW1l KSkKIAkJCWlzcGFydGlhbCA9IHRydWU7Ci0JCX0KIAkJZWxzZQogCQkJY29u dGludWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmVzZXR4bG9nL3Bn X3Jlc2V0eGxvZy5jIGIvc3JjL2Jpbi9wZ19yZXNldHhsb2cvcGdfcmVzZXR4 bG9nLmMKaW5kZXggNGEyMjU3NS4uMzkzZDU4MCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19yZXNldHhsb2cvcGdfcmVzZXR4bG9nLmMKKysrIGIvc3JjL2Jp bi9wZ19yZXNldHhsb2cvcGdfcmVzZXR4bG9nLmMKQEAgLTkwNiwxNCArOTA2 LDE4IEBAIEZpbmRFbmRPZlhMT0codm9pZCkKIAogCXdoaWxlIChlcnJubyA9 IDAsICh4bGRlID0gcmVhZGRpcih4bGRpcikpICE9IE5VTEwpCiAJewotCQlp ZiAoc3RybGVuKHhsZGUtPmRfbmFtZSkgPT0gMjQgJiYKLQkJCXN0cnNwbih4 bGRlLT5kX25hbWUsICIwMTIzNDU2Nzg5QUJDREVGIikgPT0gMjQpCisJCWlm IChJc1hMb2dGaWxlTmFtZSh4bGRlLT5kX25hbWUpKQogCQl7CiAJCQl1bnNp Z25lZCBpbnQgdGxpLAogCQkJCQkJbG9nLAogCQkJCQkJc2VnOwogCQkJWExv Z1NlZ05vCXNlZ25vOwogCisJCQkvKgorCQkJICogTm90ZTogV2UgZG9uJ3Qg dXNlIFhMb2dGcm9tRmlsZU5hbWUgaGVyZSwgYmVjYXVzZSB3ZSB3YW50CisJ CQkgKiB0byB1c2UgdGhlIHNlZ21lbnQgc2l6ZSBmcm9tIHRoZSBjb250cm9s IGZpbGUsIG5vdCB0aGUgc2l6ZQorCQkJICogdGhlIHBnX3Jlc2V0eGxvZyBi aW5hcnkgd2FzIGNvbXBpbGVkIHdpdGgKKwkJCSAqLwogCQkJc3NjYW5mKHhs ZGUtPmRfbmFtZSwgIiUwOFglMDhYJTA4WCIsICZ0bGksICZsb2csICZzZWcp OwogCQkJc2Vnbm8gPSAoKHVpbnQ2NCkgbG9nKSAqIHNlZ3NfcGVyX3hsb2dp ZCArIHNlZzsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hs b2dfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nX2ludGVy bmFsLmgKaW5kZXggNzVjZjQzNS4uNzE0ODUwYyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3hsb2dfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MveGxvZ19pbnRlcm5hbC5oCkBAIC0xNDIsNiArMTQyLDE0 IEBAIHR5cGVkZWYgWExvZ0xvbmdQYWdlSGVhZGVyRGF0YSAqWExvZ0xvbmdQ YWdlSGVhZGVyOwogCQkJICh1aW50MzIpICgobG9nU2VnTm8pIC8gWExvZ1Nl Z21lbnRzUGVyWExvZ0lkKSwgXAogCQkJICh1aW50MzIpICgobG9nU2VnTm8p ICUgWExvZ1NlZ21lbnRzUGVyWExvZ0lkKSkKIAorI2RlZmluZSBJc1hMb2dG aWxlTmFtZShmbmFtZSkgXAorCShzdHJsZW4oZm5hbWUpID09IDI0ICYmIHN0 cnNwbihmbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9PSAyNCkKKworI2Rl ZmluZSBJc1BhcnRpYWxYTG9nRmlsZU5hbWUoZm5hbWUpCVwKKwkoc3RybGVu KGZuYW1lKSA9PSAyNCArIHN0cmxlbigiLnBhcnRpYWwiKSAmJglcCisJIHN0 cnNwbihmbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9PSAyNCAmJgkJXAor CSBzdHJjbXAoKGZuYW1lKSArIDI0LCAiLnBhcnRpYWwiKSA9PSAwKQorCiAj ZGVmaW5lIFhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsIHRsaSwgbG9nU2VnTm8p CVwKIAlkbyB7CQkJCQkJCQkJCQkJXAogCQl1aW50MzIgbG9nOwkJCQkJCQkJ CQlcCkBAIC0xNTgsNiArMTY2LDExIEBAIHR5cGVkZWYgWExvZ0xvbmdQYWdl SGVhZGVyRGF0YSAqWExvZ0xvbmdQYWdlSGVhZGVyOwogI2RlZmluZSBUTEhp c3RvcnlGaWxlTmFtZShmbmFtZSwgdGxpKQlcCiAJc25wcmludGYoZm5hbWUs IE1BWEZOQU1FTEVOLCAiJTA4WC5oaXN0b3J5IiwgdGxpKQogCisjZGVmaW5l IElzVExIaXN0b3J5RmlsZU5hbWUoZm5hbWUpCVwKKwkoc3RybGVuKGZuYW1l KSA9PSA4ICsgc3RybGVuKCIuaGlzdG9yeSIpICYmCQlcCisJIHN0cnNwbihm bmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9PSA4ICYmCQlcCisJIHN0cmNt cCgoZm5hbWUpICsgOCwgIi5oaXN0b3J5IikgPT0gMCkKKwogI2RlZmluZSBU TEhpc3RvcnlGaWxlUGF0aChwYXRoLCB0bGkpCVwKIAlzbnByaW50ZihwYXRo LCBNQVhQR1BBVEgsIFhMT0dESVIgIi8lMDhYLmhpc3RvcnkiLCB0bGkpCiAK QEAgLTE2OSw2ICsxODIsMTEgQEAgdHlwZWRlZiBYTG9nTG9uZ1BhZ2VIZWFk ZXJEYXRhICpYTG9nTG9uZ1BhZ2VIZWFkZXI7CiAJCQkgKHVpbnQzMikgKChs b2dTZWdObykgLyBYTG9nU2VnbWVudHNQZXJYTG9nSWQpLAkJICBcCiAJCQkg KHVpbnQzMikgKChsb2dTZWdObykgJSBYTG9nU2VnbWVudHNQZXJYTG9nSWQp LCBvZmZzZXQpCiAKKyNkZWZpbmUgSXNCYWNrdXBIaXN0b3J5RmlsZU5hbWUo Zm5hbWUpIFwKKwkoc3RybGVuKGZuYW1lKSA+IDI0ICYmIFwKKwkgc3Ryc3Bu KGZuYW1lLCAiMDEyMzQ1Njc4OUFCQ0RFRiIpID09IDI0ICYmIFwKKwkgc3Ry Y21wKChmbmFtZSkgKyBzdHJsZW4oZm5hbWUpIC0gc3RybGVuKCIuYmFja3Vw IiksICIuYmFja3VwIikgPT0gMCkKKwogI2RlZmluZSBCYWNrdXBIaXN0b3J5 RmlsZVBhdGgocGF0aCwgdGxpLCBsb2dTZWdObywgb2Zmc2V0KQlcCiAJc25w cmludGYocGF0aCwgTUFYUEdQQVRILCBYTE9HRElSICIvJTA4WCUwOFglMDhY LiUwOFguYmFja3VwIiwgdGxpLCBcCiAJCQkgKHVpbnQzMikgKChsb2dTZWdO bykgLyBYTG9nU2VnbWVudHNQZXJYTG9nSWQpLCBcCi0tIAoyLjEuNAoK --------------010407040809000301060608 Content-Type: application/x-patch; name="0002-At-promotion-archive-last-segment-from-old-timeline-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-At-promotion-archive-last-segment-from-old-timeline-.pa"; filename*1="tch" RnJvbSAxYTc4YmZmZGE3MDM0Y2I2ZDM3MzQ4NTI3Y2MxMjY5YTA5ZmZmZTFh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFr YW5nYXMgPGhlaWtraS5saW5uYWthbmdhc0Bpa2kuZmk+CkRhdGU6IEZyaSwg OCBNYXkgMjAxNSAxNjowODoyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8y XSBBdCBwcm9tb3Rpb24sIGFyY2hpdmUgbGFzdCBzZWdtZW50IGZyb20gb2xk IHRpbWVsaW5lIHdpdGgKIC5wYXJ0aWFsIHN1ZmZpeC4KClByZXZpb3VzbHks IHdlIHdvdWxkIGFyY2hpdmUgdGhlIHBvc3NpYmxlLWluY29tcGxldGUgV0FM IHNlZ21lbnQgd2l0aCBpdHMKbm9ybWFsIGZpbGVuYW1lLCBidXQgdGhhdCBj YXVzZXMgdHJvdWJsZSBpZiB0aGUgc2VydmVyIG93bmluZyB0aGF0IHRpbWVs aW5lCmlzIHN0aWxsIHJ1bm5pbmcsIGFuZCB0cmllcyB0byBhcmNoaXZlIHRo ZSBzYW1lIHNlZ21lbnQgbGF0ZXIuIEl0J3Mgbm90IG5pY2UKZm9yIHRoZSBz dGFuZGJ5IHRvIHRyaXAgdXAgdGhlIG1hc3RlcidzIGFyY2hpdmFsIGxpa2Ug dGhhdC4gQW5kIGl0J3MgcHJldHR5CmNvbmZ1c2luZywgYW55d2F5LCB0byBo YXZlIGFuIGluY29tcGxldGUgc2VnbWVudCBpbiB0aGUgYXJjaGl2ZSB0aGF0 J3MKaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIG5vcm1hbCwgY29tcGxldGUg c2VnbWVudC4KClRvIGF2b2lkIHN1Y2ggY29uZnVzaW9uLCBhZGQgYSAucGFy dGlhbCBzdWZmaXggdG8gdGhlIGZpbGUuIE9yIHRvIGJlIG1vcmUKcHJlY2lz ZSwgbWFrZSBhIGNvcHkgb2YgdGhlIG9sZCBzZWdtZW50IHVuZGVyIHRoZSAu cGFydGlhbCBzdWZmaXgsIGFuZAphcmNoaXZlIHRoYXQgaW5zdGVhZCBvZiB0 aGUgb3JpZ2luYWwgZmlsZS4gcGdfcmVjZWl2ZXhsb2cgYWxzbyB1c2VzIHRo ZQoucGFydGlhbCBzdWZmaXggZm9yIHRoZSBzYW1lIHB1cnBvc2UsIHRvIHRl bGwgYXBhcnQgaW5jb21wbGV0ZWx5IHN0cmVhbWVkCmZpbGVzIGZyb20gY29t cGxldGUgb25lcy4KClRoZXJlIGlzIG5vIGF1dG9tYXRpYyBtZWNoYW5pc20g dG8gdXNlIHRoZSAucGFydGlhbCBmaWxlcyBhdCByZWNvdmVyeSwgc28KdGhl eSB3aWxsIGdvIHVudXNlZCwgdW5sZXNzIHRoZSBhZG1pbmlzdHJhdG9yIG1h bnVhbGx5IGNvcGllcyB0byB0aGVtIHRvCnRoZSBwZ194bG9nIGRpcmVjdG9y eSAoYW5kIHJlbW92ZXMgdGhlIC5wYXJ0aWFsIHN1ZmZpeCkuIFJlY292ZXJ5 IHdvbid0Cm5vcm1hbGx5IG5lZWQgdGhlIFdBTCAtIHdoZW4gcmVjb3Zlcmlu ZyB0byB0aGUgbmV3IHRpbWVsaW5lLCBpdCB3aWxsIGZpbmQKdGhlIHNhbWUg V0FMIG9uIHRoZSBmaXJzdCBzZWdtZW50IG9uIHRoZSBuZXcgdGltZWxpbmUg aW5zdGVhZCAtIGJ1dCBpdApuZXZlcnRoZWxlc3MgZmVlbHMgYmV0dGVyIHRv IGFyY2hpdmUgdGhlIGZpbGUgd2l0aCB0aGUgLnBhcnRpYWwgc3VmZml4LCBm b3IKZGVidWdnaW5nIHB1cnBvc2VzIGlmIG5vdGhpbmcgZWxzZS4KLS0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgIHwgMTMzICsrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIHNyYy9pbmNsdWRl L2FjY2Vzcy94bG9nX2ludGVybmFsLmggfCAgIDUgKysKIHNyYy9pbmNsdWRl L3Bvc3RtYXN0ZXIvcGdhcmNoLmggICAgfCAgIDIgKy0KIDMgZmlsZXMgY2hh bmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCA1MDk3 MTczLi42ZjdlM2JkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCkBAIC0zMDIwLDI0ICszMDIwLDIyIEBAIFhMb2dGaWxlSW5p dChYTG9nU2VnTm8gbG9nc2Vnbm8sIGJvb2wgKnVzZV9leGlzdGVudCwgYm9v bCB1c2VfbG9jaykKIH0KIAogLyoKLSAqIENyZWF0ZSBhIG5ldyBYTE9HIGZp bGUgc2VnbWVudCBieSBjb3B5aW5nIGEgcHJlLWV4aXN0aW5nIG9uZS4KKyAq IENvcHkgYSBXQUwgc2VnbWVudCBmaWxlIGluIHBnX3hsb2cgZGlyZWN0b3J5 LgogICoKLSAqIGRlc3RzZWdubzogaWRlbnRpZnkgc2VnbWVudCB0byBiZSBj cmVhdGVkLgorICogZHN0Zm5hbWUJCWRlc3RpbmF0aW9uIGZpbGVuYW1lCisg KiBzcmNmbmFtZQkJc291cmNlIGZpbGVuYW1lCisgKiB1cHRvCQkJaG93IG11 Y2ggb2YgdGhlIHNvdXJjZSBmaWxlIHRvIGNvcHk/ICh0aGUgcmVzdCBpcyBm aWxsZWQgd2l0aAorICoJCQkJemVyb3MpCiAgKgotICogc3JjVExJLCBzcmNs b2csIHNyY3NlZzogaWRlbnRpZnkgc2VnbWVudCB0byBiZSBjb3BpZWQgKGNv dWxkIGJlIGZyb20KLSAqCQlhIGRpZmZlcmVudCB0aW1lbGluZSkKKyAqIElm IGRzdGZuYW1lIGlzIG5vdCBnaXZlbiwgdGhlIGZpbGUgaXMgY3JlYXRlZCB3 aXRoIGEgdGVtcG9yYXJ5IGZpbGVuYW1lLAorICogd2hpY2ggaXMgcmV0dXJu ZWQuICBCb3RoIGZpbGVuYW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhlIHBnX3hs b2cgZGlyZWN0b3J5LgogICoKLSAqIHVwdG86IGhvdyBtdWNoIG9mIHRoZSBz b3VyY2UgZmlsZSB0byBjb3B5PyAodGhlIHJlc3QgaXMgZmlsbGVkIHdpdGgg emVyb3MpCi0gKgotICogQ3VycmVudGx5IHRoaXMgaXMgb25seSB1c2VkIGR1 cmluZyByZWNvdmVyeSwgYW5kIHNvIHRoZXJlIGFyZSBubyBsb2NraW5nCi0g KiBjb25zaWRlcmF0aW9ucy4gIEJ1dCB3ZSBzaG91bGQgYmUganVzdCBhcyB0 ZW5zZSBhcyBYTG9nRmlsZUluaXQgdG8gYXZvaWQKLSAqIGVtcGxhY2luZyBh IGJvZ3VzIGZpbGUuCisgKiBOQjogQW55IGV4aXN0aW5nIGZpbGUgd2l0aCB0 aGUgc2FtZSBuYW1lIHdpbGwgYmUgb3ZlcndyaXR0ZW4hCiAgKi8KLXN0YXRp YyB2b2lkCi1YTG9nRmlsZUNvcHkoWExvZ1NlZ05vIGRlc3RzZWdubywgVGlt ZUxpbmVJRCBzcmNUTEksIFhMb2dTZWdObyBzcmNzZWdubywKLQkJCSBpbnQg dXB0bykKK3N0YXRpYyBjaGFyICoKK1hMb2dGaWxlQ29weShjaGFyICpkc3Rm bmFtZSwgY2hhciAqc3JjZm5hbWUsIGludCB1cHRvKQogewotCWNoYXIJCXBh dGhbTUFYUEdQQVRIXTsKKwljaGFyCQlzcmNwYXRoW01BWFBHUEFUSF07CiAJ Y2hhcgkJdG1wcGF0aFtNQVhQR1BBVEhdOwogCWNoYXIJCWJ1ZmZlcltYTE9H X0JMQ0tTWl07CiAJaW50CQkJc3JjZmQ7CkBAIC0zMDQ3LDEyICszMDQ1LDEy IEBAIFhMb2dGaWxlQ29weShYTG9nU2VnTm8gZGVzdHNlZ25vLCBUaW1lTGlu ZUlEIHNyY1RMSSwgWExvZ1NlZ05vIHNyY3NlZ25vLAogCS8qCiAJICogT3Bl biB0aGUgc291cmNlIGZpbGUKIAkgKi8KLQlYTG9nRmlsZVBhdGgocGF0aCwg c3JjVExJLCBzcmNzZWdubyk7Ci0Jc3JjZmQgPSBPcGVuVHJhbnNpZW50Rmls ZShwYXRoLCBPX1JET05MWSB8IFBHX0JJTkFSWSwgMCk7CisJc25wcmludGYo c3JjcGF0aCwgTUFYUEdQQVRILCBYTE9HRElSICIvJXMiLCBzcmNmbmFtZSk7 CisJc3JjZmQgPSBPcGVuVHJhbnNpZW50RmlsZShzcmNwYXRoLCBPX1JET05M WSB8IFBHX0JJTkFSWSwgMCk7CiAJaWYgKHNyY2ZkIDwgMCkKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKLQkJ CQkgZXJybXNnKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJW0iLCBw YXRoKSkpOworCQkJCSBlcnJtc2coImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIl c1wiOiAlbSIsIHNyY3BhdGgpKSk7CiAKIAkvKgogCSAqIENvcHkgaW50byBh IHRlbXAgZmlsZSBuYW1lLgpAQCAtMzA5NCwxMCArMzA5MiwxMiBAQCBYTG9n RmlsZUNvcHkoWExvZ1NlZ05vIGRlc3RzZWdubywgVGltZUxpbmVJRCBzcmNU TEksIFhMb2dTZWdObyBzcmNzZWdubywKIAkJCQlpZiAoZXJybm8gIT0gMCkK IAkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkoZXJyY29kZV9mb3JfZmls ZV9hY2Nlc3MoKSwKLQkJCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgcmVhZCBm aWxlIFwiJXNcIjogJW0iLCBwYXRoKSkpOworCQkJCQkJCSBlcnJtc2coImNv dWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJCQkJCQlzcmNw YXRoKSkpOwogCQkJCWVsc2UKIAkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ CQkoZXJybXNnKCJub3QgZW5vdWdoIGRhdGEgaW4gZmlsZSBcIiVzXCIiLCBw YXRoKSkpOworCQkJCQkJCShlcnJtc2coIm5vdCBlbm91Z2ggZGF0YSBpbiBm aWxlIFwiJXNcIiIsCisJCQkJCQkJCQlzcmNwYXRoKSkpOwogCQkJfQogCQl9 CiAJCWVycm5vID0gMDsKQEAgLTMxMzEsMTAgKzMxMzEsMjQgQEAgWExvZ0Zp bGVDb3B5KFhMb2dTZWdObyBkZXN0c2Vnbm8sIFRpbWVMaW5lSUQgc3JjVExJ LCBYTG9nU2VnTm8gc3Jjc2Vnbm8sCiAJQ2xvc2VUcmFuc2llbnRGaWxlKHNy Y2ZkKTsKIAogCS8qCi0JICogTm93IG1vdmUgdGhlIHNlZ21lbnQgaW50byBw bGFjZSB3aXRoIGl0cyBmaW5hbCBuYW1lLgorCSAqIE5vdyBtb3ZlIHRoZSBz ZWdtZW50IGludG8gcGxhY2Ugd2l0aCBpdHMgZmluYWwgbmFtZS4gIChPciBq dXN0IHJldHVybgorCSAqIHRoZSBwYXRoIHRvIHRoZSBmaWxlIHdlIGNyZWF0 ZWQsIGlmIHRoZSBjYWxsZXIgd2FudHMgdG8gaGFuZGxlIHRoZQorCSAqIHJl c3Qgb24gaXRzIG93bi4pCiAJICovCi0JaWYgKCFJbnN0YWxsWExvZ0ZpbGVT ZWdtZW50KCZkZXN0c2Vnbm8sIHRtcHBhdGgsIGZhbHNlLCAwLCBmYWxzZSkp Ci0JCWVsb2coRVJST1IsICJJbnN0YWxsWExvZ0ZpbGVTZWdtZW50IHNob3Vs ZCBub3QgaGF2ZSBmYWlsZWQiKTsKKwlpZiAoZHN0Zm5hbWUpCisJeworCQlj aGFyCQlkc3RwYXRoW01BWFBHUEFUSF07CisKKwkJc25wcmludGYoZHN0cGF0 aCwgTUFYUEdQQVRILCBYTE9HRElSICIvJXMiLCBkc3RmbmFtZSk7CisJCWlm IChyZW5hbWUodG1wcGF0aCwgZHN0cGF0aCkgPCAwKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCisJCQkJ CSBlcnJtc2coImNvdWxkIG5vdCByZW5hbWUgZmlsZSBcIiVzXCIgdG8gXCIl c1wiOiAlbSIsCisJCQkJCQkJdG1wcGF0aCwgZHN0cGF0aCkpKTsKKwkJcmV0 dXJuIE5VTEw7CisJfQorCWVsc2UKKwkJcmV0dXJuIHBzdHJkdXAodG1wcGF0 aCk7CiB9CiAKIC8qCkBAIC0zNTc3LDcgKzM1OTEsOCBAQCBSZW1vdmVPbGRY bG9nRmlsZXMoWExvZ1NlZ05vIHNlZ25vLCBYTG9nUmVjUHRyIFByaW9yUmVk b1B0ciwgWExvZ1JlY1B0ciBlbmRwdHIpCiAJd2hpbGUgKCh4bGRlID0gUmVh ZERpcih4bGRpciwgWExPR0RJUikpICE9IE5VTEwpCiAJewogCQkvKiBJZ25v cmUgZmlsZXMgdGhhdCBhcmUgbm90IFhMT0cgc2VnbWVudHMgKi8KLQkJaWYg KCFJc1hMb2dGaWxlTmFtZSh4bGRlLT5kX25hbWUpKQorCQlpZiAoIUlzWExv Z0ZpbGVOYW1lKHhsZGUtPmRfbmFtZSkgJiYKKwkJCSFJc1BhcnRpYWxYTG9n RmlsZU5hbWUoeGxkZS0+ZF9uYW1lKSkKIAkJCWNvbnRpbnVlOwogCiAJCS8q CkBAIC01MTg5LDI1ICs1MjA0LDc5IEBAIGV4aXRBcmNoaXZlUmVjb3Zlcnko VGltZUxpbmVJRCBlbmRUTEksIFhMb2dSZWNQdHIgZW5kT2ZMb2cpCiAJICog b2YgdGhlIG9sZCB0aW1lbGluZSB1cCB0byB0aGUgc3dpdGNoIHBvaW50LCB0 byB0aGUgc3RhcnRpbmcgV0FMIHNlZ21lbnQKIAkgKiBvbiB0aGUgbmV3IHRp bWVsaW5lLgogCSAqCi0JICogTm90aWZ5IHRoZSBhcmNoaXZlciB0aGF0IHRo ZSBsYXN0IFdBTCBzZWdtZW50IG9mIHRoZSBvbGQgdGltZWxpbmUgaXMKLQkg KiByZWFkeSB0byBjb3B5IHRvIGFyY2hpdmFsIHN0b3JhZ2UgaWYgaXRzIC5k b25lIGZpbGUgZG9lc24ndCBleGlzdAotCSAqIChlLmcuLCBpZiBpdCdzIHRo ZSByZXN0b3JlZCBXQUwgZmlsZSwgaXQncyBleHBlY3RlZCB0byBoYXZlIC5k b25lIGZpbGUpLgotCSAqIE90aGVyd2lzZSwgaXQgaXMgbm90IGFyY2hpdmVk IGZvciBhIHdoaWxlLgorCSAqIFdoYXQgdG8gZG8gd2l0aCB0aGUgcGFydGlh bCBzZWdtZW50IG9uIHRoZSBvbGQgdGltZWxpbmU/IElmIHdlIGRvbid0CisJ ICogYXJjaGl2ZSBpdCwgYW5kIHRoZSBzZXJ2ZXIgdGhhdCBjcmVhdGVkIHRo ZSBXQUwgbmV2ZXIgYXJjaGl2ZXMgaXQKKwkgKiBlaXRoZXIgKGUuZy4gYmVj YXVzZSBpdCB3YXMgaGl0IGJ5IGEgbWV0ZW9yKSwgaXQgd2lsbCBuZXZlciBt YWtlIGl0IHRvCisJICogdGhlIGFyY2hpdmUuIFRoYXQncyBPSyBmcm9tIG91 ciBwb2ludCBvZiB2aWV3LCBiZWNhdXNlIHRoZSBuZXcgc2VnbWVudAorCSAq IHRoYXQgd2UgY3JlYXRlZCB3aXRoIHRoZSBuZXcgVExJIGNvbnRhaW5zIGFs bCB0aGUgV0FMIGZyb20gdGhlIG9sZAorCSAqIHRpbWVsaW5lIHVwIHRvIHRo ZSBzd2l0Y2ggcG9pbnQuIEJ1dCBpZiB5b3UgbGF0ZXIgdHJ5IHRvIGRvIFBJ VFIgdG8gdGhlCisJICogIm1pc3NpbmciIFdBTCBvbiB0aGUgb2xkIHRpbWVs aW5lLCByZWNvdmVyeSB3b24ndCBmaW5kIGl0IGluIHRoZQorCSAqIGFyY2hp dmUuIEl0J3MgcGh5c2ljYWxseSBwcmVzZW50IGluIHRoZSBuZXcgZmlsZSB3 aXRoIG5ldyBUTEksIGJ1dAorCSAqIHJlY292ZXJ5IHdvbid0IGxvb2sgdGhl cmUgd2hlbiBpdCdzIHJlY292ZXJpbmcgdG8gdGhlIG9sZGVyIHRpbWVsaW5l LgorCSAqIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB3ZSBhcmNoaXZlIHRoZSBw YXJ0aWFsIHNlZ21lbnQsIGFuZCB0aGUgb3JpZ2luYWwKKwkgKiBzZXJ2ZXIg b24gdGhhdCB0aW1lbGluZSBpcyBzdGlsbCBydW5uaW5nIGFuZCBhcmNoaXZl cyB0aGUgY29tcGxldGVkCisJICogdmVyc2lvbiBvZiB0aGUgc2FtZSBzZWdt ZW50IGxhdGVyLCBpdCB3aWxsIGZhaWwuIChXZSB1c2VkIHRvIGRvIHRoYXQg aW4KKwkgKiA5LjQgYW5kIGJlbG93LCBhbmQgaXQgY2F1c2VkIHN1Y2ggcHJv YmxlbXMpLgorCSAqCisJICogQXMgYSBjb21wcm9taXNlLCB3ZSBhcmNoaXZl IHRoZSBsYXN0IHNlZ21lbnQgd2l0aCB0aGUgLnBhcnRpYWwgc3VmZml4Lgor CSAqIEFyY2hpdmUgcmVjb3Zlcnkgd2lsbCBuZXZlciB0cnkgdG8gcmVhZCAu cGFydGlhbCBzZWdtZW50cywgc28gdGhleSB3aWxsCisJICogbm9ybWFsbHkg Z28gdW51c2VkLiBCdXQgaW4gdGhlIG9kZCBQSVRSIGNhc2UsIHRoZSBhZG1p bmlzdHJhdG9yIGNhbgorCSAqIGNvcHkgdGhlbSBtYW51YWxseSB0byB0aGUg cGdfeGxvZyBkaXJlY3RvcnkgKHJlbW92aW5nIHRoZSBzdWZmaXgpLiBUaGV5 CisJICogY2FuIGJlIHVzZWZ1bCBpbiBkZWJ1Z2dpbmcsIHRvby4KKwkgKgor CSAqIElmIGEgLmRvbmUgZmlsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhlIG9s ZCB0aW1lbGluZSwgaG93ZXZlciwgdGhlcmUgaXMKKwkgKiBhbHJlYWR5IGEg Y29tcGxldGUgY29weSBvZiB0aGUgZmlsZSBpbiB0aGUgYXJjaGl2ZSwgYW5k IHRoZXJlIGlzIG5vCisJICogbmVlZCB0byBhcmNoaXZlIHRoZSBwYXJ0aWFs IG9uZS4gKEluIHBhcnRpY3VsYXIsIGlmIGl0IHdhcyByZXN0b3JlZAorCSAq IGZyb20gdGhlIGFyY2hpdmUgdG8gYmVnaW4gd2l0aCwgaXQncyBleHBlY3Rl ZCB0byBoYXZlIC5kb25lIGZpbGUpLgogCSAqLwogCWlmIChlbmRMb2dTZWdO byA9PSBzdGFydExvZ1NlZ05vKQogCXsKLQkJWExvZ0ZpbGVDb3B5KHN0YXJ0 TG9nU2VnTm8sIGVuZFRMSSwgZW5kTG9nU2VnTm8sCi0JCQkJCSBlbmRPZkxv ZyAlIFhMT0dfU0VHX1NJWkUpOworCQljaGFyCSAgICp0bXBmbmFtZTsKKwor CQlYTG9nRmlsZU5hbWUoeGxvZ2ZuYW1lLCBlbmRUTEksIGVuZExvZ1NlZ05v KTsKKworCQkvKgorCQkgKiBNYWtlIGEgY29weSBvZiB0aGUgZmlsZSBvbiB0 aGUgbmV3IHRpbWVsaW5lLgorCQkgKgorCQkgKiBXcml0aW5nIFdBTCBpc24n dCBhbGxvd2VkIHlldCwgc28gdGhlcmUgYXJlIG5vIGxvY2tpbmcKKwkJICog Y29uc2lkZXJhdGlvbnMuIEJ1dCB3ZSBzaG91bGQgYmUganVzdCBhcyB0ZW5z ZSBhcyBYTG9nRmlsZUluaXQgdG8KKwkJICogYXZvaWQgZW1wbGFjaW5nIGEg Ym9ndXMgZmlsZS4KKwkJICovCisJCXRtcGZuYW1lID0gWExvZ0ZpbGVDb3B5 KE5VTEwsIHhsb2dmbmFtZSwgZW5kT2ZMb2cgJSBYTE9HX1NFR19TSVpFKTsK KwkJaWYgKCFJbnN0YWxsWExvZ0ZpbGVTZWdtZW50KCZlbmRMb2dTZWdObywg dG1wZm5hbWUsIGZhbHNlLCAwLCBmYWxzZSkpCisJCQllbG9nKEVSUk9SLCAi SW5zdGFsbFhMb2dGaWxlU2VnbWVudCBzaG91bGQgbm90IGhhdmUgZmFpbGVk Iik7CiAKLQkJLyogQ3JlYXRlIC5yZWFkeSBmaWxlIG9ubHkgd2hlbiBuZWl0 aGVyIC5yZWFkeSBub3IgLmRvbmUgZmlsZXMgZXhpc3QgKi8KLQkJaWYgKFhM b2dBcmNoaXZpbmdBY3RpdmUoKSkKKwkJLyoKKwkJICogTWFrZSBhIC5wYXJ0 aWFsIGNvcHkgZm9yIHRoZSBhcmNoaXZlICh1bmxlc3MgdGhlIG9yaWdpbmFs IGZpbGUgd2FzCisJCSAqIGFscmVhZHkgYXJjaGl2ZWQpCisJCSAqLworCQlp ZiAoWExvZ0FyY2hpdmluZ0FjdGl2ZSgpICYmIFhMb2dBcmNoaXZlSXNCdXN5 KHhsb2dmbmFtZSkpCiAJCXsKLQkJCVhMb2dGaWxlTmFtZSh4bG9nZm5hbWUs IGVuZFRMSSwgZW5kTG9nU2VnTm8pOwotCQkJWExvZ0FyY2hpdmVDaGVja0Rv bmUoeGxvZ2ZuYW1lKTsKKwkJCWNoYXIJCXBhcnRpYWxmbmFtZVtNQVhGTkFN RUxFTl07CisKKwkJCXNucHJpbnRmKHBhcnRpYWxmbmFtZSwgTUFYRk5BTUVM RU4sICIlcy5wYXJ0aWFsIiwgeGxvZ2ZuYW1lKTsKKworCQkJLyogTWFrZSBz dXJlIHRoZXJlJ3Mgbm8gLmRvbmUgb3IgLnJlYWR5IGZpbGUgZm9yIGl0LiAq LworCQkJWExvZ0FyY2hpdmVDbGVhbnVwKHBhcnRpYWxmbmFtZSk7CisKKwkJ CS8qCisJCQkgKiBXZSBjb3B5IHRoZSB3aG9sZSBzZWdtZW50LCBub3QganVz dCB1cHRvIHRoZSBzd2l0Y2ggcG9pbnQuCisJCQkgKiBUaGUgcG9ydGlvbiBh ZnRlciB0aGUgc3dpdGNoIHBvaW50IG1pZ2h0IGJlIGdhcmJhZ2UsIGJ1dCBp dAorCQkJICogbWlnaHQgYWxzbyBiZSB2YWxpZCBXQUwsIGlmIHdlIHN0b3Bw ZWQgcmVjb3ZlcnkgYXQgdXNlcidzCisJCQkgKiByZXF1ZXN0IGJlZm9yZSBy ZWFjaGluZyB0aGUgZW5kLiBCZXR0ZXIgdG8gcHJlc2VydmUgdGhlCisJCQkg KiBmaWxlIGFzIGl0IGlzLCBnYXJiYWdlIGFuZCBhbGwsIHRoYW4gbG9zZSB0 aGUgZXZpZGVuY2UgaWYKKwkJCSAqIHNvbWV0aGluZyBnb2VzIHdyb25nLgor CQkJICovCisJCQkodm9pZCkgWExvZ0ZpbGVDb3B5KHBhcnRpYWxmbmFtZSwg eGxvZ2ZuYW1lLCBYTE9HX1NFR19TSVpFKTsKKwkJCVhMb2dBcmNoaXZlTm90 aWZ5KHBhcnRpYWxmbmFtZSk7CiAJCX0KIAl9CiAJZWxzZQogCXsKKwkJLyoK KwkJICogVGhlIHN3aXRjaCBoYXBwZW5lZCBhdCBhIHNlZ21lbnQgYm91bmRh cnksIHNvIGp1c3QgY3JlYXRlIHRoZSBuZXh0CisJCSAqIHNlZ21lbnQgb24g dGhlIG5ldyB0aW1lbGluZS4KKwkJICovCiAJCWJvb2wJCXVzZV9leGlzdGVu dCA9IHRydWU7CiAJCWludAkJCWZkOwogCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9hY2Nlc3MveGxvZ19pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3hsb2dfaW50ZXJuYWwuaAppbmRleCA3MTQ4NTBjLi5lNTBkMGYzIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ19pbnRlcm5hbC5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nX2ludGVybmFsLmgKQEAg LTE0NSw2ICsxNDUsMTEgQEAgdHlwZWRlZiBYTG9nTG9uZ1BhZ2VIZWFkZXJE YXRhICpYTG9nTG9uZ1BhZ2VIZWFkZXI7CiAjZGVmaW5lIElzWExvZ0ZpbGVO YW1lKGZuYW1lKSBcCiAJKHN0cmxlbihmbmFtZSkgPT0gMjQgJiYgc3Ryc3Bu KGZuYW1lLCAiMDEyMzQ1Njc4OUFCQ0RFRiIpID09IDI0KQogCisvKgorICog WExPRyBzZWdtZW50IHdpdGggLnBhcnRpYWwgc3VmZml4LiAgVXNlZCBieSBw Z19yZWNlaXZleGxvZyBhbmQgYXQgZW5kIG9mCisgKiBhcmNoaXZlIHJlY292 ZXJ5LCB3aGVuIHdlIHdhbnQgdG8gYXJjaGl2ZSBhIFdBTCBzZWdtZW50IGJ1 dCBpdCBtaWdodCBub3QKKyAqIGJlIGNvbXBsZXRlIHlldC4KKyAqLwogI2Rl ZmluZSBJc1BhcnRpYWxYTG9nRmlsZU5hbWUoZm5hbWUpCVwKIAkoc3RybGVu KGZuYW1lKSA9PSAyNCArIHN0cmxlbigiLnBhcnRpYWwiKSAmJglcCiAJIHN0 cnNwbihmbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9PSAyNCAmJgkJXApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wZ2FyY2guaCBi L3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmgKaW5kZXggOWY2OTJl Yi4uNDI1ZTJhYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rl ci9wZ2FyY2guaAorKysgYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3BnYXJj aC5oCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KICNkZWZpbmUgTUlOX1hGTl9D SEFSUwkxNgogI2RlZmluZSBNQVhfWEZOX0NIQVJTCTQwCi0jZGVmaW5lIFZB TElEX1hGTl9DSEFSUyAiMDEyMzQ1Njc4OUFCQ0RFRi5oaXN0b3J5LmJhY2t1 cCIKKyNkZWZpbmUgVkFMSURfWEZOX0NIQVJTICIwMTIzNDU2Nzg5QUJDREVG Lmhpc3RvcnkuYmFja3VwLnBhcnRpYWwiCiAKIC8qIC0tLS0tLS0tLS0KICAq IEZ1bmN0aW9ucyBjYWxsZWQgZnJvbSBwb3N0bWFzdGVyCi0tIAoyLjEuNAoK --------------010407040809000301060608 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------010407040809000301060608--