Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from ) id 1jC77t-0002No-1K for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2020 19:34:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1jC77r-0007a7-BT for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2020 19:34:43 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1jC77q-0007Zz-Qw for pgsql-hackers@lists.postgresql.org; Wed, 11 Mar 2020 19:34:43 +0000 Received: from out2-smtp.messagingengine.com ([66.111.4.26]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jC77n-0005g3-Km for pgsql-hackers@postgresql.org; Wed, 11 Mar 2020 19:34:41 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 212CA21FC6; Wed, 11 Mar 2020 15:34:38 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 11 Mar 2020 15:34:38 -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=fm2; bh=9Tn1cC CjPrbd5UtuCwPVzPbVPKTQ4JW6R/EKvqSFJlk=; b=ghHFKvumUd9om1lQcFS2+I qNidhN9zR9gLdbwlZUz8K+aWhMyXt1+ZfEm8Fi+ij9RfcOWajAV0xrLuRMz9Ig7O CJYfzIqR6+DdbyRc6h6KBDlh7vXBVRJrLgJTH2sOFLMhRMRNEGk2sYw/a7CpKqHN F//CLR3sH8dMA9o66bI3x9C6/mlgDoC6IHs5TKFvKMZS57V1Uk/xR8C8vjMxmkK9 QSNSm685yczGXSbg/GykZRN0aulImb1HNYP3tTttTKF/a/sBeGox+J8shaODyRZA Utp9NbltLNo6axJnpWmyGIeWtTG5J4n0nV1BJkKUZjtmbcmHsHJ6191eVOUMLn9g == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedruddvfedgudefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefuvfhfhfhokffffgggjggtsehmtd erredtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghr rdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomheqnecuffhomhgrih hnpedvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppeelfedrvdegvddrvddufedrvdeg udenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvg htvghrrdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomh X-ME-Proxy: Received: from april.pezone.net (p5df2d5f1.dip0.t-ipconnect.de [93.242.213.241]) by mail.messagingengine.com (Postfix) with ESMTPA id 591AD328006D; Wed, 11 Mar 2020 15:34:36 -0400 (EDT) Subject: Re: Improve handling of parameter differences in physical replication To: Kyotaro Horiguchi References: <20200310.175755.1250389993502025042.horikyota.ntt@gmail.com> <20200311.110637.1319131984113864409.horikyota.ntt@gmail.com> Cc: masahiko.sawada@2ndquadrant.com, alvherre@2ndquadrant.com, pgsql-hackers@postgresql.org From: Peter Eisentraut Organization: 2ndQuadrant Message-ID: <2134a29f-e934-4585-e81f-ab416e1923be@2ndquadrant.com> Date: Wed, 11 Mar 2020 20:34:34 +0100 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: <20200311.110637.1319131984113864409.horikyota.ntt@gmail.com> Content-Type: multipart/mixed; boundary="------------71D229E2A1C9D14625FFBED5" 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. --------------71D229E2A1C9D14625FFBED5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Here is an updated patch that incorporates some of the suggestions. In particular, some of the warning messages have been rephrased to more accurate (but also less specific), the warning message at recovery pause repeats every 1 minute, and the documentation has been updated. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------71D229E2A1C9D14625FFBED5 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Improve-handling-of-parameter-differences-in-phys.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v2-0001-Improve-handling-of-parameter-differences-in-phys.pa"; filename*1="tch" RnJvbSAzZmI1YzcwYjRiN2UxMzJjYjc1MjcxYmJkNzBjNGExNTIzYTcyZTg2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAxMSBNYXIgMjAyMCAxOToyNTo0NCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjJdIEltcHJvdmUgaGFuZGxpbmcgb2YgcGFyYW1ldGVyIGRpZmZlcmVuY2Vz IGluIHBoeXNpY2FsCiByZXBsaWNhdGlvbgoKV2hlbiBjZXJ0YWluIHBhcmFtZXRlcnMgYXJl IGNoYW5nZWQgb24gYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBwcmltYXJ5LAp0aGlzIGlzIGNv bW11bmljYXRlZCB0byBzdGFuZGJ5cyB1c2luZyB0aGUgWExPR19QQVJBTUVURVJfQ0hBTkdF IFdBTApyZWNvcmQuICBUaGUgc3RhbmRieSB0aGVuIGNoZWNrcyB3aGV0aGVyIGl0cyBvd24g c2V0dGluZ3MgYXJlIGF0IGxlYXN0CmFzIGJpZyBhcyB0aGUgb25lcyBvbiB0aGUgcHJpbWFy eS4gIElmIG5vdCwgdGhlIHN0YW5kYnkgc2h1dHMgZG93bgp3aXRoIGEgZmF0YWwgZXJyb3Iu CgpUaGUgY29ycmVzcG9uZGVuY2Ugb2Ygc2V0dGluZ3MgYmV0d2VlbiBwcmltYXJ5IGFuZCBz dGFuZGJ5IGlzIHJlcXVpcmVkCmJlY2F1c2UgdGhvc2Ugc2V0dGluZ3MgaW5mbHVlbmNlIGNl cnRhaW4gc2hhcmVkIG1lbW9yeSBzaXppbmdzIHRoYXQKYXJlIHJlcXVpcmVkIGZvciBwcm9j ZXNzaW5nIFdBTCByZWNvcmRzIHRoYXQgdGhlIHByaW1hcnkgbWlnaHQgc2VuZC4KRm9yIGV4 YW1wbGUsIGlmIHRoZSBwcmltYXJ5IHNlbmRzIGEgcHJlcGFyZWQgdHJhbnNhY3Rpb24sIHRo ZSBzdGFuZGJ5Cm11c3QgaGF2ZSBoYWQgbWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9uIHNldCBh cHByb3ByaWF0ZWx5IG9yIGl0IHdvbid0CmJlIGFibGUgdG8gcHJvY2VzcyB0aG9zZSBXQUwg cmVjb3Jkcy4KCkhvd2V2ZXIsIGZhdGFsbHkgc2h1dHRpbmcgZG93biB0aGUgc3RhbmRieSBp bW1lZGlhdGVseSB1cG9uIHJlY2VpcHQgb2YKdGhlIHBhcmFtZXRlciBjaGFuZ2UgcmVjb3Jk IG1pZ2h0IGJlIGEgYml0IG9mIGFuIG92ZXJyZWFjdGlvbi4gIFRoZQpyZXNvdXJjZXMgcmVs YXRlZCB0byB0aG9zZSBzZXR0aW5ncyBhcmUgbm90IHJlcXVpcmVkIGltbWVkaWF0ZWx5IGF0 CnRoYXQgcG9pbnQsIGFuZCBtaWdodCBuZXZlciBiZSByZXF1aXJlZCBpZiB0aGUgYWN0aXZp dHkgb24gdGhlIHByaW1hcnkKZG9lcyBub3QgZXhoYXVzdCBhbGwgdGhvc2UgcmVzb3VyY2Vz LiAgSWYgd2UganVzdCBsZXQgdGhlIHN0YW5kYnkgcm9sbApvbiB3aXRoIHJlY292ZXJ5LCBp dCB3aWxsIGV2ZW50dWFsbHkgcHJvZHVjZSBhbiBhcHByb3ByaWF0ZSBlcnJvciB3aGVuCnRo b3NlIHJlc291cmNlcyBhcmUgdXNlZC4KClNvIHRoaXMgcGF0Y2ggcmVsYXhlcyB0aGlzIGEg Yml0LiAgVXBvbiByZWNlaXB0IG9mClhMT0dfUEFSQU1FVEVSX0NIQU5HRSwgd2Ugc3RpbGwg Y2hlY2sgdGhlIHNldHRpbmdzIGJ1dCBvbmx5IGlzc3VlIGEKd2FybmluZyBhbmQgc2V0IGEg Z2xvYmFsIGZsYWcgaWYgdGhlcmUgaXMgYSBwcm9ibGVtLiAgVGhlbiB3aGVuIHdlCmFjdHVh bGx5IGhpdCB0aGUgcmVzb3VyY2UgaXNzdWUgYW5kIHRoZSBmbGFnIHdhcyBzZXQsIHdlIGlz c3VlIGFub3RoZXIKd2FybmluZyBtZXNzYWdlIHdpdGggcmVsZXZhbnQgaW5mb3JtYXRpb24u ICBBZGRpdGlvbmFsbHksIGF0IHRoYXQKcG9pbnQgd2UgcGF1c2UgcmVjb3ZlcnksIHNvIGEg aG90IHN0YW5kYnkgcmVtYWlucyB1c2FibGUuCi0tLQogZG9jL3NyYy9zZ21sL2hpZ2gtYXZh aWxhYmlsaXR5LnNnbWwgICB8IDQ4ICsrKysrKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYyB8ICAzICsrCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBz cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAgIHwgIDkgKysrLQogc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyAgICAgICB8IDEwICsrKysKIHNyYy9pbmNsdWRl L2FjY2Vzcy94bG9nLmggICAgICAgICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDEy MCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWls YWJpbGl0eS5zZ21sCmluZGV4IGJjNGQ5OGZlMDMuLmM1YTlmOWQ1ZGYgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC0yMTQ4LDE4ICsyMTQ4LDE0IEBAIDx0aXRs ZT5BZG1pbmlzdHJhdG9yJ3MgT3ZlcnZpZXc8L3RpdGxlPgogICAgPC9wYXJhPgogCiAgICA8 cGFyYT4KLSAgICBUaGUgc2V0dGluZyBvZiBzb21lIHBhcmFtZXRlcnMgb24gdGhlIHN0YW5k Ynkgd2lsbCBuZWVkIHJlY29uZmlndXJhdGlvbgotICAgIGlmIHRoZXkgaGF2ZSBiZWVuIGNo YW5nZWQgb24gdGhlIHByaW1hcnkuIEZvciB0aGVzZSBwYXJhbWV0ZXJzLAotICAgIHRoZSB2 YWx1ZSBvbiB0aGUgc3RhbmRieSBtdXN0Ci0gICAgYmUgZXF1YWwgdG8gb3IgZ3JlYXRlciB0 aGFuIHRoZSB2YWx1ZSBvbiB0aGUgcHJpbWFyeS4KLSAgICBUaGVyZWZvcmUsIGlmIHlvdSB3 YW50IHRvIGluY3JlYXNlIHRoZXNlIHZhbHVlcywgeW91IHNob3VsZCBkbyBzbyBvbiBhbGwK LSAgICBzdGFuZGJ5IHNlcnZlcnMgZmlyc3QsIGJlZm9yZSBhcHBseWluZyB0aGUgY2hhbmdl cyB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuCi0gICAgQ29udmVyc2VseSwgaWYgeW91IHdhbnQg dG8gZGVjcmVhc2UgdGhlc2UgdmFsdWVzLCB5b3Ugc2hvdWxkIGRvIHNvIG9uIHRoZQotICAg IHByaW1hcnkgc2VydmVyIGZpcnN0LCBiZWZvcmUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgdG8g YWxsIHN0YW5kYnkgc2VydmVycy4KLSAgICBJZiB0aGVzZSBwYXJhbWV0ZXJzCi0gICAgYXJl IG5vdCBzZXQgaGlnaCBlbm91Z2ggdGhlbiB0aGUgc3RhbmRieSB3aWxsIHJlZnVzZSB0byBz dGFydC4KLSAgICBIaWdoZXIgdmFsdWVzIGNhbiB0aGVuIGJlIHN1cHBsaWVkIGFuZCB0aGUg c2VydmVyCi0gICAgcmVzdGFydGVkIHRvIGJlZ2luIHJlY292ZXJ5IGFnYWluLiAgVGhlc2Ug cGFyYW1ldGVycyBhcmU6CisgICAgVGhlIHNldHRpbmdzIG9mIHNvbWUgcGFyYW1ldGVycyBk ZXRlcm1pbmUgdGhlIHNpemUgb2Ygc2hhcmVkIG1lbW9yeSBmb3IKKyAgICB0cmFja2luZyB0 cmFuc2FjdGlvbiBJRHMsIGxvY2tzLCBhbmQgcHJlcGFyZWQgdHJhbnNhY3Rpb25zLiAgVGhl c2Ugc2hhcmVkCisgICAgbWVtb3J5IHN0cnVjdHVyZXMgc2hvdWxkIGJlIG5vIHNtYWxsZXIg b24gYSBzdGFuZGJ5IHRoYW4gb24gdGhlIHByaW1hcnkuCisgICAgT3RoZXJ3aXNlLCBpdCBj b3VsZCBoYXBwZW4gdGhhdCB0aGUgc3RhbmRieSBydW5zIG91dCBvZiBzaGFyZWQgbWVtb3J5 CisgICAgZHVyaW5nIHJlY292ZXJ5LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwcmltYXJ5IHVz ZXMgYSBwcmVwYXJlZCB0cmFuc2FjdGlvbgorICAgIGJ1dCB0aGUgc3RhbmRieSBkaWQgbm90 IGFsbG9jYXRlIGFueSBzaGFyZWQgbWVtb3J5IGZvciB0cmFja2luZyBwcmVwYXJlZAorICAg IHRyYW5zYWN0aW9ucywgdGhlbiByZWNvdmVyeSB3aWxsIGFib3J0IGFuZCBjYW5ub3QgY29u dGludWUgdW50aWwgdGhlCisgICAgc3RhbmRieSdzIGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdl ZC4gIFRoZSBwYXJhbWV0ZXJzIGFmZmVjdGVkIGFyZToKIAogICAgICAgPGl0ZW1pemVkbGlz dD4KICAgICAgICA8bGlzdGl0ZW0+CkBAIC0yMTg4LDYgKzIxODQsMzQgQEAgPHRpdGxlPkFk bWluaXN0cmF0b3IncyBPdmVydmlldzwvdGl0bGU+CiAgICAgICAgIDwvcGFyYT4KICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgPC9pdGVtaXplZGxpc3Q+CisKKyAgICBUaGUgZWFzaWVz dCB3YXkgdG8gZW5zdXJlIHRoaXMgZG9lcyBub3QgYmVjb21lIGEgcHJvYmxlbSBpcyB0byBo YXZlIHRoZXNlCisgICAgcGFyYW1ldGVycyBzZXQgb24gdGhlIHN0YW5kYnlzIHRvIHZhbHVl cyBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gb24gdGhlCisgICAgcHJpbWFyeS4gIFRoZXJl Zm9yZSwgaWYgeW91IHdhbnQgdG8gaW5jcmVhc2UgdGhlc2UgdmFsdWVzLCB5b3Ugc2hvdWxk IGRvCisgICAgc28gb24gYWxsIHN0YW5kYnkgc2VydmVycyBmaXJzdCwgYmVmb3JlIGFwcGx5 aW5nIHRoZSBjaGFuZ2VzIHRvIHRoZQorICAgIHByaW1hcnkgc2VydmVyLiAgQ29udmVyc2Vs eSwgaWYgeW91IHdhbnQgdG8gZGVjcmVhc2UgdGhlc2UgdmFsdWVzLCB5b3UKKyAgICBzaG91 bGQgZG8gc28gb24gdGhlIHByaW1hcnkgc2VydmVyIGZpcnN0LCBiZWZvcmUgYXBwbHlpbmcg dGhlIGNoYW5nZXMgdG8KKyAgICBhbGwgc3RhbmRieSBzZXJ2ZXJzLiAgVGhlIFdBTCB0cmFj a3MgY2hhbmdlcyB0byB0aGVzZSBwYXJhbWV0ZXJzIG9uIHRoZQorICAgIHByaW1hcnksIGFu ZCBpZiBhIHN0YW5kYnkgcHJvY2Vzc2VzIFdBTCB0aGF0IGluZGljYXRlcyB0aGF0IHRoZSBj dXJyZW50CisgICAgdmFsdWUgb24gdGhlIHByaW1hcnkgaXMgaGlnaGVyIHRoYW4gaXRzIG93 biB2YWx1ZSwgaXQgd2lsbCBsb2cgYSB3YXJuaW5nLCBmb3IgZXhhbXBsZToKKzxzY3JlZW4+ CitXQVJOSU5HOiAgaW5zdWZmaWNpZW50IHNldHRpbmcgZm9yIHBhcmFtZXRlciBtYXhfY29u bmVjdGlvbnMKK0RFVEFJTDogIG1heF9jb25uZWN0aW9ucyA9IDgwIGlzIGEgbG93ZXIgc2V0 dGluZyB0aGFuIG9uIHRoZSBtYXN0ZXIgc2VydmVyICh3aGVyZSBpdHMgdmFsdWUgd2FzIDEw MCkuCitISU5UOiAgQ2hhbmdlIHBhcmFtZXRlcnMgYW5kIHJlc3RhcnQgdGhlIHNlcnZlciwg b3IgdGhlcmUgbWF5IGJlIHJlc291cmNlIGV4aGF1c3Rpb24gZXJyb3JzIHNvb25lciBvciBs YXRlci4KKzwvc2NyZWVuPgorICAgIFJlY292ZXJ5IHdpbGwgY29udGludWUgYnV0IGNvdWxk IGFib3J0IGF0IGFueSB0aW1lIHRoZXJlYWZ0ZXIuICAoSXQgY291bGQKKyAgICBhbHNvIG5l dmVyIGVuZCB1cCBmYWlsaW5nIGlmIHRoZSBhY3Rpdml0eSBvbiB0aGUgcHJpbWFyeSBkb2Vz IG5vdCBhY3R1YWxseQorICAgIHJlcXVpcmUgdGhlIGZ1bGwgZXh0ZW50IG9mIHRoZSBhbGxv Y2F0ZWQgc2hhcmVkIG1lbW9yeSByZXNvdXJjZXMuKSAgSWYKKyAgICByZWNvdmVyeSByZWFj aGVzIGEgcG9pbnQgd2hlcmUgaXQgY2Fubm90IGNvbnRpbnVlIGR1ZSB0byBsYWNrIG9mIHNo YXJlZAorICAgIG1lbW9yeSwgcmVjb3Zlcnkgd2lsbCBwYXVzZSBhbmQgYW5vdGhlciB3YXJu aW5nIHdpbGwgYmUgbG9nZ2VkLCBmb3IgZXhhbXBsZToKKzxzY3JlZW4+CitXQVJOSU5HOiAg cmVjb3ZlcnkgcGF1c2VkIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHBhcmFtZXRlciBzZXR0 aW5ncworREVUQUlMOiAgU2VlIGVhcmxpZXIgaW4gdGhlIGxvZyBhYm91dCB3aGljaCBzZXR0 aW5ncyBhcmUgaW5zdWZmaWNpZW50LgorSElOVDogIFJlY292ZXJ5IGNhbm5vdCBjb250aW51 ZSB1bmxlc3MgdGhlIGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZCBhbmQgdGhlIHNlcnZlciBy ZXN0YXJ0ZWQuCis8L3NjcmVlbj4KKyAgICBUaGlzIHdhcm5pbmcgd2lsbCByZXBlYXRlZCBv bmNlIGEgbWludXRlLiAgQXQgdGhhdCBwb2ludCwgdGhlIHNldHRpbmdzIG9uCisgICAgdGhl IHN0YW5kYnkgbmVlZCB0byBiZSB1cGRhdGVkIGFuZCB0aGUgaW5zdGFuY2UgcmVzdGFydGVk IGJlZm9yZSByZWNvdmVyeQorICAgIGNhbiBjb250aW51ZS4KICAgIDwvcGFyYT4KIAogICAg PHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFz ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYwppbmRleCA1YWRm OTU2ZjQxLi5jZTM1ZjE1ZjM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS90d29waGFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3Bo YXNlLmMKQEAgLTIzNjAsMTEgKzIzNjAsMTQgQEAgUHJlcGFyZVJlZG9BZGQoY2hhciAqYnVm LCBYTG9nUmVjUHRyIHN0YXJ0X2xzbiwKIAogCS8qIEdldCBhIGZyZWUgZ3hhY3QgZnJvbSB0 aGUgZnJlZWxpc3QgKi8KIAlpZiAoVHdvUGhhc2VTdGF0ZS0+ZnJlZUdYYWN0cyA9PSBOVUxM KQorCXsKKwkJU3RhbmRieVBhcmFtRXJyb3JQYXVzZVJlY292ZXJ5KCk7CiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKIAkJCQkgZXJy bXNnKCJtYXhpbXVtIG51bWJlciBvZiBwcmVwYXJlZCB0cmFuc2FjdGlvbnMgcmVhY2hlZCIp LAogCQkJCSBlcnJoaW50KCJJbmNyZWFzZSBtYXhfcHJlcGFyZWRfdHJhbnNhY3Rpb25zIChj dXJyZW50bHkgJWQpLiIsCiAJCQkJCQkgbWF4X3ByZXBhcmVkX3hhY3RzKSkpOworCX0KIAln eGFjdCA9IFR3b1BoYXNlU3RhdGUtPmZyZWVHWGFjdHM7CiAJVHdvUGhhc2VTdGF0ZS0+ZnJl ZUdYYWN0cyA9IGd4YWN0LT5uZXh0OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMK aW5kZXggNjE0YTI1MjQyYi4uM2U4MjVhMjQxNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2cuYwpAQCAtMjU4LDYgKzI1OCw4IEBAIGJvb2wJCUluQXJjaGl2ZVJlY292ZXJ5ID0g ZmFsc2U7CiBzdGF0aWMgYm9vbCBzdGFuZGJ5X3NpZ25hbF9maWxlX2ZvdW5kID0gZmFsc2U7 CiBzdGF0aWMgYm9vbCByZWNvdmVyeV9zaWduYWxfZmlsZV9mb3VuZCA9IGZhbHNlOwogCitz dGF0aWMgYm9vbCBuZWVkX3Jlc3RhcnRfZm9yX3BhcmFtZXRlcl92YWx1ZXMgPSBmYWxzZTsK KwogLyogV2FzIHRoZSBsYXN0IHhsb2cgZmlsZSByZXN0b3JlZCBmcm9tIGFyY2hpdmUsIG9y IGxvY2FsPyAqLwogc3RhdGljIGJvb2wgcmVzdG9yZWRGcm9tQXJjaGl2ZSA9IGZhbHNlOwog CkBAIC01OTcxLDYgKzU5NzMsNTIgQEAgU2V0UmVjb3ZlcnlQYXVzZShib29sIHJlY292ZXJ5 UGF1c2UpCiAJU3BpbkxvY2tSZWxlYXNlKCZYTG9nQ3RsLT5pbmZvX2xjayk7CiB9CiAKKy8q CisgKiBJZiBpbiBob3Qgc3RhbmRieSwgcGF1c2UgcmVjb3ZlcnkgYmVjYXVzZSBvZiBhIHBh cmFtZXRlciBjb25mbGljdC4KKyAqCisgKiBTaW1pbGFyIHRvIHJlY292ZXJ5UGF1c2VzSGVy ZSgpIGJ1dCB3aXRoIGEgZGlmZmVyZW50IG1lc3NhZ2luZy4gIFRoZSB1c2VyCisgKiBpcyBl eHBlY3RlZCB0byBtYWtlIHRoZSBwYXJhbWV0ZXIgY2hhbmdlIGFuZCByZXN0YXJ0IHRoZSBz ZXJ2ZXIuICBJZiB0aGV5CisgKiBqdXN0IHVucGF1c2UgcmVjb3ZlcnksIHRoZXkgd2lsbCB0 aGVuIHJ1biBpbnRvIHdoYXRldmVyIGVycm9yIGNoYW5nZSBpcworICogYWZ0ZXIgdGhpcyBm dW5jdGlvbiBjYWxsIGZvciB0aGUgbm9uLWhvdC1zdGFuZGJ5IGNhc2UuCisgKgorICogV2Ug aW50ZW50aW9uYWxseSBkbyBub3QgZ2l2ZSBhZHZpY2UgYWJvdXQgc3BlY2lmaWMgcGFyYW1l dGVycyBvciB2YWx1ZXMKKyAqIGhlcmUgYmVjYXVzZSBpdCBtaWdodCBiZSBtaXNsZWFkaW5n LiAgRm9yIGV4YW1wbGUsIGlmIHdlIHJ1biBvdXQgb2YgbG9jaworICogc3BhY2UsIHRoZW4g aW4gdGhlIHNpbmdsZS1zZXJ2ZXIgY2FzZSB3ZSB3b3VsZCByZWNvbW1lbmQgcmFpc2luZwor ICogbWF4X2xvY2tzX3Blcl90cmFuc2FjdGlvbiwgYnV0IGluIHJlY292ZXJ5IGl0IGNvdWxk IGVxdWFsbHkgYmUgdGhlIGNhc2UKKyAqIHRoYXQgbWF4X2Nvbm5lY3Rpb25zIGlzIG91dCBv ZiBzeW5jIHdpdGggdGhlIHByaW1hcnkuICBJZiB3ZSBnZXQgaGVyZSwgd2UKKyAqIGhhdmUg YWxyZWFkeSBsb2dnZWQgYW55IHBhcmFtZXRlciBkaXNjcmVwYW5jeSBpbgorICogUmVjb3Zl cnlSZXF1aXJlc0ludFBhcmFtZXRlcigpLCBzbyB1c2VycyBjYW4gZ28gYmFjayB0byB0aGF0 IGFuZCBnZXQKKyAqIGNvbmNyZXRlIGFuZCBhY2N1cmF0ZSBpbmZvcm1hdGlvbi4KKyAqLwor dm9pZAorU3RhbmRieVBhcmFtRXJyb3JQYXVzZVJlY292ZXJ5KHZvaWQpCit7CisJVGltZXN0 YW1wVHogbGFzdF93YXJuaW5nID0gMDsKKworCWlmICghQW1TdGFydHVwUHJvY2VzcygpIHx8 ICFuZWVkX3Jlc3RhcnRfZm9yX3BhcmFtZXRlcl92YWx1ZXMpCisJCXJldHVybjsKKworCVNl dFJlY292ZXJ5UGF1c2UodHJ1ZSk7CisKKwlkbworCXsKKwkJVGltZXN0YW1wVHogbm93ID0g R2V0Q3VycmVudFRpbWVzdGFtcCgpOworCisJCWlmIChUaW1lc3RhbXBEaWZmZXJlbmNlRXhj ZWVkcyhsYXN0X3dhcm5pbmcsIG5vdywgNjAwMDApKQorCQl7CisJCQllcmVwb3J0KFdBUk5J TkcsCisJCQkJCShlcnJtc2coInJlY292ZXJ5IHBhdXNlZCBiZWNhdXNlIG9mIGluc3VmZmlj aWVudCBwYXJhbWV0ZXIgc2V0dGluZ3MiKSwKKwkJCQkJIGVycmRldGFpbCgiU2VlIGVhcmxp ZXIgaW4gdGhlIGxvZyBhYm91dCB3aGljaCBzZXR0aW5ncyBhcmUgaW5zdWZmaWNpZW50LiIp LAorCQkJCQkgZXJyaGludCgiUmVjb3ZlcnkgY2Fubm90IGNvbnRpbnVlIHVubGVzcyB0aGUg Y29uZmlndXJhdGlvbiBpcyBjaGFuZ2VkIGFuZCB0aGUgc2VydmVyIHJlc3RhcnRlZC4iKSkp OworCQkJbGFzdF93YXJuaW5nID0gbm93OworCQl9CisKKwkJcGdfdXNsZWVwKDEwMDAwMDBM KTsgICAgLyogMTAwMCBtcyAqLworCQlIYW5kbGVTdGFydHVwUHJvY0ludGVycnVwdHMoKTsK Kwl9CisJd2hpbGUgKFJlY292ZXJ5SXNQYXVzZWQoKSk7Cit9CisKIC8qCiAgKiBXaGVuIHJl Y292ZXJ5X21pbl9hcHBseV9kZWxheSBpcyBzZXQsIHdlIHdhaXQgbG9uZyBlbm91Z2ggdG8g bWFrZSBzdXJlCiAgKiBjZXJ0YWluIHJlY29yZCB0eXBlcyBhcmUgYXBwbGllZCBhdCBsZWFz dCB0aGF0IGludGVydmFsIGJlaGluZCB0aGUgbWFzdGVyLgpAQCAtNjE1MCwxNiArNjE5OCwy MCBAQCBHZXRYTG9nUmVjZWlwdFRpbWUoVGltZXN0YW1wVHogKnJ0aW1lLCBib29sICpmcm9t U3RyZWFtKQogICogTm90ZSB0aGF0IHRleHQgZmllbGQgc3VwcGxpZWQgaXMgYSBwYXJhbWV0 ZXIgbmFtZSBhbmQgZG9lcyBub3QgcmVxdWlyZQogICogdHJhbnNsYXRpb24KICAqLwotI2Rl ZmluZSBSZWNvdmVyeVJlcXVpcmVzSW50UGFyYW1ldGVyKHBhcmFtX25hbWUsIGN1cnJWYWx1 ZSwgbWluVmFsdWUpIFwKLWRvIHsgXAotCWlmICgoY3VyclZhbHVlKSA8IChtaW5WYWx1ZSkp IFwKLQkJZXJlcG9ydChFUlJPUiwgXAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLCBcCi0JCQkJIGVycm1zZygiaG90IHN0YW5kYnkgaXMgbm90IHBv c3NpYmxlIGJlY2F1c2UgJXMgPSAlZCBpcyBhIGxvd2VyIHNldHRpbmcgdGhhbiBvbiB0aGUg bWFzdGVyIHNlcnZlciAoaXRzIHZhbHVlIHdhcyAlZCkiLCBcCi0JCQkJCQlwYXJhbV9uYW1l LCBcCi0JCQkJCQljdXJyVmFsdWUsIFwKLQkJCQkJCW1pblZhbHVlKSkpOyBcCi19IHdoaWxl KDApCitzdGF0aWMgdm9pZAorUmVjb3ZlcnlSZXF1aXJlc0ludFBhcmFtZXRlcihjb25zdCBj aGFyICpwYXJhbV9uYW1lLCBpbnQgY3VyclZhbHVlLCBpbnQgbWluVmFsdWUpCit7CisJaWYg KGN1cnJWYWx1ZSA8IG1pblZhbHVlKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBlcnJtc2co Imluc3VmZmljaWVudCBzZXR0aW5nIGZvciBwYXJhbWV0ZXIgJXMiLCBwYXJhbV9uYW1lKSwK KwkJCQkgZXJyZGV0YWlsKCIlcyA9ICVkIGlzIGEgbG93ZXIgc2V0dGluZyB0aGFuIG9uIHRo ZSBtYXN0ZXIgc2VydmVyICh3aGVyZSBpdHMgdmFsdWUgd2FzICVkKS4iLAorCQkJCQkJICAg cGFyYW1fbmFtZSwgY3VyclZhbHVlLCBtaW5WYWx1ZSksCisJCQkJIGVycmhpbnQoIkNoYW5n ZSBwYXJhbWV0ZXJzIGFuZCByZXN0YXJ0IHRoZSBzZXJ2ZXIsIG9yIHRoZXJlIG1heSBiZSBy ZXNvdXJjZSBleGhhdXN0aW9uIGVycm9ycyBzb29uZXIgb3IgbGF0ZXIuIikpKTsKKwkJbmVl ZF9yZXN0YXJ0X2Zvcl9wYXJhbWV0ZXJfdmFsdWVzID0gdHJ1ZTsKKwl9Cit9CiAKIC8qCiAg KiBDaGVjayB0byBzZWUgaWYgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgc2V0IGhpZ2ggZW5v dWdoIG9uIHRoaXMgc2VydmVyCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9wcm9jYXJyYXkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmlu ZGV4IGY0NWE2MTlkZWIuLmNmYjg4ZGI0YTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3Byb2NhcnJheS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3By b2NhcnJheS5jCkBAIC0zNjU0LDcgKzM2NTQsMTQgQEAgS25vd25Bc3NpZ25lZFhpZHNBZGQo VHJhbnNhY3Rpb25JZCBmcm9tX3hpZCwgVHJhbnNhY3Rpb25JZCB0b194aWQsCiAJCSAqIElm IGl0IHN0aWxsIHdvbid0IGZpdCB0aGVuIHdlJ3JlIG91dCBvZiBtZW1vcnkKIAkJICovCiAJ CWlmIChoZWFkICsgbnhpZHMgPiBwQXJyYXktPm1heEtub3duQXNzaWduZWRYaWRzKQotCQkJ ZWxvZyhFUlJPUiwgInRvbyBtYW55IEtub3duQXNzaWduZWRYaWRzIik7CisJCXsKKwkJCVN0 YW5kYnlQYXJhbUVycm9yUGF1c2VSZWNvdmVyeSgpOworCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKKwkJCQkJIGVycm1zZygib3V0 IG9mIHNoYXJlZCBtZW1vcnkiKSwKKwkJCQkJIGVycmRldGFpbCgiVGhlcmUgYXJlIG5vIG1v cmUgS25vd25Bc3NpZ25lZFhpZHMgc2xvdHMuIiksCisJCQkJCSBlcnJoaW50KCJZb3UgbWln aHQgbmVlZCB0byBpbmNyZWFzZSBtYXhfY29ubmVjdGlvbnMuIikpKTsKKwkJfQogCX0KIAog CS8qIE5vdyB3ZSBjYW4gaW5zZXJ0IHRoZSB4aWRzIGludG8gdGhlIHNwYWNlIHN0YXJ0aW5n IGF0IGhlYWQgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2Nr LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jCmluZGV4IDU2ZGJhMDkyOTku LmNiY2M3NjExZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2Nr LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYwpAQCAtOTI0LDEwICs5 MjQsMTMgQEAgTG9ja0FjcXVpcmVFeHRlbmRlZChjb25zdCBMT0NLVEFHICpsb2NrdGFnLAog CQkJaWYgKGxvY2FsbG9ja3ApCiAJCQkJKmxvY2FsbG9ja3AgPSBOVUxMOwogCQkJaWYgKHJl cG9ydE1lbW9yeUVycm9yKQorCQkJeworCQkJCVN0YW5kYnlQYXJhbUVycm9yUGF1c2VSZWNv dmVyeSgpOwogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX09V VF9PRl9NRU1PUlkpLAogCQkJCQkJIGVycm1zZygib3V0IG9mIHNoYXJlZCBtZW1vcnkiKSwK IAkJCQkJCSBlcnJoaW50KCJZb3UgbWlnaHQgbmVlZCB0byBpbmNyZWFzZSBtYXhfbG9ja3Nf cGVyX3RyYW5zYWN0aW9uLiIpKSk7CisJCQl9CiAJCQllbHNlCiAJCQkJcmV0dXJuIExPQ0tB Q1FVSVJFX05PVF9BVkFJTDsKIAkJfQpAQCAtOTYyLDEwICs5NjUsMTMgQEAgTG9ja0FjcXVp cmVFeHRlbmRlZChjb25zdCBMT0NLVEFHICpsb2NrdGFnLAogCQlpZiAobG9jYWxsb2NrcCkK IAkJCSpsb2NhbGxvY2twID0gTlVMTDsKIAkJaWYgKHJlcG9ydE1lbW9yeUVycm9yKQorCQl7 CisJCQlTdGFuZGJ5UGFyYW1FcnJvclBhdXNlUmVjb3ZlcnkoKTsKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfT1VUX09GX01FTU9SWSksCiAJCQkJCSBlcnJt c2coIm91dCBvZiBzaGFyZWQgbWVtb3J5IiksCiAJCQkJCSBlcnJoaW50KCJZb3UgbWlnaHQg bmVlZCB0byBpbmNyZWFzZSBtYXhfbG9ja3NfcGVyX3RyYW5zYWN0aW9uLiIpKSk7CisJCX0K IAkJZWxzZQogCQkJcmV0dXJuIExPQ0tBQ1FVSVJFX05PVF9BVkFJTDsKIAl9CkBAIC0yNzQ3 LDYgKzI3NTMsNyBAQCBGYXN0UGF0aEdldFJlbGF0aW9uTG9ja0VudHJ5KExPQ0FMTE9DSyAq bG9jYWxsb2NrKQogCQl7CiAJCQlMV0xvY2tSZWxlYXNlKHBhcnRpdGlvbkxvY2spOwogCQkJ TFdMb2NrUmVsZWFzZSgmTXlQcm9jLT5iYWNrZW5kTG9jayk7CisJCQlTdGFuZGJ5UGFyYW1F cnJvclBhdXNlUmVjb3ZlcnkoKTsKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2Rl KEVSUkNPREVfT1VUX09GX01FTU9SWSksCiAJCQkJCSBlcnJtc2coIm91dCBvZiBzaGFyZWQg bWVtb3J5IiksCkBAIC00MDc3LDYgKzQwODQsNyBAQCBsb2NrX3R3b3BoYXNlX3JlY292ZXIo VHJhbnNhY3Rpb25JZCB4aWQsIHVpbnQxNiBpbmZvLAogCWlmICghbG9jaykKIAl7CiAJCUxX TG9ja1JlbGVhc2UocGFydGl0aW9uTG9jayk7CisJCVN0YW5kYnlQYXJhbUVycm9yUGF1c2VS ZWNvdmVyeSgpOwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT1VU X09GX01FTU9SWSksCiAJCQkJIGVycm1zZygib3V0IG9mIHNoYXJlZCBtZW1vcnkiKSwKQEAg LTQxNDIsNiArNDE1MCw3IEBAIGxvY2tfdHdvcGhhc2VfcmVjb3ZlcihUcmFuc2FjdGlvbklk IHhpZCwgdWludDE2IGluZm8sCiAJCQkJZWxvZyhQQU5JQywgImxvY2sgdGFibGUgY29ycnVw dGVkIik7CiAJCX0KIAkJTFdMb2NrUmVsZWFzZShwYXJ0aXRpb25Mb2NrKTsKKwkJU3RhbmRi eVBhcmFtRXJyb3JQYXVzZVJlY292ZXJ5KCk7CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKIAkJCQkgZXJybXNnKCJvdXQgb2Ygc2hh cmVkIG1lbW9yeSIpLApAQCAtNDQzNCw2ICs0NDQzLDcgQEAgVmlydHVhbFhhY3RMb2NrKFZp cnR1YWxUcmFuc2FjdGlvbklkIHZ4aWQsIGJvb2wgd2FpdCkKIAkJewogCQkJTFdMb2NrUmVs ZWFzZShwYXJ0aXRpb25Mb2NrKTsKIAkJCUxXTG9ja1JlbGVhc2UoJnByb2MtPmJhY2tlbmRM b2NrKTsKKwkJCVN0YW5kYnlQYXJhbUVycm9yUGF1c2VSZWNvdmVyeSgpOwogCQkJZXJlcG9y dChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKIAkJCQkJ IGVycm1zZygib3V0IG9mIHNoYXJlZCBtZW1vcnkiKSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IDk4 YjAzM2ZjMjAuLmZhZTE5YTlkMjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94 bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaApAQCAtMjg2LDYgKzI4Niw3 IEBAIGV4dGVybiBYTG9nUmVjUHRyIEdldFhMb2dJbnNlcnRSZWNQdHIodm9pZCk7CiBleHRl cm4gWExvZ1JlY1B0ciBHZXRYTG9nV3JpdGVSZWNQdHIodm9pZCk7CiBleHRlcm4gYm9vbCBS ZWNvdmVyeUlzUGF1c2VkKHZvaWQpOwogZXh0ZXJuIHZvaWQgU2V0UmVjb3ZlcnlQYXVzZShi b29sIHJlY292ZXJ5UGF1c2UpOworZXh0ZXJuIHZvaWQgU3RhbmRieVBhcmFtRXJyb3JQYXVz ZVJlY292ZXJ5KHZvaWQpOwogZXh0ZXJuIFRpbWVzdGFtcFR6IEdldExhdGVzdFhUaW1lKHZv aWQpOwogZXh0ZXJuIFRpbWVzdGFtcFR6IEdldEN1cnJlbnRDaHVua1JlcGxheVN0YXJ0VGlt ZSh2b2lkKTsKIAotLSAKMi4yNS4wCgo= --------------71D229E2A1C9D14625FFBED5--