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 1kjo3a-0000hR-Im for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Nov 2020 18:37:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kjo3Z-00031M-Ft for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Nov 2020 18:37:49 +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 1kjo3Z-00030p-4D for pgsql-hackers@lists.postgresql.org; Mon, 30 Nov 2020 18:37:49 +0000 Received: from wforward4-smtp.messagingengine.com ([64.147.123.34]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kjo3R-0005Xn-Lr for pgsql-hackers@postgresql.org; Mon, 30 Nov 2020 18:37:47 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.west.internal (Postfix) with ESMTP id 9A1A7D15; Mon, 30 Nov 2020 13:37:39 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 30 Nov 2020 13:37:39 -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=A0ZWpQ uLSR5dci/AJOq9ZpoHGB0TozAwMZeHJZIwVVg=; b=pu7dVj3zHXXfBkPxpIDjm6 rD+/lnh9D3buo7twXHmAD14c9y+CpwnQmrS5gEyc4AmBoblfyjH1MAoKa/34iYG1 2vDCjzCxrz83n6/BNlbYDDaINsyUxeN9Y6R+NQ3F28yAO3/I18NXYmmYLsjXrCaz 3E5tmn8piq5BuqqnimAyGVb63bYoAseWcBHlhFeQ+vJoJttfhMvA3xOkwWgdyc1p OkLMIJf7RIslo1x/X990UFkkOv/KCEszeiwK/b2xRAY02xPj1tVsw1KFojFMZjys RPhKupaXXRNHknMRQmnRbhF2zuWhQ3Ig/T8F0NBq38qYY7x1zFAoKNvB3PVTTNoQ == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrudeitddguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefuvfhfhfhokffffgggjggtsehmtderredtfeejnecuhfhrohhmpefrvght vghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnug hquhgrughrrghnthdrtghomheqnecuggftrfgrthhtvghrnhepudfgueevieeluefggeel udfghfeuhffhjeehfefgledufedtieevudfggeevgfejnecuffhomhgrihhnpedvnhguqh hurggurhgrnhhtrdgtohhmnecukfhppeekjedrudejjedrjedtrdduuddunecuvehluhhs thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghish gvnhhtrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhm X-ME-Proxy: Received: from april.pezone.net (p57b1466f.dip0.t-ipconnect.de [87.177.70.111]) by mail.messagingengine.com (Postfix) with ESMTPA id A3909328006D; Mon, 30 Nov 2020 13:37:37 -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> <12773171605884463@mail.yandex.ru> Cc: Masahiko Sawada , Kyotaro Horiguchi , =?UTF-8?Q?=c3=81lvaro_Herrera?= From: Peter Eisentraut Organization: 2ndQuadrant Message-ID: <9f2b7b1e-7e41-4258-e86c-2611375ea9af@2ndquadrant.com> Date: Mon, 30 Nov 2020 19:37:36 +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: <12773171605884463@mail.yandex.ru> Content-Type: multipart/mixed; boundary="------------CB7DA86735DF34AAC97E0EE2" 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. --------------CB7DA86735DF34AAC97E0EE2 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020-11-20 16:47, Sergei Kornilov wrote: > Hmm... Good question. How about putting CheckForStandbyTrigger() in a wait loop, but reporting FATAL with an appropriate message, such as "promotion is not possible because of insufficient parameter settings"? > Also it suits me if we only document that we ignore promote here. I don't think this is an important case. And yes, it's not easy to allow promotion, since we have already updated control file. > > Probably we need pause only after we reached consistency? Here is an updated patch that implements both of these points. I have used hot standby active instead of reached consistency. I guess arguments could be made either way, but the original use case really cared about hot standby. -- Peter Eisentraut 2ndQuadrant, an EDB company https://www.2ndquadrant.com/ --------------CB7DA86735DF34AAC97E0EE2 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v6-0001-Pause-recovery-for-insufficient-parameter-setting.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v6-0001-Pause-recovery-for-insufficient-parameter-setting.pa"; filename*1="tch" RnJvbSAyZDkzYzI5MThhZjdmZjE4NmFhNGE2YTIzMjcyODZiNmViMWEyODU5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAzMCBOb3YgMjAyMCAxOToyMTo0MCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjZdIFBhdXNlIHJlY292ZXJ5IGZvciBpbnN1ZmZpY2llbnQgcGFyYW1ldGVy IHNldHRpbmdzCgpXaGVuIGNlcnRhaW4gcGFyYW1ldGVycyBhcmUgY2hhbmdlZCBvbiBhIHBo eXNpY2FsIHJlcGxpY2F0aW9uIHByaW1hcnksCnRoaXMgaXMgY29tbXVuaWNhdGVkIHRvIHN0 YW5kYnlzIHVzaW5nIHRoZSBYTE9HX1BBUkFNRVRFUl9DSEFOR0UgV0FMCnJlY29yZC4gIFRo ZSBzdGFuZGJ5IHRoZW4gY2hlY2tzIHdoZXRoZXIgaXRzIG93biBzZXR0aW5ncyBhcmUgYXQg bGVhc3QKYXMgYmlnIGFzIHRoZSBvbmVzIG9uIHRoZSBwcmltYXJ5LiAgSWYgbm90LCB0aGUg c3RhbmRieSBzaHV0cyBkb3duCndpdGggYSBmYXRhbCBlcnJvci4KClRoaXMgcGF0Y2ggY2hh bmdlcyB0aGlzIGJlaGF2aW9yIGZvciBob3Qgc3RhbmRieXMgdG8gcGF1c2UgcmVjb3Zlcnkg YXQKdGhhdCBwb2ludCBpbnN0ZWFkLiAgVGhhdCBhbGxvd3MgcmVhZCB0cmFmZmljIG9uIHRo ZSBzdGFuZGJ5IHRvCmNvbnRpbnVlIHdoaWxlIGRhdGFiYXNlIGFkbWluaXN0cmF0b3JzIGZp Z3VyZSBvdXQgbmV4dCBzdGVwcy4gIFdoZW4KcmVjb3ZlcnkgaXMgdW5wYXVzZWQsIHRoZSBz ZXJ2ZXIgc2h1dHMgZG93biAoYXMgYmVmb3JlKS4gIFRoZSBpZGVhIGlzCnRvIGZpeCB0aGUg cGFyYW1ldGVycyB3aGlsZSByZWNvdmVyeSBpcyBwYXVzZWQgYW5kIHRoZW4gcmVzdGFydCB3 aGVuCnRoZXJlIGlzIGEgbWFpbnRlbmFuY2Ugd2luZG93LgoKRGlzY3Vzc2lvbjogaHR0cHM6 Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzRhZDY5YTRjLWNjOWItMGRm ZS0wMzUyLThiMWIwY2QzNmM3YkAybmRxdWFkcmFudC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwv aGlnaC1hdmFpbGFiaWxpdHkuc2dtbCB8IDUxICsrKysrKysrKysrKysrKysrKystLS0tLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgIHwgNTkgKysrKysrKysrKysr KysrKysrKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwg MTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2hpZ2gtYXZhaWxh YmlsaXR5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbAppbmRl eCAxOWQ3YmQyYjI4Li43MWY3ZjU4Y2IwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvaGln aC1hdmFpbGFiaWxpdHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxp dHkuc2dtbApAQCAtMjEyMCwxOCArMjEyMCwxNCBAQCA8dGl0bGU+QWRtaW5pc3RyYXRvcidz IE92ZXJ2aWV3PC90aXRsZT4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgVGhlIHNl dHRpbmcgb2Ygc29tZSBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFuZGJ5IHdpbGwgbmVlZCByZWNv bmZpZ3VyYXRpb24KLSAgICBpZiB0aGV5IGhhdmUgYmVlbiBjaGFuZ2VkIG9uIHRoZSBwcmlt YXJ5LiBGb3IgdGhlc2UgcGFyYW1ldGVycywKLSAgICB0aGUgdmFsdWUgb24gdGhlIHN0YW5k YnkgbXVzdAotICAgIGJlIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdmFsdWUgb24g dGhlIHByaW1hcnkuCi0gICAgVGhlcmVmb3JlLCBpZiB5b3Ugd2FudCB0byBpbmNyZWFzZSB0 aGVzZSB2YWx1ZXMsIHlvdSBzaG91bGQgZG8gc28gb24gYWxsCi0gICAgc3RhbmRieSBzZXJ2 ZXJzIGZpcnN0LCBiZWZvcmUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgdG8gdGhlIHByaW1hcnkg c2VydmVyLgotICAgIENvbnZlcnNlbHksIGlmIHlvdSB3YW50IHRvIGRlY3JlYXNlIHRoZXNl IHZhbHVlcywgeW91IHNob3VsZCBkbyBzbyBvbiB0aGUKLSAgICBwcmltYXJ5IHNlcnZlciBm aXJzdCwgYmVmb3JlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIHRvIGFsbCBzdGFuZGJ5IHNlcnZl cnMuCi0gICAgSWYgdGhlc2UgcGFyYW1ldGVycwotICAgIGFyZSBub3Qgc2V0IGhpZ2ggZW5v dWdoIHRoZW4gdGhlIHN0YW5kYnkgd2lsbCByZWZ1c2UgdG8gc3RhcnQuCi0gICAgSGlnaGVy IHZhbHVlcyBjYW4gdGhlbiBiZSBzdXBwbGllZCBhbmQgdGhlIHNlcnZlcgotICAgIHJlc3Rh cnRlZCB0byBiZWdpbiByZWNvdmVyeSBhZ2Fpbi4gIFRoZXNlIHBhcmFtZXRlcnMgYXJlOgor ICAgIFRoZSBzZXR0aW5ncyBvZiBzb21lIHBhcmFtZXRlcnMgZGV0ZXJtaW5lIHRoZSBzaXpl IG9mIHNoYXJlZCBtZW1vcnkgZm9yCisgICAgdHJhY2tpbmcgdHJhbnNhY3Rpb24gSURzLCBs b2NrcywgYW5kIHByZXBhcmVkIHRyYW5zYWN0aW9ucy4gIFRoZXNlIHNoYXJlZAorICAgIG1l bW9yeSBzdHJ1Y3R1cmVzIG11c3QgYmUgbm8gc21hbGxlciBvbiBhIHN0YW5kYnkgdGhhbiBv biB0aGUgcHJpbWFyeSBpbgorICAgIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFuZGJ5 IGRvZXMgbm90IHJ1biBvdXQgb2Ygc2hhcmVkIG1lbW9yeSBkdXJpbmcKKyAgICByZWNvdmVy eS4gIEZvciBleGFtcGxlLCBpZiB0aGUgcHJpbWFyeSBoYWQgdXNlZCBhIHByZXBhcmVkIHRy YW5zYWN0aW9uIGJ1dAorICAgIHRoZSBzdGFuZGJ5IGhhZCBub3QgYWxsb2NhdGVkIGFueSBz aGFyZWQgbWVtb3J5IGZvciB0cmFja2luZyBwcmVwYXJlZAorICAgIHRyYW5zYWN0aW9ucywg dGhlbiByZWNvdmVyeSBjb3VsZCBub3QgY29udGludWUgdW50aWwgdGhlIHN0YW5kYnkncwor ICAgIGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZC4gIFRoZSBwYXJhbWV0ZXJzIGFmZmVjdGVk IGFyZToKIAogICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICA8bGlzdGl0ZW0+CkBAIC0y MTYwLDYgKzIxNTYsMzcgQEAgPHRpdGxlPkFkbWluaXN0cmF0b3IncyBPdmVydmlldzwvdGl0 bGU+CiAgICAgICAgIDwvcGFyYT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC9pdGVt aXplZGxpc3Q+CisKKyAgICBUaGUgZWFzaWVzdCB3YXkgdG8gZW5zdXJlIHRoaXMgZG9lcyBu b3QgYmVjb21lIGEgcHJvYmxlbSBpcyB0byBoYXZlIHRoZXNlCisgICAgcGFyYW1ldGVycyBz ZXQgb24gdGhlIHN0YW5kYnlzIHRvIHZhbHVlcyBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4g b24gdGhlCisgICAgcHJpbWFyeS4gIFRoZXJlZm9yZSwgaWYgeW91IHdhbnQgdG8gaW5jcmVh c2UgdGhlc2UgdmFsdWVzLCB5b3Ugc2hvdWxkIGRvCisgICAgc28gb24gYWxsIHN0YW5kYnkg c2VydmVycyBmaXJzdCwgYmVmb3JlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIHRvIHRoZQorICAg IHByaW1hcnkgc2VydmVyLiAgQ29udmVyc2VseSwgaWYgeW91IHdhbnQgdG8gZGVjcmVhc2Ug dGhlc2UgdmFsdWVzLCB5b3UKKyAgICBzaG91bGQgZG8gc28gb24gdGhlIHByaW1hcnkgc2Vy dmVyIGZpcnN0LCBiZWZvcmUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgdG8KKyAgICBhbGwgc3Rh bmRieSBzZXJ2ZXJzLiAgS2VlcCBpbiBtaW5kIHRoYXQgd2hlbiBhIHN0YW5kYnkgaXMgcHJv bW90ZWQsIGl0CisgICAgYmVjb21lcyB0aGUgbmV3IHJlZmVyZW5jZSBmb3IgdGhlIHJlcXVp cmVkIHBhcmFtZXRlciBzZXR0aW5ncyBmb3IgdGhlCisgICAgc3RhbmRieXMgdGhhdCBmb2xs b3cgaXQuICBUaGVyZWZvcmUsIHRvIGF2b2lkIHRoaXMgYmVjb21pbmcgYSBwcm9ibGVtCisg ICAgZHVyaW5nIGEgc3dpdGNob3ZlciBvciBmYWlsb3ZlciwgaXQgaXMgcmVjb21tZW5kZWQg dG8ga2VlcCB0aGVzZSBzZXR0aW5ncworICAgIHRoZSBzYW1lIG9uIGFsbCBzdGFuZGJ5IHNl cnZlcnMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBXQUwgdHJhY2tzIGNo YW5nZXMgdG8gdGhlc2UgcGFyYW1ldGVycyBvbiB0aGUKKyAgICBwcmltYXJ5LiAgSWYgYSBo b3Qgc3RhbmRieSBwcm9jZXNzZXMgV0FMIHRoYXQgaW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJl bnQKKyAgICB2YWx1ZSBvbiB0aGUgcHJpbWFyeSBpcyBoaWdoZXIgdGhhbiBpdHMgb3duIHZh bHVlLCBpdCB3aWxsIGxvZyBhIHdhcm5pbmcKKyAgICBhbmQgcGF1c2UgcmVjb3ZlcnksIGZv ciBleGFtcGxlOgorPHNjcmVlbj4KK1dBUk5JTkc6ICBob3Qgc3RhbmRieSBpcyBub3QgcG9z c2libGUgYmVjYXVzZSBvZiBpbnN1ZmZpY2llbnQgcGFyYW1ldGVyIHNldHRpbmdzCitERVRB SUw6ICBtYXhfY29ubmVjdGlvbnMgPSA4MCBpcyBhIGxvd2VyIHNldHRpbmcgdGhhbiBvbiB0 aGUgcHJpbWFyeSBzZXJ2ZXIsIHdoZXJlIGl0cyB2YWx1ZSB3YXMgMTAwLgorTE9HOiAgcmVj b3ZlcnkgaGFzIHBhdXNlZAorREVUQUlMOiAgSWYgcmVjb3ZlcnkgaXMgdW5wYXVzZWQsIHRo ZSBzZXJ2ZXIgd2lsbCBzaHV0IGRvd24uCitISU5UOiAgWW91IGNhbiB0aGVuIHJlc3RhcnQg dGhlIHNlcnZlciBhZnRlciBtYWtpbmcgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIGNo YW5nZXMuCis8L3NjcmVlbj4KKyAgICBBdCB0aGF0IHBvaW50LCB0aGUgc2V0dGluZ3Mgb24g dGhlIHN0YW5kYnkgbmVlZCB0byBiZSB1cGRhdGVkIGFuZCB0aGUKKyAgICBpbnN0YW5jZSBy ZXN0YXJ0ZWQgYmVmb3JlIHJlY292ZXJ5IGNhbiBjb250aW51ZS4gIElmIHRoZSBzdGFuZGJ5 IGlzIG5vdCBhCisgICAgaG90IHN0YW5kYnksIHRoZW4gd2hlbiBpdCBlbmNvdW50ZXJzIHRo ZSBpbmNvbXBhdGlibGUgcGFyYW1ldGVyIGNoYW5nZSwgaXQKKyAgICB3aWxsIHNodXQgZG93 biBpbW1lZGlhdGVseSB3aXRob3V0IHBhdXNpbmcsIHNpbmNlIHRoZXJlIGlzIHRoZW4gbm8g dmFsdWUKKyAgICBpbiBrZWVwaW5nIGl0IHVwLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCAxM2YxZDhjM2RjLi5mOWE0MWUw ZGZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC02MjMyLDEyICs2MjMy LDYxIEBAIHN0YXRpYyB2b2lkCiBSZWNvdmVyeVJlcXVpcmVzSW50UGFyYW1ldGVyKGNvbnN0 IGNoYXIgKnBhcmFtX25hbWUsIGludCBjdXJyVmFsdWUsIGludCBtaW5WYWx1ZSkKIHsKIAlp ZiAoY3VyclZhbHVlIDwgbWluVmFsdWUpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQlpZiAo TG9jYWxIb3RTdGFuZGJ5QWN0aXZlKQorCQl7CisJCQlib29sCQl3YXJuZWRfZm9yX3Byb21v dGUgPSBmYWxzZTsKKworCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJIGVycm1zZygiaG90IHN0YW5k YnkgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHBhcmFtZXRlciBz ZXR0aW5ncyIpLAorCQkJCQkgZXJyZGV0YWlsKCIlcyA9ICVkIGlzIGEgbG93ZXIgc2V0dGlu ZyB0aGFuIG9uIHRoZSBwcmltYXJ5IHNlcnZlciwgd2hlcmUgaXRzIHZhbHVlIHdhcyAlZC4i LAorCQkJCQkJCSAgIHBhcmFtX25hbWUsCisJCQkJCQkJICAgY3VyclZhbHVlLAorCQkJCQkJ CSAgIG1pblZhbHVlKSkpOworCisJCQlTZXRSZWNvdmVyeVBhdXNlKHRydWUpOworCisJCQll cmVwb3J0KExPRywKKwkJCQkJKGVycm1zZygicmVjb3ZlcnkgaGFzIHBhdXNlZCIpLAorCQkJ CQkgZXJyZGV0YWlsKCJJZiByZWNvdmVyeSBpcyB1bnBhdXNlZCwgdGhlIHNlcnZlciB3aWxs IHNodXQgZG93bi4iKSwKKwkJCQkJIGVycmhpbnQoIllvdSBjYW4gdGhlbiByZXN0YXJ0IHRo ZSBzZXJ2ZXIgYWZ0ZXIgbWFraW5nIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBjaGFu Z2VzLiIpKSk7CisKKwkJCXdoaWxlIChSZWNvdmVyeUlzUGF1c2VkKCkpCisJCQl7CisJCQkJ SGFuZGxlU3RhcnR1cFByb2NJbnRlcnJ1cHRzKCk7CisKKwkJCQlpZiAoQ2hlY2tGb3JTdGFu ZGJ5VHJpZ2dlcigpKQorCQkJCXsKKwkJCQkJaWYgKCF3YXJuZWRfZm9yX3Byb21vdGUpCisJ CQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCQkgZXJybXNnKCJwcm9tb3Rpb24gaXMgbm90 IHBvc3NpYmxlIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHBhcmFtZXRlciBzZXR0aW5ncyIp LAorCQkJCQkJCQkgLyogUmVwZWF0IHRoZSBkZXRhaWwgZnJvbSBhYm92ZSBzbyBpdCdzIGVh c3kgdG8gZmluZCBpbiB0aGUgbG9nLiAqLworCQkJCQkJCQkgZXJyZGV0YWlsKCIlcyA9ICVk IGlzIGEgbG93ZXIgc2V0dGluZyB0aGFuIG9uIHRoZSBwcmltYXJ5IHNlcnZlciwgd2hlcmUg aXRzIHZhbHVlIHdhcyAlZC4iLAorCQkJCQkJCQkJCSAgIHBhcmFtX25hbWUsCisJCQkJCQkJ CQkJICAgY3VyclZhbHVlLAorCQkJCQkJCQkJCSAgIG1pblZhbHVlKSwKKwkJCQkJCQkJIGVy cmhpbnQoIlJlc3RhcnQgdGhlIHNlcnZlciBhZnRlciBtYWtpbmcgdGhlIG5lY2Vzc2FyeSBj b25maWd1cmF0aW9uIGNoYW5nZXMuIikpKTsKKwkJCQkJd2FybmVkX2Zvcl9wcm9tb3RlID0g dHJ1ZTsKKwkJCQl9CisKKwkJCQlwZ3N0YXRfcmVwb3J0X3dhaXRfc3RhcnQoV0FJVF9FVkVO VF9SRUNPVkVSWV9QQVVTRSk7CisJCQkJcGdfdXNsZWVwKDEwMDAwMDBMKTsJLyogMTAwMCBt cyAqLworCQkJCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKKwkJCX0KKwkJfQorCisJCWVy ZXBvcnQoRkFUQUwsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCi0JCQkJIGVycm1zZygiaG90IHN0YW5kYnkgaXMgbm90IHBvc3NpYmxlIGJlY2F1 c2UgJXMgPSAlZCBpcyBhIGxvd2VyIHNldHRpbmcgdGhhbiBvbiB0aGUgcHJpbWFyeSBzZXJ2 ZXIgKGl0cyB2YWx1ZSB3YXMgJWQpIiwKLQkJCQkJCXBhcmFtX25hbWUsCi0JCQkJCQljdXJy VmFsdWUsCi0JCQkJCQltaW5WYWx1ZSkpKTsKKwkJCQkgZXJybXNnKCJyZWNvdmVyeSBhYm9y dGVkIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHBhcmFtZXRlciBzZXR0aW5ncyIpLAorCQkJ CSAvKiBSZXBlYXQgdGhlIGRldGFpbCBmcm9tIGFib3ZlIHNvIGl0J3MgZWFzeSB0byBmaW5k IGluIHRoZSBsb2cuICovCisJCQkJIGVycmRldGFpbCgiJXMgPSAlZCBpcyBhIGxvd2VyIHNl dHRpbmcgdGhhbiBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIsIHdoZXJlIGl0cyB2YWx1ZSB3YXMg JWQuIiwKKwkJCQkJCSAgIHBhcmFtX25hbWUsCisJCQkJCQkgICBjdXJyVmFsdWUsCisJCQkJ CQkgICBtaW5WYWx1ZSksCisJCQkJIGVycmhpbnQoIllvdSBjYW4gcmVzdGFydCB0aGUgc2Vy dmVyIGFmdGVyIG1ha2luZyB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4i KSkpOworCX0KIH0KIAogLyoKLS0gCjIuMjkuMgoK --------------CB7DA86735DF34AAC97E0EE2--