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 1kg6Fg-0003A1-PA for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Nov 2020 13:15:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kg6Ff-0003vo-MG for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Nov 2020 13:14:59 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kg6Fe-0003vh-Qd for pgsql-hackers@lists.postgresql.org; Fri, 20 Nov 2020 13:14:59 +0000 Received: from forward5-smtp.messagingengine.com ([66.111.4.239]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kg6FW-0004o4-FK for pgsql-hackers@postgresql.org; Fri, 20 Nov 2020 13:14:58 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.nyi.internal (Postfix) with ESMTP id 933FA1943669; Fri, 20 Nov 2020 08:14:47 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Fri, 20 Nov 2020 08:14:47 -0500 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=fm1; bh=ROF+7U rtXBcIJDhqdev5G9GpGkMF/rWimiBbqTRGiHA=; b=bfK7c7jm84yk9WxBdf3YyV UMIngF5SlqeBgWfUKn/hYPUeCJCQH9axZXJWPHMKL5rxI617DzAn8SMuRevgadIc 5hV7xUOHFzSYfRWEMQVAqbylhti/6SrarAPPGfXRPtBj86OoByUsQYmB6bUE3dYd 3gfx5ebKbK+9+TGEWJCuso2ZaEkGIfIG7w6jw6pUjJrisdN5sDgvnw61aQtk3SF+ cGjD5yLDxqCxTNKRnFLPtpcXeSHQhz5n2cHVW/55i5qRD3jlIHXE6RuxqLfcvs8k 1wY6T3ubyCmWQJpLZR0gTM8aWp1augcam+3ObjaJNUhGBAUO9PKK4Yew9HCkZl4g == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrudegtddggeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepuffvfhfhohfkffgfgggjtgesmhdtreertdefjeenucfhrhhomheprfgvthgv rhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghishgvnhhtrhgruhhtsedvnhguqh hurggurhgrnhhtrdgtohhmqeenucggtffrrghtthgvrhhnpedugfeuveeileeugfegledu gffhuefhhfejheefgfeludeftdeivedugfegvefgjeenucffohhmrghinhepvdhnughquh grughrrghnthdrtghomhenucfkphepkeejrddujeejrdejhedrleegnecuvehluhhsthgv rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnh htrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhm X-ME-Proxy: Received: from april.pezone.net (p57b14b5e.dip0.t-ipconnect.de [87.177.75.94]) by mail.messagingengine.com (Postfix) with ESMTPA id 195E43064AB4; Fri, 20 Nov 2020 08:14:46 -0500 (EST) Subject: Re: Improve handling of parameter differences in physical replication To: Sergei Kornilov , 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> <5e93f9f5-9572-38d0-b740-f8a20dfcc165@2ndquadrant.com> <2985371605808012@mail.yandex.ru> Cc: Masahiko Sawada , Kyotaro Horiguchi , =?UTF-8?Q?=c3=81lvaro_Herrera?= From: Peter Eisentraut Organization: 2ndQuadrant Message-ID: Date: Fri, 20 Nov 2020 14:14:44 +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: <2985371605808012@mail.yandex.ru> Content-Type: multipart/mixed; boundary="------------9B458140AF5793CDE387A4AD" 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. --------------9B458140AF5793CDE387A4AD Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020-11-19 20:17, Sergei Kornilov wrote: > Seems WAIT_EVENT_RECOVERY_PAUSE addition was lost during patch simplification. added >> ereport(FATAL, >> (errmsg("recovery aborted because of insufficient parameter settings"), >> errhint("You can restart the server after making the necessary configuration changes."))); > > I think we should repeat here conflicted param_name and minValue. pg_wal_replay_resume can be called days after recovery being paused. The initial message can be difficult to find. done > >> errmsg("recovery will be paused") > > May be use the same "recovery has paused" as in recoveryPausesHere? It doesn't seem to make any difference since we set pause right after that, but there will be a little less work translators. done > Not sure about "If recovery is unpaused". The word "resumed" seems to have been usually used in docs. I think I like "unpaused" better here, because "resumed" would seem to imply that recovery can actually continue. One thing that has not been added to my patch is the equivalent of 496ee647ecd2917369ffcf1eaa0b2cdca07c8730, which allows promotion while recovery is paused. I'm not sure that would be necessary, and it doesn't look easy to add either. -- Peter Eisentraut 2ndQuadrant, an EDB company https://www.2ndquadrant.com/ --------------9B458140AF5793CDE387A4AD Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v5-0001-Pause-recovery-for-insufficient-parameter-setting.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v5-0001-Pause-recovery-for-insufficient-parameter-setting.pa"; filename*1="tch" RnJvbSA5OTcyNGUyZWUxNGI1ZjNlYzkyNmM3YWZkYzA1Njg2M2E3ZTIyOTRmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAyMCBOb3YgMjAyMCAxMzozOTowOSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjVdIFBhdXNlIHJlY292ZXJ5IGZvciBpbnN1ZmZpY2llbnQgcGFyYW1ldGVy IHNldHRpbmdzCgpXaGVuIGNlcnRhaW4gcGFyYW1ldGVycyBhcmUgY2hhbmdlZCBvbiBhIHBo eXNpY2FsIHJlcGxpY2F0aW9uIHByaW1hcnksCnRoaXMgaXMgY29tbXVuaWNhdGVkIHRvIHN0 YW5kYnlzIHVzaW5nIHRoZSBYTE9HX1BBUkFNRVRFUl9DSEFOR0UgV0FMCnJlY29yZC4gIFRo ZSBzdGFuZGJ5IHRoZW4gY2hlY2tzIHdoZXRoZXIgaXRzIG93biBzZXR0aW5ncyBhcmUgYXQg bGVhc3QKYXMgYmlnIGFzIHRoZSBvbmVzIG9uIHRoZSBwcmltYXJ5LiAgSWYgbm90LCB0aGUg c3RhbmRieSBzaHV0cyBkb3duCndpdGggYSBmYXRhbCBlcnJvci4KClRoaXMgcGF0Y2ggY2hh bmdlcyB0aGlzIGJlaGF2aW9yIHRvIHBhdXNlIHJlY292ZXJ5IGF0IHRoYXQgcG9pbnQKaW5z dGVhZC4gIFRoYXQgYWxsb3dzIHJlYWQgdHJhZmZpYyBvbiB0aGUgc3RhbmRieSB0byBjb250 aW51ZSB3aGlsZQpkYXRhYmFzZSBhZG1pbmlzdHJhdG9ycyBmaWd1cmUgb3V0IG5leHQgc3Rl cHMuICBXaGVuIHJlY292ZXJ5IGlzCnVucGF1c2VkLCB0aGUgc2VydmVyIHNodXRzIGRvd24g KGFzIGJlZm9yZSkuICBUaGUgaWRlYSBpcyB0byBmaXggdGhlCnBhcmFtZXRlcnMgd2hpbGUg cmVjb3ZlcnkgaXMgcGF1c2VkIGFuZCB0aGVuIHJlc3RhcnQgd2hlbiB0aGVyZSBpcyBhCm1h aW50ZW5hbmNlIHdpbmRvdy4KCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwu b3JnL21lc3NhZ2UtaWQvZmxhdC80YWQ2OWE0Yy1jYzliLTBkZmUtMDM1Mi04YjFiMGNkMzZj N2JAMm5kcXVhZHJhbnQuY29tCi0tLQogZG9jL3NyYy9zZ21sL2hpZ2gtYXZhaWxhYmlsaXR5 LnNnbWwgfCA0OCArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jICAgfCAzOCArKysrKysrKysrKysrKysrKysrKy0tLQog MiBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBiL2RvYy9z cmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IDE5ZDdiZDJiMjguLmU5YTMw ZGQ4OGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC0yMTIwLDE4 ICsyMTIwLDE0IEBAIDx0aXRsZT5BZG1pbmlzdHJhdG9yJ3MgT3ZlcnZpZXc8L3RpdGxlPgog ICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBUaGUgc2V0dGluZyBvZiBzb21lIHBhcmFt ZXRlcnMgb24gdGhlIHN0YW5kYnkgd2lsbCBuZWVkIHJlY29uZmlndXJhdGlvbgotICAgIGlm IHRoZXkgaGF2ZSBiZWVuIGNoYW5nZWQgb24gdGhlIHByaW1hcnkuIEZvciB0aGVzZSBwYXJh bWV0ZXJzLAotICAgIHRoZSB2YWx1ZSBvbiB0aGUgc3RhbmRieSBtdXN0Ci0gICAgYmUgZXF1 YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB2YWx1ZSBvbiB0aGUgcHJpbWFyeS4KLSAgICBU aGVyZWZvcmUsIGlmIHlvdSB3YW50IHRvIGluY3JlYXNlIHRoZXNlIHZhbHVlcywgeW91IHNo b3VsZCBkbyBzbyBvbiBhbGwKLSAgICBzdGFuZGJ5IHNlcnZlcnMgZmlyc3QsIGJlZm9yZSBh cHBseWluZyB0aGUgY2hhbmdlcyB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuCi0gICAgQ29udmVy c2VseSwgaWYgeW91IHdhbnQgdG8gZGVjcmVhc2UgdGhlc2UgdmFsdWVzLCB5b3Ugc2hvdWxk IGRvIHNvIG9uIHRoZQotICAgIHByaW1hcnkgc2VydmVyIGZpcnN0LCBiZWZvcmUgYXBwbHlp bmcgdGhlIGNoYW5nZXMgdG8gYWxsIHN0YW5kYnkgc2VydmVycy4KLSAgICBJZiB0aGVzZSBw YXJhbWV0ZXJzCi0gICAgYXJlIG5vdCBzZXQgaGlnaCBlbm91Z2ggdGhlbiB0aGUgc3RhbmRi eSB3aWxsIHJlZnVzZSB0byBzdGFydC4KLSAgICBIaWdoZXIgdmFsdWVzIGNhbiB0aGVuIGJl IHN1cHBsaWVkIGFuZCB0aGUgc2VydmVyCi0gICAgcmVzdGFydGVkIHRvIGJlZ2luIHJlY292 ZXJ5IGFnYWluLiAgVGhlc2UgcGFyYW1ldGVycyBhcmU6CisgICAgVGhlIHNldHRpbmdzIG9m IHNvbWUgcGFyYW1ldGVycyBkZXRlcm1pbmUgdGhlIHNpemUgb2Ygc2hhcmVkIG1lbW9yeSBm b3IKKyAgICB0cmFja2luZyB0cmFuc2FjdGlvbiBJRHMsIGxvY2tzLCBhbmQgcHJlcGFyZWQg dHJhbnNhY3Rpb25zLiAgVGhlc2Ugc2hhcmVkCisgICAgbWVtb3J5IHN0cnVjdHVyZXMgbXVz dCBiZSBubyBzbWFsbGVyIG9uIGEgc3RhbmRieSB0aGFuIG9uIHRoZSBwcmltYXJ5IGluCisg ICAgb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIHN0YW5kYnkgZG9lcyBub3QgcnVuIG91dCBv ZiBzaGFyZWQgbWVtb3J5IGR1cmluZworICAgIHJlY292ZXJ5LiAgRm9yIGV4YW1wbGUsIGlm IHRoZSBwcmltYXJ5IGhhZCB1c2VkIGEgcHJlcGFyZWQgdHJhbnNhY3Rpb24gYnV0CisgICAg dGhlIHN0YW5kYnkgaGFkIG5vdCBhbGxvY2F0ZWQgYW55IHNoYXJlZCBtZW1vcnkgZm9yIHRy YWNraW5nIHByZXBhcmVkCisgICAgdHJhbnNhY3Rpb25zLCB0aGVuIHJlY292ZXJ5IGNvdWxk IG5vdCBjb250aW51ZSB1bnRpbCB0aGUgc3RhbmRieSdzCisgICAgY29uZmlndXJhdGlvbiBp cyBjaGFuZ2VkLiAgVGhlIHBhcmFtZXRlcnMgYWZmZWN0ZWQgYXJlOgogCiAgICAgICA8aXRl bWl6ZWRsaXN0PgogICAgICAgIDxsaXN0aXRlbT4KQEAgLTIxNjAsNiArMjE1NiwzNCBAQCA8 dGl0bGU+QWRtaW5pc3RyYXRvcidzIE92ZXJ2aWV3PC90aXRsZT4KICAgICAgICAgPC9wYXJh PgogICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L2l0ZW1pemVkbGlzdD4KKworICAgIFRo ZSBlYXNpZXN0IHdheSB0byBlbnN1cmUgdGhpcyBkb2VzIG5vdCBiZWNvbWUgYSBwcm9ibGVt IGlzIHRvIGhhdmUgdGhlc2UKKyAgICBwYXJhbWV0ZXJzIHNldCBvbiB0aGUgc3RhbmRieXMg dG8gdmFsdWVzIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiBvbiB0aGUKKyAgICBwcmltYXJ5 LiAgVGhlcmVmb3JlLCBpZiB5b3Ugd2FudCB0byBpbmNyZWFzZSB0aGVzZSB2YWx1ZXMsIHlv dSBzaG91bGQgZG8KKyAgICBzbyBvbiBhbGwgc3RhbmRieSBzZXJ2ZXJzIGZpcnN0LCBiZWZv cmUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgdG8gdGhlCisgICAgcHJpbWFyeSBzZXJ2ZXIuICBD b252ZXJzZWx5LCBpZiB5b3Ugd2FudCB0byBkZWNyZWFzZSB0aGVzZSB2YWx1ZXMsIHlvdQor ICAgIHNob3VsZCBkbyBzbyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIgZmlyc3QsIGJlZm9yZSBh cHBseWluZyB0aGUgY2hhbmdlcyB0bworICAgIGFsbCBzdGFuZGJ5IHNlcnZlcnMuICBLZWVw IGluIG1pbmQgdGhhdCB3aGVuIGEgc3RhbmRieSBpcyBwcm9tb3RlZCwgaXQKKyAgICBiZWNv bWVzIHRoZSBuZXcgcmVmZXJlbmNlIGZvciB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyIHNldHRp bmdzIGZvciB0aGUKKyAgICBzdGFuZGJ5cyB0aGF0IGZvbGxvdyBpdC4gIFRoZXJlZm9yZSwg dG8gYXZvaWQgdGhpcyBiZWNvbWluZyBhIHByb2JsZW0KKyAgICBkdXJpbmcgYSBzd2l0Y2hv dmVyIG9yIGZhaWxvdmVyLCBpdCBpcyByZWNvbW1lbmRlZCB0byBrZWVwIHRoZXNlIHNldHRp bmdzCisgICAgdGhlIHNhbWUgb24gYWxsIHN0YW5kYnkgc2VydmVycy4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgVGhlIFdBTCB0cmFja3MgY2hhbmdlcyB0byB0aGVzZSBwYXJh bWV0ZXJzIG9uIHRoZQorICAgIHByaW1hcnksIGFuZCBpZiBhIHN0YW5kYnkgcHJvY2Vzc2Vz IFdBTCB0aGF0IGluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50CisgICAgdmFsdWUgb24gdGhl IHByaW1hcnkgaXMgaGlnaGVyIHRoYW4gaXRzIG93biB2YWx1ZSwgaXQgd2lsbCBsb2cgYSB3 YXJuaW5nCisgICAgYW5kIHBhdXNlIHJlY292ZXJ5LCBmb3IgZXhhbXBsZToKKzxzY3JlZW4+ CitXQVJOSU5HOiAgaG90IHN0YW5kYnkgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2Ugb2YgaW5z dWZmaWNpZW50IHBhcmFtZXRlciBzZXR0aW5ncworREVUQUlMOiAgbWF4X2Nvbm5lY3Rpb25z ID0gODAgaXMgYSBsb3dlciBzZXR0aW5nIHRoYW4gb24gdGhlIHByaW1hcnkgc2VydmVyLCB3 aGVyZSBpdHMgdmFsdWUgd2FzIDEwMC4KK0xPRzogIHJlY292ZXJ5IGhhcyBwYXVzZWQKK0RF VEFJTDogIElmIHJlY292ZXJ5IGlzIHVucGF1c2VkLCB0aGUgc2VydmVyIHdpbGwgc2h1dCBk b3duLgorSElOVDogIFlvdSBjYW4gdGhlbiByZXN0YXJ0IHRoZSBzZXJ2ZXIgYWZ0ZXIgbWFr aW5nIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBjaGFuZ2VzLgorPC9zY3JlZW4+Cisg ICAgQXQgdGhhdCBwb2ludCwgdGhlIHNldHRpbmdzIG9uIHRoZSBzdGFuZGJ5IG5lZWQgdG8g YmUgdXBkYXRlZCBhbmQgdGhlCisgICAgaW5zdGFuY2UgcmVzdGFydGVkIGJlZm9yZSByZWNv dmVyeSBjYW4gY29udGludWUuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDEzZjFkOGMzZGMuLmEzNTE5ZDUwZTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTYyMzIsMTIgKzYyMzIsNDAgQEAgc3Rh dGljIHZvaWQKIFJlY292ZXJ5UmVxdWlyZXNJbnRQYXJhbWV0ZXIoY29uc3QgY2hhciAqcGFy YW1fbmFtZSwgaW50IGN1cnJWYWx1ZSwgaW50IG1pblZhbHVlKQogewogCWlmIChjdXJyVmFs dWUgPCBtaW5WYWx1ZSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVyZXBvcnQoV0FSTklO RywKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJ CQkgZXJybXNnKCJob3Qgc3RhbmRieSBpcyBub3QgcG9zc2libGUgYmVjYXVzZSAlcyA9ICVk IGlzIGEgbG93ZXIgc2V0dGluZyB0aGFuIG9uIHRoZSBwcmltYXJ5IHNlcnZlciAoaXRzIHZh bHVlIHdhcyAlZCkiLAotCQkJCQkJcGFyYW1fbmFtZSwKLQkJCQkJCWN1cnJWYWx1ZSwKLQkJ CQkJCW1pblZhbHVlKSkpOworCQkJCSBlcnJtc2coImhvdCBzdGFuZGJ5IGlzIG5vdCBwb3Nz aWJsZSBiZWNhdXNlIG9mIGluc3VmZmljaWVudCBwYXJhbWV0ZXIgc2V0dGluZ3MiKSwKKwkJ CQkgZXJyZGV0YWlsKCIlcyA9ICVkIGlzIGEgbG93ZXIgc2V0dGluZyB0aGFuIG9uIHRoZSBw cmltYXJ5IHNlcnZlciwgd2hlcmUgaXRzIHZhbHVlIHdhcyAlZC4iLAorCQkJCQkJICAgcGFy YW1fbmFtZSwKKwkJCQkJCSAgIGN1cnJWYWx1ZSwKKwkJCQkJCSAgIG1pblZhbHVlKSkpOwor CisJCVNldFJlY292ZXJ5UGF1c2UodHJ1ZSk7CisKKwkJZXJlcG9ydChMT0csCisJCQkJKGVy cm1zZygicmVjb3ZlcnkgaGFzIHBhdXNlZCIpLAorCQkJCSBlcnJkZXRhaWwoIklmIHJlY292 ZXJ5IGlzIHVucGF1c2VkLCB0aGUgc2VydmVyIHdpbGwgc2h1dCBkb3duLiIpLAorCQkJCSBl cnJoaW50KCJZb3UgY2FuIHRoZW4gcmVzdGFydCB0aGUgc2VydmVyIGFmdGVyIG1ha2luZyB0 aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4iKSkpOworCisJCXdoaWxlIChS ZWNvdmVyeUlzUGF1c2VkKCkpCisJCXsKKwkJCUhhbmRsZVN0YXJ0dXBQcm9jSW50ZXJydXB0 cygpOworCQkJcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0KFdBSVRfRVZFTlRfUkVDT1ZFUllf UEFVU0UpOworCQkJcGdfdXNsZWVwKDEwMDAwMDBMKTsJLyogMTAwMCBtcyAqLworCQkJcGdz dGF0X3JlcG9ydF93YWl0X2VuZCgpOworCQl9CisKKwkJZXJlcG9ydChGQVRBTCwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNn KCJyZWNvdmVyeSBhYm9ydGVkIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHBhcmFtZXRlciBz ZXR0aW5ncyIpLAorCQkJCSAvKiBSZXBlYXQgdGhlIGRldGFpbCBmcm9tIGFib3ZlIHNvIGl0 J3MgZWFzeSB0byBmaW5kIGluIHRoZSBsb2cuICovCisJCQkJIGVycmRldGFpbCgiJXMgPSAl ZCBpcyBhIGxvd2VyIHNldHRpbmcgdGhhbiBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIsIHdoZXJl IGl0cyB2YWx1ZSB3YXMgJWQuIiwKKwkJCQkJCSAgIHBhcmFtX25hbWUsCisJCQkJCQkgICBj dXJyVmFsdWUsCisJCQkJCQkgICBtaW5WYWx1ZSksCisJCQkJIGVycmhpbnQoIllvdSBjYW4g cmVzdGFydCB0aGUgc2VydmVyIGFmdGVyIG1ha2luZyB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3Vy YXRpb24gY2hhbmdlcy4iKSkpOworCX0KIH0KIAogLyoKLS0gCjIuMjkuMgoK --------------9B458140AF5793CDE387A4AD--