Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fpStj-0005xN-AJ for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Aug 2018 06:33:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fpSte-0002fj-La for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Aug 2018 06:33:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fpStd-0002fX-LK for pgsql-hackers@lists.postgresql.org; Tue, 14 Aug 2018 06:33:38 +0000 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fpStY-0004CE-QI for pgsql-hackers@postgresql.org; Tue, 14 Aug 2018 06:33:37 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 92A81258; Tue, 14 Aug 2018 02:33:29 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Tue, 14 Aug 2018 02:33:29 -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-sender :x-me-sender:x-sasl-enc; s=fm3; bh=1Jnq+/FvHZ0R9CICV40XEfILDi72j 4/iUh+HSVaJ0GA=; b=eQ/6GkOR2ks5uIyvgVXL2enK2lzCyVlEqwNvS2vtorlVI Tf9TkGzd6boYN4+6FjTWSaOzJkLtIy3axPoPcKO7drvATW6aIWiEvvXLN1VEtfF8 uL6atd7cZT59/BvfVhcivif2QXBWZFuHHM5YUJbwVPPzu2t3QIyNEY+5JTxcYB64 KhKA7fggwcC9oza0y3PdnMrqODcFIXPvpLQ1vJEDrOk2F5vqVneuYj47QYRef7YG CJ0tjhxd/lmOgbCc3UONSumq7mwtP4+vtT+/GLck1CRJGbe+BR6RqR+AIgj3mU1D 3ltCvSN0Zp7xiZdsa7E4wm9IHNqP+Z5G1dfmXMHYg== X-ME-Proxy: X-ME-Sender: Received: from april.pezone.net (x4e377bf8.dyn.telefonica.de [78.55.123.248]) by mail.messagingengine.com (Postfix) with ESMTPA id 40585E450E; Tue, 14 Aug 2018 02:33:27 -0400 (EDT) Subject: Re: Alter index rename concurrently to From: Peter Eisentraut To: PostgreSQL Hackers References: <1531767486.432607658@f357.i.mail.ru> <1531828116.497549417@f411.i.mail.ru> <6cf6b35f-b730-60fc-bab7-82699dca59ed@2ndquadrant.com> Cc: Robert Haas , Andrey Klychkov , Victor Yegorov Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= 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 3jI= Organization: 2ndQuadrant Message-ID: <8cba25b5-e7c7-de36-7886-5488b37ec521@2ndquadrant.com> Date: Tue, 14 Aug 2018 08:33:26 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------2B3A9738071803E5ED0AA142" 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. --------------2B3A9738071803E5ED0AA142 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 31/07/2018 23:10, Peter Eisentraut wrote: > On 27/07/2018 16:16, Robert Haas wrote: >> With respect to this particular patch, I don't know whether there are >> any hazards of the second type. What I'd check, if it were me, is >> what structures in the index's relcache entry are going to get rebuilt >> when the index name changes. If any of those look like things that >> something that somebody could hold a pointer to during the course of >> query execution, or more generally be relying on not to change during >> the course of query execution, then you've got a problem. > > I have investigated this, and I think it's safe. Relcache reloads for > open indexes are already handled specially in RelationReloadIndexInfo(). > The only pointers that get replaced there are rd_amcache and > rd_options. I have checked where those are used, and it looks like they > are not used across possible relcache reloads. The code structure in > those two cases make this pretty unlikely even in the future. Also, > violations would probably be caught by CLOBBER_CACHE_ALWAYS. Based on these assertions, here is my proposed patch. It lowers the lock level for index renaming to ShareUpdateExclusiveLock. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------2B3A9738071803E5ED0AA142 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v1-0001-Lower-lock-level-for-renaming-indexes.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v1-0001-Lower-lock-level-for-renaming-indexes.patch" RnJvbSBmZWJlNjI1NDMxMTVhOTllYWUwMDc0N2E4NjRjZDkyMmZkZTcxODc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5u ZXQ+CkRhdGU6IE1vbiwgMTMgQXVnIDIwMTggMjI6Mzg6MzYgKzAyMDAKU3ViamVjdDogW1BB VENIIHYxXSBMb3dlciBsb2NrIGxldmVsIGZvciByZW5hbWluZyBpbmRleGVzCgpDaGFuZ2Ug bG9jayBsZXZlbCBmb3IgcmVuYW1pbmcgaW5kZXggKGVpdGhlciBBTFRFUiBJTkRFWCBvciBp bXBsaWNpdGx5CnZpYSBzb21lIG90aGVyIGNvbW1hbmRzKSBmcm9tIEFjY2Vzc0V4Y2x1c2l2 ZUxvY2sgdG8KU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrLgoKVGhlIHJlYXNvbiB3ZSBuZWVk IGEgc3Ryb25nIGxvY2sgYXQgYWxsIGZvciByZWxhdGlvbiByZW5hbWluZyBpcyB0aGF0CnRo ZSBuYW1lIGNoYW5nZSBjYXVzZXMgYSByZWJ1aWxkIG9mIHRoZSByZWxjYWNoZSBlbnRyeS4g IENvbmN1cnJlbnQKc2Vzc2lvbnMgdGhhdCBoYXZlIHRoZSByZWxhdGlvbiBvcGVuIG1pZ2h0 IG5vdCBiZSBhYmxlIHRvIGhhbmRsZSB0aGUKcmVsY2FjaGUgZW50cnkgY2hhbmdpbmcgdW5k ZXJuZWF0aCB0aGVtLiAgVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIGxvY2sgdGhlCnJlbGF0aW9u IGluIGEgd2F5IHRoYXQgbm8gb25lIGNhbiBoYXZlIHRoZSByZWxhdGlvbiBvcGVuIGNvbmN1 cnJlbnRseS4KQnV0IGZvciBpbmRleGVzLCB0aGUgcmVsY2FjaGUgaGFuZGxlcyByZWxvYWRz IHNwZWNpYWxseSBpbgpSZWxhdGlvblJlbG9hZEluZGV4SW5mbygpIGluIGEgd2F5IHRoYXQg a2VlcHMgY2hhbmdlcyBpbiB0aGUgcmVsY2FjaGUKZW50cnkgdG8gYSBtaW5pbXVtLiAgQXMg bG9uZyBhcyBubyBvbmUga2VlcHMgcG9pbnRlcnMgdG8gcmRfYW1jYWNoZSBhbmQKcmRfb3B0 aW9ucyBhcm91bmQgYWNyb3NzIHBvc3NpYmxlIHJlbGNhY2hlIGZsdXNoZXMsIHdoaWNoIGlz IHRoZSBjYXNlLAp0aGlzIG91Z2h0IHRvIGJlIHNhZmUuCgpPbmUgY291bGQgcGVyaGFwcyBh cmd1ZSB0aGF0IHRoaXMgY291bGQgYWxsIGJlIGRvbmUgd2l0aCBhbgpBY2Nlc3NTaGFyZUxv Y2sgdGhlbi4gIEJ1dCB3ZSBzdGFuZGFyZGl6ZSBoZXJlIGZvciBjb25zaXN0ZW5jeSBvbgpT aGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2ssIHdoaWNoIGlzIGFscmVhZHkgdXNlZCBieSBvdGhl ciBEREwgY29tbWFuZHMKdGhhdCB3YW50IHRvIG9wZXJhdGUgaW4gYSBjb25jdXJyZW50IG1h bm5lci4gIEZvciBleGFtcGxlLCByZW5hbWluZyBhbgppbmRleCBjb25jdXJyZW50bHkgd2l0 aCBDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIG1pZ2h0IGJlIHRyb3VibGUuCgpUaGUgcmVh c29uIHRoaXMgaXMgaW50ZXJlc3RpbmcgYXQgYWxsIGlzIHRoYXQgcmVuYW1pbmcgYW4gaW5k ZXggaXMgYQp0eXBpY2FsIHBhcnQgb2YgYSBjb25jdXJyZW50IHJlaW5kZXhpbmcgd29ya2Zs b3cgKENSRUFURSBJTkRFWApDT05DVVJSRU5UTFkgbmV3ICsgRFJPUCBJTkRFWCBDT05DVVJS RU5UTFkgb2xkICsgcmVuYW1lIGJhY2spLiAgQW5kCmluZGVlZCBhIGZ1dHVyZSBidWlsdC1p biBSRUlOREVYIENPTkNVUlJFTlRMWSBtaWdodCByZWx5IG9uIHRoZSBhYmlsaXR5CnRvIGRv IGNvbmN1cnJlbnQgcmVuYW1lcyBhcyB3ZWxsLgotLS0KIGRvYy9zcmMvc2dtbC9tdmNjLnNn bWwgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9pbmRleC5zZ21sIHwgIDkgKysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jbHVz dGVyLmMgICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAg fCAyNCArKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaCAg fCAgMyArKy0KIDYgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL212Y2Muc2dtbCBiL2RvYy9zcmMv c2dtbC9tdmNjLnNnbWwKaW5kZXggNzM5MzRlNWNmMy4uYmVkZDlhMDA4ZCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL212Y2Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbXZjYy5zZ21s CkBAIC05MjYsMTAgKzkyNiwxMCBAQCA8dGl0bGU+VGFibGUtbGV2ZWwgTG9jayBNb2Rlczwv dGl0bGU+CiAgICAgICAgIDxwYXJhPgogICAgICAgICAgQWNxdWlyZWQgYnkgPGNvbW1hbmQ+ VkFDVVVNPC9jb21tYW5kPiAod2l0aG91dCA8b3B0aW9uPkZVTEw8L29wdGlvbj4pLAogICAg ICAgICAgPGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBJTkRF WCBDT05DVVJSRU5UTFk8L2NvbW1hbmQ+LAotICAgICAgICAgPGNvbW1hbmQ+Q1JFQVRFIFNU QVRJU1RJQ1M8L2NvbW1hbmQ+IGFuZAotICAgICAgICAgPGNvbW1hbmQ+QUxURVIgVEFCTEUg VkFMSURBVEU8L2NvbW1hbmQ+IGFuZCBvdGhlcgotICAgICAgICAgPGNvbW1hbmQ+QUxURVIg VEFCTEU8L2NvbW1hbmQ+IHZhcmlhbnRzIChmb3IgZnVsbCBkZXRhaWxzIHNlZQotICAgICAg ICAgPHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydGFibGUiLz4pLgorICAgICAgICAgPGNvbW1h bmQ+Q1JFQVRFIFNUQVRJU1RJQ1M8L2NvbW1hbmQ+LCBhbmQgY2VydGFpbiA8Y29tbWFuZD5B TFRFUgorICAgICAgICAgSU5ERVg8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5BTFRFUiBUQUJM RTwvY29tbWFuZD4gdmFyaWFudHMgKGZvciBmdWxsCisgICAgICAgICBkZXRhaWxzIHNlZSA8 eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJpbmRleCIvPiBhbmQgPHhyZWYKKyAgICAgICAgIGxp bmtlbmQ9InNxbC1hbHRlcnRhYmxlIi8+KS4KICAgICAgICAgPC9wYXJhPgogICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTk3MCw3ICs5NzAsNyBAQCA8 dGl0bGU+VGFibGUtbGV2ZWwgTG9jayBNb2RlczwvdGl0bGU+CiAgICAgICAgIDwvcGFyYT4K IAogICAgICAgICA8cGFyYT4KLSAgICAgICAgIEFjcXVpcmVkIGJ5IDxjb21tYW5kPkNSRUFU RSBUUklHR0VSPC9jb21tYW5kPiBhbmQgbWFueSBmb3JtcyBvZgorICAgICAgICAgQWNxdWly ZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFIFRSSUdHRVI8L2NvbW1hbmQ+IGFuZCBzb21lIGZvcm1z IG9mCiAgICAgICAgICA8Y29tbWFuZD5BTFRFUiBUQUJMRTwvY29tbWFuZD4gKHNlZSA8eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ0YWJsZSIvPikuCiAgICAgICAgIDwvcGFyYT4KICAgICAg ICA8L2xpc3RpdGVtPgpAQCAtMTAyMCw3ICsxMDIwLDcgQEAgPHRpdGxlPlRhYmxlLWxldmVs IExvY2sgTW9kZXM8L3RpdGxlPgogICAgICAgICAgPGNvbW1hbmQ+Q0xVU1RFUjwvY29tbWFu ZD4sIDxjb21tYW5kPlZBQ1VVTSBGVUxMPC9jb21tYW5kPiwKICAgICAgICAgIGFuZCA8Y29t bWFuZD5SRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXPC9jb21tYW5kPiAod2l0aG91dAogICAg ICAgICAgPG9wdGlvbj5DT05DVVJSRU5UTFk8L29wdGlvbj4pCi0gICAgICAgICBjb21tYW5k cy4gTWFueSBmb3JtcyBvZiA8Y29tbWFuZD5BTFRFUiBUQUJMRTwvY29tbWFuZD4gYWxzbyBh Y3F1aXJlCisgICAgICAgICBjb21tYW5kcy4gTWFueSBmb3JtcyBvZiA8Y29tbWFuZD5BTFRF UiBJTkRFWDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkFMVEVSIFRBQkxFPC9jb21tYW5kPiBh bHNvIGFjcXVpcmUKICAgICAgICAgIGEgbG9jayBhdCB0aGlzIGxldmVsLiBUaGlzIGlzIGFs c28gdGhlIGRlZmF1bHQgbG9jayBtb2RlIGZvcgogICAgICAgICAgPGNvbW1hbmQ+TE9DSyBU QUJMRTwvY29tbWFuZD4gc3RhdGVtZW50cyB0aGF0IGRvIG5vdCBzcGVjaWZ5CiAgICAgICAg ICBhIG1vZGUgZXhwbGljaXRseS4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfaW5kZXguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfaW5kZXguc2dtbAppbmRl eCA3MjkwZDlhNWJkLi43MzA5NGZkMTc5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX2luZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9pbmRleC5z Z21sCkBAIC0zOSw3ICszOSwxMCBAQCA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgogCiAg IDxwYXJhPgogICAgPGNvbW1hbmQ+QUxURVIgSU5ERVg8L2NvbW1hbmQ+IGNoYW5nZXMgdGhl IGRlZmluaXRpb24gb2YgYW4gZXhpc3RpbmcgaW5kZXguCi0gICBUaGVyZSBhcmUgc2V2ZXJh bCBzdWJmb3JtczoKKyAgIFRoZXJlIGFyZSBzZXZlcmFsIHN1YmZvcm1zIGRlc2NyaWJlZCBi ZWxvdy4gTm90ZSB0aGF0IHRoZSBsb2NrIGxldmVsIHJlcXVpcmVkCisgICBtYXkgZGlmZmVy IGZvciBlYWNoIHN1YmZvcm0uIEFuIDxsaXRlcmFsPkFDQ0VTUyBFWENMVVNJVkU8L2xpdGVy YWw+IGxvY2sgaXMgaGVsZAorICAgdW5sZXNzIGV4cGxpY2l0bHkgbm90ZWQuIFdoZW4gbXVs dGlwbGUgc3ViY29tbWFuZHMgYXJlIGxpc3RlZCwgdGhlIGxvY2sKKyAgIGhlbGQgd2lsbCBi ZSB0aGUgc3RyaWN0ZXN0IG9uZSByZXF1aXJlZCBmcm9tIGFueSBzdWJjb21tYW5kLgogCiAg IDx2YXJpYWJsZWxpc3Q+CiAKQEAgLTUwLDYgKzUzLDEwIEBAIDx0aXRsZT5EZXNjcmlwdGlv bjwvdGl0bGU+CiAgICAgICBUaGUgPGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBmb3JtIGNo YW5nZXMgdGhlIG5hbWUgb2YgdGhlIGluZGV4LgogICAgICAgVGhlcmUgaXMgbm8gZWZmZWN0 IG9uIHRoZSBzdG9yZWQgZGF0YS4KICAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAg IFJlbmFtaW5nIGFuIGluZGV4IGFjcXVpcmVzIGEgPGxpdGVyYWw+U0hBUkUgVVBEQVRFIEVY Q0xVU0lWRTwvbGl0ZXJhbD4KKyAgICAgIGxvY2suCisgICAgIDwvcGFyYT4KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NsdXN0ZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYwpp bmRleCA2OGJlNDcwOTc3Li41ZWNkMjU2NWI0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9jbHVzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5j CkBAIC0xNjYxLDE0ICsxNjYxLDE0IEBAIGZpbmlzaF9oZWFwX3N3YXAoT2lkIE9JRE9sZEhl YXAsIE9pZCBPSUROZXdIZWFwLAogCQkJc25wcmludGYoTmV3VG9hc3ROYW1lLCBOQU1FREFU QUxFTiwgInBnX3RvYXN0XyV1IiwKIAkJCQkJIE9JRE9sZEhlYXApOwogCQkJUmVuYW1lUmVs YXRpb25JbnRlcm5hbChuZXdyZWwtPnJkX3JlbC0+cmVsdG9hc3RyZWxpZCwKLQkJCQkJCQkJ ICAgTmV3VG9hc3ROYW1lLCB0cnVlKTsKKwkJCQkJCQkJICAgTmV3VG9hc3ROYW1lLCB0cnVl LCBmYWxzZSk7CiAKIAkJCS8qIC4uLiBhbmQgaXRzIHZhbGlkIGluZGV4IHRvby4gKi8KIAkJ CXNucHJpbnRmKE5ld1RvYXN0TmFtZSwgTkFNRURBVEFMRU4sICJwZ190b2FzdF8ldV9pbmRl eCIsCiAJCQkJCSBPSURPbGRIZWFwKTsKIAogCQkJUmVuYW1lUmVsYXRpb25JbnRlcm5hbCh0 b2FzdGlkeCwKLQkJCQkJCQkJICAgTmV3VG9hc3ROYW1lLCB0cnVlKTsKKwkJCQkJCQkJICAg TmV3VG9hc3ROYW1lLCB0cnVlLCB0cnVlKTsKIAkJfQogCQlyZWxhdGlvbl9jbG9zZShuZXdy ZWwsIE5vTG9jayk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBmNjIx MDIyNmU5Li5lMTkwNWRmZTYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAt MzAzOCw3ICszMDM4LDcgQEAgcmVuYW1lX2NvbnN0cmFpbnRfaW50ZXJuYWwoT2lkIG15cmVs aWQsCiAJCQl8fCBjb24tPmNvbnR5cGUgPT0gQ09OU1RSQUlOVF9VTklRVUUKIAkJCXx8IGNv bi0+Y29udHlwZSA9PSBDT05TVFJBSU5UX0VYQ0xVU0lPTikpCiAJCS8qIHJlbmFtZSB0aGUg aW5kZXg7IHRoaXMgcmVuYW1lcyB0aGUgY29uc3RyYWludCBhcyB3ZWxsICovCi0JCVJlbmFt ZVJlbGF0aW9uSW50ZXJuYWwoY29uLT5jb25pbmRpZCwgbmV3Y29ubmFtZSwgZmFsc2UpOwor CQlSZW5hbWVSZWxhdGlvbkludGVybmFsKGNvbi0+Y29uaW5kaWQsIG5ld2Nvbm5hbWUsIGZh bHNlLCB0cnVlKTsKIAllbHNlCiAJCVJlbmFtZUNvbnN0cmFpbnRCeUlkKGNvbnN0cmFpbnRP aWQsIG5ld2Nvbm5hbWUpOwogCkBAIC0zMTA2LDYgKzMxMDYsNyBAQCBSZW5hbWVDb25zdHJh aW50KFJlbmFtZVN0bXQgKnN0bXQpCiBPYmplY3RBZGRyZXNzCiBSZW5hbWVSZWxhdGlvbihS ZW5hbWVTdG10ICpzdG10KQogeworCWJvb2wJCWlzX2luZGV4ID0gc3RtdC0+cmVuYW1lVHlw ZSA9PSBPQkpFQ1RfSU5ERVg7CiAJT2lkCQkJcmVsaWQ7CiAJT2JqZWN0QWRkcmVzcyBhZGRy ZXNzOwogCkBAIC0zMTE3LDcgKzMxMTgsOCBAQCBSZW5hbWVSZWxhdGlvbihSZW5hbWVTdG10 ICpzdG10KQogCSAqIExvY2sgbGV2ZWwgdXNlZCBoZXJlIHNob3VsZCBtYXRjaCBSZW5hbWVS ZWxhdGlvbkludGVybmFsLCB0byBhdm9pZCBsb2NrCiAJICogZXNjYWxhdGlvbi4KIAkgKi8K LQlyZWxpZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChzdG10LT5yZWxhdGlvbiwgQWNj ZXNzRXhjbHVzaXZlTG9jaywKKwlyZWxpZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChz dG10LT5yZWxhdGlvbiwKKwkJCQkJCQkJCSBpc19pbmRleCA/IFNoYXJlVXBkYXRlRXhjbHVz aXZlTG9jayA6IEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssCiAJCQkJCQkJCQkgc3RtdC0+bWlzc2lu Z19vayA/IFJWUl9NSVNTSU5HX09LIDogMCwKIAkJCQkJCQkJCSBSYW5nZVZhckNhbGxiYWNr Rm9yQWx0ZXJSZWxhdGlvbiwKIAkJCQkJCQkJCSAodm9pZCAqKSBzdG10KTsKQEAgLTMxMzEs NyArMzEzMyw3IEBAIFJlbmFtZVJlbGF0aW9uKFJlbmFtZVN0bXQgKnN0bXQpCiAJfQogCiAJ LyogRG8gdGhlIHdvcmsgKi8KLQlSZW5hbWVSZWxhdGlvbkludGVybmFsKHJlbGlkLCBzdG10 LT5uZXduYW1lLCBmYWxzZSk7CisJUmVuYW1lUmVsYXRpb25JbnRlcm5hbChyZWxpZCwgc3Rt dC0+bmV3bmFtZSwgZmFsc2UsIGlzX2luZGV4KTsKIAogCU9iamVjdEFkZHJlc3NTZXQoYWRk cmVzcywgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CiAKQEAgLTMxNDIsNyArMzE0NCw3 IEBAIFJlbmFtZVJlbGF0aW9uKFJlbmFtZVN0bXQgKnN0bXQpCiAgKgkJUmVuYW1lUmVsYXRp b25JbnRlcm5hbCAtIGNoYW5nZSB0aGUgbmFtZSBvZiBhIHJlbGF0aW9uCiAgKi8KIHZvaWQK LVJlbmFtZVJlbGF0aW9uSW50ZXJuYWwoT2lkIG15cmVsaWQsIGNvbnN0IGNoYXIgKm5ld3Jl bG5hbWUsIGJvb2wgaXNfaW50ZXJuYWwpCitSZW5hbWVSZWxhdGlvbkludGVybmFsKE9pZCBt eXJlbGlkLCBjb25zdCBjaGFyICpuZXdyZWxuYW1lLCBib29sIGlzX2ludGVybmFsLCBib29s IGlzX2luZGV4KQogewogCVJlbGF0aW9uCXRhcmdldHJlbGF0aW9uOwogCVJlbGF0aW9uCXJl bHJlbGF0aW9uOwkvKiBmb3IgUkVMQVRJT04gcmVsYXRpb24gKi8KQEAgLTMxNTEsMTEgKzMx NTMsMTMgQEAgUmVuYW1lUmVsYXRpb25JbnRlcm5hbChPaWQgbXlyZWxpZCwgY29uc3QgY2hh ciAqbmV3cmVsbmFtZSwgYm9vbCBpc19pbnRlcm5hbCkKIAlPaWQJCQluYW1lc3BhY2VJZDsK IAogCS8qCi0JICogR3JhYiBhbiBleGNsdXNpdmUgbG9jayBvbiB0aGUgdGFyZ2V0IHRhYmxl LCBpbmRleCwgc2VxdWVuY2UsIHZpZXcsCi0JICogbWF0ZXJpYWxpemVkIHZpZXcsIG9yIGZv cmVpZ24gdGFibGUsIHdoaWNoIHdlIHdpbGwgTk9UIHJlbGVhc2UgdW50aWwKLQkgKiBlbmQg b2YgdHJhbnNhY3Rpb24uCisJICogR3JhYiBhIGxvY2sgb24gdGhlIHRhcmdldCByZWxhdGlv biwgd2hpY2ggd2Ugd2lsbCBOT1QgcmVsZWFzZSB1bnRpbCBlbmQKKwkgKiBvZiB0cmFuc2Fj dGlvbi4gIFRoZSBsb2NrIGhlcmUgZ3VhcmRzIG1haW5seSBhZ2FpbnN0IHRyaWdnZXJpbmcK KwkgKiByZWxjYWNoZSByZWxvYWRzIGluIGNvbmN1cnJlbnQgc2Vzc2lvbnMsIHdoaWNoIG1p Z2h0IG5vdCBoYW5kbGUgdGhpcworCSAqIGluZm9ybWF0aW9uIGNoYW5naW5nIHVuZGVyIHRo ZW0uICBGb3IgaW5kZXhlcywgd2UgY2FuIHVzZSBhIHJlZHVjZWQKKwkgKiBsb2NrIGxldmVs IGJlY2F1c2UgUmVsYXRpb25SZWxvYWRJbmRleEluZm8oKSBoYW5kbGVzIGluZGV4ZXMgc3Bl Y2lhbGx5LgogCSAqLwotCXRhcmdldHJlbGF0aW9uID0gcmVsYXRpb25fb3BlbihteXJlbGlk LCBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwl0YXJnZXRyZWxhdGlvbiA9IHJlbGF0aW9uX29w ZW4obXlyZWxpZCwgaXNfaW5kZXggPyBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sgOiBBY2Nl c3NFeGNsdXNpdmVMb2NrKTsKIAluYW1lc3BhY2VJZCA9IFJlbGF0aW9uR2V0TmFtZXNwYWNl KHRhcmdldHJlbGF0aW9uKTsKIAogCS8qCkBAIC0zMjA4LDcgKzMyMTIsNyBAQCBSZW5hbWVS ZWxhdGlvbkludGVybmFsKE9pZCBteXJlbGlkLCBjb25zdCBjaGFyICpuZXdyZWxuYW1lLCBi b29sIGlzX2ludGVybmFsKQogCX0KIAogCS8qCi0JICogQ2xvc2UgcmVsLCBidXQga2VlcCBl eGNsdXNpdmUgbG9jayEKKwkgKiBDbG9zZSByZWwsIGJ1dCBrZWVwIGxvY2shCiAJICovCiAJ cmVsYXRpb25fY2xvc2UodGFyZ2V0cmVsYXRpb24sIE5vTG9jayk7CiB9CkBAIC03MDY2LDcg KzcwNzAsNyBAQCBBVEV4ZWNBZGRJbmRleENvbnN0cmFpbnQoQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsCiAJCWVyZXBvcnQoTk9USUNFLAogCQkJCShlcnJtc2coIkFM VEVSIFRBQkxFIC8gQUREIENPTlNUUkFJTlQgVVNJTkcgSU5ERVggd2lsbCByZW5hbWUgaW5k ZXggXCIlc1wiIHRvIFwiJXNcIiIsCiAJCQkJCQlpbmRleE5hbWUsIGNvbnN0cmFpbnROYW1l KSkpOwotCQlSZW5hbWVSZWxhdGlvbkludGVybmFsKGluZGV4X29pZCwgY29uc3RyYWludE5h bWUsIGZhbHNlKTsKKwkJUmVuYW1lUmVsYXRpb25JbnRlcm5hbChpbmRleF9vaWQsIGNvbnN0 cmFpbnROYW1lLCBmYWxzZSwgdHJ1ZSk7CiAJfQogCiAJLyogRXh0cmEgY2hlY2tzIG5lZWRl ZCBpZiBtYWtpbmcgcHJpbWFyeSBrZXkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmlu ZGV4IDE3NWVjYzhiNDguLmY3ZjNjZTJkMDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3R5cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMu YwpAQCAtMzI4MCw3ICszMjgwLDcgQEAgUmVuYW1lVHlwZShSZW5hbWVTdG10ICpzdG10KQog CSAqIFJlbmFtZVJlbGF0aW9uSW50ZXJuYWwgd2lsbCBjYWxsIFJlbmFtZVR5cGVJbnRlcm5h bCBhdXRvbWF0aWNhbGx5LgogCSAqLwogCWlmICh0eXBUdXAtPnR5cHR5cGUgPT0gVFlQVFlQ RV9DT01QT1NJVEUpCi0JCVJlbmFtZVJlbGF0aW9uSW50ZXJuYWwodHlwVHVwLT50eXByZWxp ZCwgbmV3VHlwZU5hbWUsIGZhbHNlKTsKKwkJUmVuYW1lUmVsYXRpb25JbnRlcm5hbCh0eXBU dXAtPnR5cHJlbGlkLCBuZXdUeXBlTmFtZSwgZmFsc2UsIGZhbHNlKTsKIAllbHNlCiAJCVJl bmFtZVR5cGVJbnRlcm5hbCh0eXBlT2lkLCBuZXdUeXBlTmFtZSwKIAkJCQkJCSAgIHR5cFR1 cC0+dHlwbmFtZXNwYWNlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Rh YmxlY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKaW5kZXggMTM4 ZGU4NGU4My4uMmFmY2Q1YmU0NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv dGFibGVjbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKQEAg LTY3LDcgKzY3LDggQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgUmVuYW1lQ29uc3RyYWludChS ZW5hbWVTdG10ICpzdG10KTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIFJlbmFtZVJlbGF0aW9u KFJlbmFtZVN0bXQgKnN0bXQpOwogCiBleHRlcm4gdm9pZCBSZW5hbWVSZWxhdGlvbkludGVy bmFsKE9pZCBteXJlbGlkLAotCQkJCQkgICBjb25zdCBjaGFyICpuZXdyZWxuYW1lLCBib29s IGlzX2ludGVybmFsKTsKKwkJCQkJICAgY29uc3QgY2hhciAqbmV3cmVsbmFtZSwgYm9vbCBp c19pbnRlcm5hbCwKKwkJCQkJICAgYm9vbCBpc19pbmRleCk7CiAKIGV4dGVybiB2b2lkIGZp bmRfY29tcG9zaXRlX3R5cGVfZGVwZW5kZW5jaWVzKE9pZCB0eXBlT2lkLAogCQkJCQkJCQkg UmVsYXRpb24gb3JpZ1JlbGF0aW9uLAotLSAKMi4xOC4wCgo= --------------2B3A9738071803E5ED0AA142--