Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jo0KL-0003xr-Bp for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2020 08:00:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jo0KK-0003Sn-6q for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2020 08:00:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jo0KJ-0003Sd-SL for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2020 08:00:12 +0000 Received: from wforward3-smtp.messagingengine.com ([64.147.123.22]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jo0KG-00050F-SD for pgsql-hackers@postgresql.org; Wed, 24 Jun 2020 08:00:10 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.west.internal (Postfix) with ESMTP id 6907695A; Wed, 24 Jun 2020 04:00:06 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 24 Jun 2020 04:00:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=lrOQ0p 7jMnqs3bcSmz82K7fnfz9A48wkpz/2SnXYgQo=; b=q5J4R+pb91QEFALmGpc3RB lLyMoooE9S8UPxAQNTjbybKmd/R66Jej5TROZO3ubbg7/1p8JbNkhJV5l/e0yEEe OxwD7rO6xBzqMZ6nf2d/JnZADHC0vcJnEocY+xwzu/VDGk1CldXhKeph7OHb4ZXo cKy/XlKsguoy+XL83kONGf7qPEHCYWAiXfShU1uD98GFr4ZbucbM0eVbXQ3jjGb2 udYBlmZOttFmfUnP+q8z/I4XWW/OLkQU61cImd2caJ3YPp0A4NcBNxeaTLY8hIfi NEM2VhvioYPnhro3yIWmUA1gKzsGqdafufCUjS2sJGjZbnRWO1nG9l6rwEbBrZug == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudekiedguddvjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefuhffvfhhokffffgggjggtsehmtderredtfeejnecuhfhrohhmpefrvght vghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnug hquhgrughrrghnthdrtghomheqnecuggftrfgrthhtvghrnhepfeetieelveeigeeigfdt feekuedufedtheeviedtffejtdduheffledvhfehudetnecuffhomhgrihhnpedvnhguqh hurggurhgrnhhtrdgtohhmnecukfhppeelfedrvdegfedrudeluddrvdefkeenucevlhhu shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvih hsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomh X-ME-Proxy: Received: from april.pezone.net (p5df3bfee.dip0.t-ipconnect.de [93.243.191.238]) by mail.messagingengine.com (Postfix) with ESMTPA id 56EC23280060; Wed, 24 Jun 2020 04:00:01 -0400 (EDT) Subject: Re: Improve handling of parameter differences in physical replication From: Peter Eisentraut To: PostgreSQL-development References: <20200310.175755.1250389993502025042.horikyota.ntt@gmail.com> <20200311.110637.1319131984113864409.horikyota.ntt@gmail.com> <2134a29f-e934-4585-e81f-ab416e1923be@2ndquadrant.com> <2808491585335240@iva3-67f911cb3a01.qloud-c.yandex.net> Cc: Sergei Kornilov , Masahiko Sawada , Kyotaro Horiguchi , =?UTF-8?Q?=c3=81lvaro_Herrera?= Organization: 2ndQuadrant Message-ID: Date: Wed, 24 Jun 2020 10:00:00 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------956E11796DEFD1D710F20B1D" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------956E11796DEFD1D710F20B1D Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Here is another stab at this subject. This is a much simplified variant: When encountering a parameter change in the WAL that is higher than the standby's current setting, we log a warning (instead of an error until now) and pause recovery. If you resume (unpause) recovery, the instance shuts down as before. This allows you to keep your standbys running for a bit (depending on lag requirements) and schedule the required restart more deliberately. I had previously suggested making this new behavior configurable, but there didn't seem to be much interest in that, so I have not included that there. The documentation changes are mostly carried over from previous patch versions (but adjusted for the actual behavior of the patch). -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------956E11796DEFD1D710F20B1D Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v3-0001-Replace-a-macro-by-a-function.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v3-0001-Replace-a-macro-by-a-function.patch" RnJvbSAyZDNmZmIyMjFhZTk0MThlYmQ3ZTFmYzdmYjc3MTIxMzAxNGNhMjE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyNCBKdW4gMjAyMCAwODo0OTo0MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjMgMS8yXSBSZXBsYWNlIGEgbWFjcm8gYnkgYSBmdW5jdGlvbgoKVXNpbmcg YSBtYWNybyBpcyB1Z2x5IGFuZCBub3QganVzdGlmaWVkIGhlcmUuCi0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIHwgMjEgKysrKysrKysrKystLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGExMjU2YTEwM2IuLmRjZWMyMTExYjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTYyMzIsMTYgKzYyMzIsMTcg QEAgR2V0WExvZ1JlY2VpcHRUaW1lKFRpbWVzdGFtcFR6ICpydGltZSwgYm9vbCAqZnJvbVN0 cmVhbSkKICAqIE5vdGUgdGhhdCB0ZXh0IGZpZWxkIHN1cHBsaWVkIGlzIGEgcGFyYW1ldGVy IG5hbWUgYW5kIGRvZXMgbm90IHJlcXVpcmUKICAqIHRyYW5zbGF0aW9uCiAgKi8KLSNkZWZp bmUgUmVjb3ZlcnlSZXF1aXJlc0ludFBhcmFtZXRlcihwYXJhbV9uYW1lLCBjdXJyVmFsdWUs IG1pblZhbHVlKSBcCi1kbyB7IFwKLQlpZiAoKGN1cnJWYWx1ZSkgPCAobWluVmFsdWUpKSBc Ci0JCWVyZXBvcnQoRVJST1IsIFwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwgXAotCQkJCSBlcnJtc2coImhvdCBzdGFuZGJ5IGlzIG5vdCBwb3Nz aWJsZSBiZWNhdXNlICVzID0gJWQgaXMgYSBsb3dlciBzZXR0aW5nIHRoYW4gb24gdGhlIG1h c3RlciBzZXJ2ZXIgKGl0cyB2YWx1ZSB3YXMgJWQpIiwgXAotCQkJCQkJcGFyYW1fbmFtZSwg XAotCQkJCQkJY3VyclZhbHVlLCBcCi0JCQkJCQltaW5WYWx1ZSkpKTsgXAotfSB3aGlsZSgw KQorc3RhdGljIHZvaWQKK1JlY292ZXJ5UmVxdWlyZXNJbnRQYXJhbWV0ZXIoY29uc3QgY2hh ciAqcGFyYW1fbmFtZSwgaW50IGN1cnJWYWx1ZSwgaW50IG1pblZhbHVlKQoreworCWlmIChj dXJyVmFsdWUgPCBtaW5WYWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJob3Qgc3Rh bmRieSBpcyBub3QgcG9zc2libGUgYmVjYXVzZSAlcyA9ICVkIGlzIGEgbG93ZXIgc2V0dGlu ZyB0aGFuIG9uIHRoZSBtYXN0ZXIgc2VydmVyIChpdHMgdmFsdWUgd2FzICVkKSIsCisJCQkJ CQlwYXJhbV9uYW1lLAorCQkJCQkJY3VyclZhbHVlLAorCQkJCQkJbWluVmFsdWUpKSk7Cit9 CiAKIC8qCiAgKiBDaGVjayB0byBzZWUgaWYgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgc2V0 IGhpZ2ggZW5vdWdoIG9uIHRoaXMgc2VydmVyCi0tIAoyLjI3LjAKCg== --------------956E11796DEFD1D710F20B1D Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v3-0002-Pause-recovery-for-insufficient-parameter-setting.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v3-0002-Pause-recovery-for-insufficient-parameter-setting.pa"; filename*1="tch" RnJvbSAxODc0MGEwMjFhOTAyMDc0MjMwMzJjYjcyMDFmNTQ2NTBiODFjMTVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyNCBKdW4gMjAyMCAwOToxODoyMSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjMgMi8yXSBQYXVzZSByZWNvdmVyeSBmb3IgaW5zdWZmaWNpZW50IHBhcmFt ZXRlciBzZXR0aW5ncwoKV2hlbiBjZXJ0YWluIHBhcmFtZXRlcnMgYXJlIGNoYW5nZWQgb24g YSBwaHlzaWNhbCByZXBsaWNhdGlvbiBwcmltYXJ5LAp0aGlzIGlzIGNvbW11bmljYXRlZCB0 byBzdGFuZGJ5cyB1c2luZyB0aGUgWExPR19QQVJBTUVURVJfQ0hBTkdFIFdBTApyZWNvcmQu ICBUaGUgc3RhbmRieSB0aGVuIGNoZWNrcyB3aGV0aGVyIGl0cyBvd24gc2V0dGluZ3MgYXJl IGF0IGxlYXN0CmFzIGJpZyBhcyB0aGUgb25lcyBvbiB0aGUgcHJpbWFyeS4gIElmIG5vdCwg dGhlIHN0YW5kYnkgc2h1dHMgZG93bgp3aXRoIGEgZmF0YWwgZXJyb3IuCgpUaGlzIHBhdGNo IGNoYW5nZXMgdGhpcyBiZWhhdmlvciB0byBwYXVzZSByZWNvdmVyeSBhdCB0aGF0IHBvaW50 Cmluc3RlYWQuICBUaGF0IGFsbG93cyByZWFkIHRyYWZmaWMgb24gdGhlIHN0YW5kYnkgdG8g Y29udGludWUgd2hpbGUKZGF0YWJhc2UgYWRtaW5pc3RyYXRvcnMgZmlndXJlIG91dCBuZXh0 IHN0ZXBzLiAgV2hlbiByZWNvdmVyeSBpcwp1bnBhdXNlZCwgdGhlIHNlcnZlciBzaHV0cyBk b3duIChhcyBiZWZvcmUpLiAgVGhlIGlkZWEgaXMgdG8gZml4IHRoZQpwYXJhbWV0ZXJzIHdo aWxlIHJlY292ZXJ5IGlzIHBhdXNlZCBhbmQgdGhlbiByZXN0YXJ0IHdoZW4gdGhlcmUgaXMg YQptYWludGVuYW5jZSB3aW5kb3cuCi0tLQogZG9jL3NyYy9zZ21sL2hpZ2gtYXZhaWxhYmls aXR5LnNnbWwgfCA0NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jICAgfCAxNyArKysrKysrKysrLQogMiBmaWxlcyBj aGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBiL2RvYy9zcmMvc2dtbC9o aWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IDY1YzNmYzYyYTkuLmQzMmVjNmQ5YjMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC0yMTU5LDE4ICsyMTU5LDE0 IEBAIDx0aXRsZT5BZG1pbmlzdHJhdG9yJ3MgT3ZlcnZpZXc8L3RpdGxlPgogICAgPC9wYXJh PgogCiAgICA8cGFyYT4KLSAgICBUaGUgc2V0dGluZyBvZiBzb21lIHBhcmFtZXRlcnMgb24g dGhlIHN0YW5kYnkgd2lsbCBuZWVkIHJlY29uZmlndXJhdGlvbgotICAgIGlmIHRoZXkgaGF2 ZSBiZWVuIGNoYW5nZWQgb24gdGhlIHByaW1hcnkuIEZvciB0aGVzZSBwYXJhbWV0ZXJzLAot ICAgIHRoZSB2YWx1ZSBvbiB0aGUgc3RhbmRieSBtdXN0Ci0gICAgYmUgZXF1YWwgdG8gb3Ig Z3JlYXRlciB0aGFuIHRoZSB2YWx1ZSBvbiB0aGUgcHJpbWFyeS4KLSAgICBUaGVyZWZvcmUs IGlmIHlvdSB3YW50IHRvIGluY3JlYXNlIHRoZXNlIHZhbHVlcywgeW91IHNob3VsZCBkbyBz byBvbiBhbGwKLSAgICBzdGFuZGJ5IHNlcnZlcnMgZmlyc3QsIGJlZm9yZSBhcHBseWluZyB0 aGUgY2hhbmdlcyB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuCi0gICAgQ29udmVyc2VseSwgaWYg eW91IHdhbnQgdG8gZGVjcmVhc2UgdGhlc2UgdmFsdWVzLCB5b3Ugc2hvdWxkIGRvIHNvIG9u IHRoZQotICAgIHByaW1hcnkgc2VydmVyIGZpcnN0LCBiZWZvcmUgYXBwbHlpbmcgdGhlIGNo YW5nZXMgdG8gYWxsIHN0YW5kYnkgc2VydmVycy4KLSAgICBJZiB0aGVzZSBwYXJhbWV0ZXJz Ci0gICAgYXJlIG5vdCBzZXQgaGlnaCBlbm91Z2ggdGhlbiB0aGUgc3RhbmRieSB3aWxsIHJl ZnVzZSB0byBzdGFydC4KLSAgICBIaWdoZXIgdmFsdWVzIGNhbiB0aGVuIGJlIHN1cHBsaWVk IGFuZCB0aGUgc2VydmVyCi0gICAgcmVzdGFydGVkIHRvIGJlZ2luIHJlY292ZXJ5IGFnYWlu LiAgVGhlc2UgcGFyYW1ldGVycyBhcmU6CisgICAgVGhlIHNldHRpbmdzIG9mIHNvbWUgcGFy YW1ldGVycyBkZXRlcm1pbmUgdGhlIHNpemUgb2Ygc2hhcmVkIG1lbW9yeSBmb3IKKyAgICB0 cmFja2luZyB0cmFuc2FjdGlvbiBJRHMsIGxvY2tzLCBhbmQgcHJlcGFyZWQgdHJhbnNhY3Rp b25zLiAgVGhlc2Ugc2hhcmVkCisgICAgbWVtb3J5IHN0cnVjdHVyZXMgbXVzdCBiZSBubyBz bWFsbGVyIG9uIGEgc3RhbmRieSB0aGFuIG9uIHRoZSBwcmltYXJ5IGluCisgICAgb3JkZXIg dG8gZW5zdXJlIHRoYXQgdGhlIHN0YW5kYnkgZG9lcyBub3QgcnVuIG91dCBvZiBzaGFyZWQg bWVtb3J5IGR1cmluZworICAgIHJlY292ZXJ5LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwcmlt YXJ5IGhhZCB1c2VkIGEgcHJlcGFyZWQgdHJhbnNhY3Rpb24gYnV0CisgICAgdGhlIHN0YW5k YnkgaGFkIG5vdCBhbGxvY2F0ZWQgYW55IHNoYXJlZCBtZW1vcnkgZm9yIHRyYWNraW5nIHBy ZXBhcmVkCisgICAgdHJhbnNhY3Rpb25zLCB0aGVuIHJlY292ZXJ5IGNvdWxkIG5vdCBjb250 aW51ZSB1bnRpbCB0aGUgc3RhbmRieSdzCisgICAgY29uZmlndXJhdGlvbiBpcyBjaGFuZ2Vk LiAgVGhlIHBhcmFtZXRlcnMgYWZmZWN0ZWQgYXJlOgogCiAgICAgICA8aXRlbWl6ZWRsaXN0 PgogICAgICAgIDxsaXN0aXRlbT4KQEAgLTIxOTksNiArMjE5NSwzMyBAQCA8dGl0bGU+QWRt aW5pc3RyYXRvcidzIE92ZXJ2aWV3PC90aXRsZT4KICAgICAgICAgPC9wYXJhPgogICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICA8L2l0ZW1pemVkbGlzdD4KKworICAgIFRoZSBlYXNpZXN0 IHdheSB0byBlbnN1cmUgdGhpcyBkb2VzIG5vdCBiZWNvbWUgYSBwcm9ibGVtIGlzIHRvIGhh dmUgdGhlc2UKKyAgICBwYXJhbWV0ZXJzIHNldCBvbiB0aGUgc3RhbmRieXMgdG8gdmFsdWVz IGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiBvbiB0aGUKKyAgICBwcmltYXJ5LiAgVGhlcmVm b3JlLCBpZiB5b3Ugd2FudCB0byBpbmNyZWFzZSB0aGVzZSB2YWx1ZXMsIHlvdSBzaG91bGQg ZG8KKyAgICBzbyBvbiBhbGwgc3RhbmRieSBzZXJ2ZXJzIGZpcnN0LCBiZWZvcmUgYXBwbHlp bmcgdGhlIGNoYW5nZXMgdG8gdGhlCisgICAgcHJpbWFyeSBzZXJ2ZXIuICBDb252ZXJzZWx5 LCBpZiB5b3Ugd2FudCB0byBkZWNyZWFzZSB0aGVzZSB2YWx1ZXMsIHlvdQorICAgIHNob3Vs ZCBkbyBzbyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIgZmlyc3QsIGJlZm9yZSBhcHBseWluZyB0 aGUgY2hhbmdlcyB0bworICAgIGFsbCBzdGFuZGJ5IHNlcnZlcnMuICBLZWVwIGluIG1pbmQg dGhhdCB3aGVuIGEgc3RhbmRieSBpcyBwcm9tb3RlZCwgaXQKKyAgICBiZWNvbWVzIHRoZSBu ZXcgcmVmZXJlbmNlIGZvciB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyIHNldHRpbmdzIGZvciB0 aGUKKyAgICBzdGFuZGJ5cyB0aGF0IGZvbGxvdyBpdC4gIFRoZXJlZm9yZSwgdG8gYXZvaWQg dGhpcyBiZWNvbWluZyBhIHByb2JsZW0KKyAgICBkdXJpbmcgYSBzd2l0Y2hvdmVyIG9yIGZh aWxvdmVyLCBpdCBpcyByZWNvbW1lbmRlZCB0byBrZWVwIHRoZXNlIHNldHRpbmdzCisgICAg dGhlIHNhbWUgb24gYWxsIHN0YW5kYnkgc2VydmVycy4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgVGhlIFdBTCB0cmFja3MgY2hhbmdlcyB0byB0aGVzZSBwYXJhbWV0ZXJzIG9u IHRoZQorICAgIHByaW1hcnksIGFuZCBpZiBhIHN0YW5kYnkgcHJvY2Vzc2VzIFdBTCB0aGF0 IGluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50CisgICAgdmFsdWUgb24gdGhlIHByaW1hcnkg aXMgaGlnaGVyIHRoYW4gaXRzIG93biB2YWx1ZSwgaXQgd2lsbCBsb2cgYSB3YXJuaW5nCisg ICAgYW5kIHBhdXNlIHJlY292ZXJ5LCBmb3IgZXhhbXBsZToKKzxzY3JlZW4+CitXQVJOSU5H OiAgaG90IHN0YW5kYnkgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2UgbWF4X2Nvbm5lY3Rpb25z ID0gODAgaXMgYSBsb3dlciBzZXR0aW5nIHRoYW4gb24gdGhlIG1hc3RlciBzZXJ2ZXIgKGl0 cyB2YWx1ZSB3YXMgMTAwKQorTE9HOiAgcmVjb3Zlcnkgd2lsbCBiZSBwYXVzZWQKK0RFVEFJ TDogIElmIHJlY292ZXJ5IGlzIHVucGF1c2VkLCB0aGUgc2VydmVyIHdpbGwgc2h1dCBkb3du LgorSElOVDogIFlvdSBjYW4gdGhlbiByZXN0YXJ0IHRoZSBzZXJ2ZXIgYWZ0ZXIgbWFraW5n IHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBjaGFuZ2VzLgorPC9zY3JlZW4+CisgICAg QXQgdGhhdCBwb2ludCwgdGhlIHNldHRpbmdzIG9uIHRoZSBzdGFuZGJ5IG5lZWQgdG8gYmUg dXBkYXRlZCBhbmQgdGhlCisgICAgaW5zdGFuY2UgcmVzdGFydGVkIGJlZm9yZSByZWNvdmVy eSBjYW4gY29udGludWUuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jCmluZGV4IGRjZWMyMTExYjMuLmUwZTIyZTI2ZjQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTYyMzYsMTIgKzYyMzYsMjcgQEAgc3RhdGlj IHZvaWQKIFJlY292ZXJ5UmVxdWlyZXNJbnRQYXJhbWV0ZXIoY29uc3QgY2hhciAqcGFyYW1f bmFtZSwgaW50IGN1cnJWYWx1ZSwgaW50IG1pblZhbHVlKQogewogCWlmIChjdXJyVmFsdWUg PCBtaW5WYWx1ZSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVyZXBvcnQoV0FSTklORywK IAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkg ZXJybXNnKCJob3Qgc3RhbmRieSBpcyBub3QgcG9zc2libGUgYmVjYXVzZSAlcyA9ICVkIGlz IGEgbG93ZXIgc2V0dGluZyB0aGFuIG9uIHRoZSBtYXN0ZXIgc2VydmVyIChpdHMgdmFsdWUg d2FzICVkKSIsCiAJCQkJCQlwYXJhbV9uYW1lLAogCQkJCQkJY3VyclZhbHVlLAogCQkJCQkJ bWluVmFsdWUpKSk7CisJCWVyZXBvcnQoTE9HLAorCQkJCShlcnJtc2coInJlY292ZXJ5IHdp bGwgYmUgcGF1c2VkIiksCisJCQkJIGVycmRldGFpbCgiSWYgcmVjb3ZlcnkgaXMgdW5wYXVz ZWQsIHRoZSBzZXJ2ZXIgd2lsbCBzaHV0IGRvd24uIiksCisJCQkJIGVycmhpbnQoIllvdSBj YW4gdGhlbiByZXN0YXJ0IHRoZSBzZXJ2ZXIgYWZ0ZXIgbWFraW5nIHRoZSBuZWNlc3Nhcnkg Y29uZmlndXJhdGlvbiBjaGFuZ2VzLiIpKSk7CisJCVNldFJlY292ZXJ5UGF1c2UodHJ1ZSk7 CisJCXdoaWxlIChSZWNvdmVyeUlzUGF1c2VkKCkpCisJCXsKKwkJCXBnX3VzbGVlcCgxMDAw MDAwTCk7CS8qIDEwMDAgbXMgKi8KKwkJCUhhbmRsZVN0YXJ0dXBQcm9jSW50ZXJydXB0cygp OworCQl9CisJCWVyZXBvcnQoRkFUQUwsCisJCQkJKGVycm1zZygicmVjb3ZlcnkgYWJvcnRl ZCBiZWNhdXNlIG9mIGluc3VmZmljaWVudCBwYXJhbWV0ZXIgc2V0dGluZ3MiKSwKKwkJCQkg ZXJyaGludCgiWW91IGNhbiByZXN0YXJ0IHRoZSBzZXJ2ZXIgYWZ0ZXIgbWFraW5nIHRoZSBu ZWNlc3NhcnkgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiIpKSk7CisJfQogfQogCiAvKgotLSAK Mi4yNy4wCgo= --------------956E11796DEFD1D710F20B1D--