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 1kpSs7-0006sf-1K for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Dec 2020 09:13:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kpSrZ-0007W2-9i for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Dec 2020 09:12:49 +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 1kpSrZ-0007Vv-1P for pgsql-hackers@lists.postgresql.org; Wed, 16 Dec 2020 09:12:49 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kpSrV-0002UB-BD for pgsql-hackers@postgresql.org; Wed, 16 Dec 2020 09:12:48 +0000 Received: from hnk.local (p1295030-ipngn4902funabasi.chiba.ocn.ne.jp [153.166.85.30]) by oss.nttdata.com (Postfix) with ESMTPSA id 3CA4162720; Wed, 16 Dec 2020 18:12:40 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com Subject: Re: Use standard SIGHUP and SIGTERM handlers in autoprewarm module To: Kyotaro Horiguchi Cc: bharath.rupireddyforpostgres@gmail.com, pgsql-hackers@postgresql.org References: <6b561c73-27ce-7079-b6e5-440e49653810@oss.nttdata.com> <20201216.162459.1543880840255001035.horikyota.ntt@gmail.com> From: Fujii Masao Message-ID: <68571154-5bd5-dc00-1322-92bbf92de806@oss.nttdata.com> Date: Wed, 16 Dec 2020 18:12:39 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 MIME-Version: 1.0 In-Reply-To: <20201216.162459.1543880840255001035.horikyota.ntt@gmail.com> Content-Type: multipart/mixed; boundary="------------ADB8E586496E5A57972C6737" 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. --------------ADB8E586496E5A57972C6737 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020/12/16 16:24, Kyotaro Horiguchi wrote: > At Tue, 15 Dec 2020 23:10:28 +0900, Fujii Masao wrote in >>> I pushed the following two patches. >>> - v1-use-standard-SIGHUP-hanlder-in-syslogger-process.patch >>> - v1-use-MyLatch-and-standard-SIGHUP-handler-in-startup-process.patch >> >> As I told in other thread [1], I'm thinking to revert this patch >> because this change could have bad side-effect on the startup >> process waiting for recovery conflict. >> >> Before applying the patch, the latch that the startup process >> used to wait for recovery conflict was different from the latch >> that SIGHUP signal handler or walreceiver process, etc set to >> wake the startup process up. So SIGHUP or walreceiver didn't >> wake the startup process waiting for recovery conflict up unnecessary. >> >> But the patch got rid of the dedicated latch for signaling >> the startup process. This change forced us to use the same latch >> to make the startup process wait or wake up. Which caused SIGHUP >> signal handler or walreceiver proces to wake the startup process >> waiting on the latch for recovery conflict up unnecessarily >> frequently. >> >> While waiting for recovery conflict on buffer pin, deadlock needs >> to be checked at least every deadlock_timeout. But that frequent >> wakeups could prevent the deadlock timer from being triggered and >> could delay that deadlock checks. > > I thought that spurious wakeups don't harm. But actually > ResolveRecoveryConflictWithBufferPin doesn't consider spurious > wakeups. Only the timer woke up ResolveRecoveryConflictWithBufferPin > before the patch comes. Currently SIGHUP and XLogFlush() (on > walreceiver) also wake up startup process. > > For a moment I thought that ResolveRecoveryConflictWithBufferPin > should wake up at shutdown time by the old recovery latch but it's not > the case since it wakes up after all blockers go away. It seems to me > simpler to revert the patches than making the function properly handle > spurious wakeups. > >> Therefore, I'm thinking to revert the commit ac22929a26 and >> 113d3591b8. >> >> [1] >> https://www.postgresql.org/message-id/a802f1c0-58d9-bd3f-bc3e-bdad54726855@oss.nttdata.com > > As the result, I agree to revert them. But I think we need to add a > comment for the reason we don't use MyLatch for recovery-wakeup after > reverting them. Agreed. Attached is the patch that reverts those patches and adds the comments about why both procLatch and recoveryWakeupLatch are necessary. Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------ADB8E586496E5A57972C6737 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="revert_remove_dedicated_latch_for_startup_process_v1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="revert_remove_dedicated_latch_for_startup_process_v1.patch" ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCA4ZGQyMjVjMmUxLi5iMWU1ZDJk YmZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC02ODEsOCArNjgxLDE4 IEBAIHR5cGVkZWYgc3RydWN0IFhMb2dDdGxEYXRhCiAJICogcmVjb3ZlcnlXYWtldXBMYXRj aCBpcyB1c2VkIHRvIHdha2UgdXAgdGhlIHN0YXJ0dXAgcHJvY2VzcyB0byBjb250aW51ZQog CSAqIFdBTCByZXBsYXksIGlmIGl0IGlzIHdhaXRpbmcgZm9yIFdBTCB0byBhcnJpdmUgb3Ig ZmFpbG92ZXIgdHJpZ2dlciBmaWxlCiAJICogdG8gYXBwZWFyLgorCSAqCisJICogTm90ZSB0 aGF0IHRoZSBzdGFydHVwIHByb2Nlc3MgYWxzbyB1c2VzIGFub3RoZXIgbGF0Y2gsIGl0cyBw cm9jTGF0Y2gsCisJICogdG8gd2FpdCBmb3IgcmVjb3ZlcnkgY29uZmxpY3QuIElmIHdlIGdl dCByaWQgb2YgcmVjb3ZlcnlXYWtldXBMYXRjaCBmb3IKKwkgKiBzaWduYWxpbmcgdGhlIHN0 YXJ0dXAgcHJvY2VzcyBpbiBmYXZvciBvZiB1c2luZyBpdHMgcHJvY0xhdGNoLCB3aGljaAor CSAqIGNvbXBvcnRzIGJldHRlciB3aXRoIHBvc3NpYmxlIGdlbmVyaWMgc2lnbmFsIGhhbmRs ZXJzIHVzaW5nIHRoYXQgbGF0Y2guCisJICogQnV0IHdlIHNob3VsZCBub3QgZG8gdGhhdCBi ZWNhdXNlIHRoZSBzdGFydHVwIHByb2Nlc3MgZG9lc24ndCBhc3N1bWUKKwkgKiB0aGF0IGl0 J3Mgd2FrZW4gdXAgYnkgd2FscmVjZWl2ZXIgcHJvY2VzcyBvciBTSUdIVVAgc2lnbmFsIGhh bmRsZXIKKwkgKiB3aGlsZSBpdCdzIHdhaXRpbmcgZm9yIHJlY292ZXJ5IGNvbmZsaWN0LiBU aGUgc2VwYXJhdGUgbGF0Y2hlcywKKwkgKiByZWNvdmVyeVdha2V1cExhdGNoIGFuZCBwcm9j TGF0Y2gsIHNob3VsZCBiZSB1c2VkIGZvciBpbnRlci1wcm9jZXNzCisJICogY29tbXVuaWNh dGlvbiBmb3IgV0FMIHJlcGxheSBhbmQgcmVjb3ZlcnkgY29uZmxpY3QsIHJlc3BlY3RpdmVs eS4KIAkgKi8KLQlMYXRjaAkJKnJlY292ZXJ5V2FrZXVwTGF0Y2g7CisJTGF0Y2gJCXJlY292 ZXJ5V2FrZXVwTGF0Y2g7CiAKIAkvKgogCSAqIER1cmluZyByZWNvdmVyeSwgd2Uga2VlcCBh IGNvcHkgb2YgdGhlIGxhdGVzdCBjaGVja3BvaW50IHJlY29yZCBoZXJlLgpAQCAtNTE4Niw2 ICs1MTk2LDcgQEAgWExPR1NobWVtSW5pdCh2b2lkKQogCVNwaW5Mb2NrSW5pdCgmWExvZ0N0 bC0+SW5zZXJ0Lmluc2VydHBvc19sY2spOwogCVNwaW5Mb2NrSW5pdCgmWExvZ0N0bC0+aW5m b19sY2spOwogCVNwaW5Mb2NrSW5pdCgmWExvZ0N0bC0+dWxzbl9sY2spOworCUluaXRTaGFy ZWRMYXRjaCgmWExvZ0N0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCk7CiB9CiAKIC8qCkBAIC02 MTIxLDcgKzYxMzIsNyBAQCByZWNvdmVyeUFwcGx5RGVsYXkoWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAKIAl3aGlsZSAodHJ1ZSkKIAl7Ci0JCVJlc2V0TGF0Y2goTXlMYXRjaCk7CisJ CVJlc2V0TGF0Y2goJlhMb2dDdGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogCiAJCS8qIG1p Z2h0IGNoYW5nZSB0aGUgdHJpZ2dlciBmaWxlJ3MgbG9jYXRpb24gKi8KIAkJSGFuZGxlU3Rh cnR1cFByb2NJbnRlcnJ1cHRzKCk7CkBAIC02MTQwLDcgKzYxNTEsNyBAQCByZWNvdmVyeUFw cGx5RGVsYXkoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJZWxvZyhERUJVRzIsICJy ZWNvdmVyeSBhcHBseSBkZWxheSAlbGQgbWlsbGlzZWNvbmRzIiwgbXNlY3MpOwogCi0JCSh2 b2lkKSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJKHZvaWQpIFdhaXRMYXRjaCgmWExvZ0N0bC0+ cmVjb3ZlcnlXYWtldXBMYXRjaCwKIAkJCQkJCSBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VU IHwgV0xfRVhJVF9PTl9QTV9ERUFUSCwKIAkJCQkJCSBtc2VjcywKIAkJCQkJCSBXQUlUX0VW RU5UX1JFQ09WRVJZX0FQUExZX0RFTEFZKTsKQEAgLTY0NjksMTEgKzY0ODAsMTEgQEAgU3Rh cnR1cFhMT0codm9pZCkKIAl9CiAKIAkvKgotCSAqIEFkdmVydGlzZSBvdXIgbGF0Y2ggdGhh dCBvdGhlciBwcm9jZXNzZXMgY2FuIHVzZSB0byB3YWtlIHVzIHVwCi0JICogaWYgd2UncmUg Z29pbmcgdG8gc2xlZXAgZHVyaW5nIHJlY292ZXJ5LgorCSAqIFRha2Ugb3duZXJzaGlwIG9m IHRoZSB3YWtldXAgbGF0Y2ggaWYgd2UncmUgZ29pbmcgdG8gc2xlZXAgZHVyaW5nCisJICog cmVjb3ZlcnkuCiAJICovCiAJaWYgKEFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZCkKLQkJWExv Z0N0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCA9ICZNeVByb2MtPnByb2NMYXRjaDsKKwkJT3du TGF0Y2goJlhMb2dDdGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogCiAJLyogU2V0IHVwIFhM T0cgcmVhZGVyIGZhY2lsaXR5ICovCiAJTWVtU2V0KCZwcml2YXRlLCAwLCBzaXplb2YoWExv Z1BhZ2VSZWFkUHJpdmF0ZSkpOwpAQCAtNzQ4NCwxMSArNzQ5NSwxMSBAQCBTdGFydHVwWExP Ryh2b2lkKQogCQlSZXNldFVubG9nZ2VkUmVsYXRpb25zKFVOTE9HR0VEX1JFTEFUSU9OX0lO SVQpOwogCiAJLyoKLQkgKiBXZSBkb24ndCBuZWVkIHRoZSBsYXRjaCBhbnltb3JlLiBJdCdz IG5vdCBzdHJpY3RseSBuZWNlc3NhcnkgdG8gcmVzZXQKLQkgKiBpdCB0byBOVUxMLCBidXQg bGV0J3MgZG8gaXQgZm9yIHRoZSBzYWtlIG9mIHRpZGluZXNzLgorCSAqIFdlIGRvbid0IG5l ZWQgdGhlIGxhdGNoIGFueW1vcmUuIEl0J3Mgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSB0byBk aXNvd24KKwkgKiBpdCwgYnV0IGxldCdzIGRvIGl0IGZvciB0aGUgc2FrZSBvZiB0aWRpbmVz cy4KIAkgKi8KIAlpZiAoQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkKQotCQlYTG9nQ3RsLT5y ZWNvdmVyeVdha2V1cExhdGNoID0gTlVMTDsKKwkJRGlzb3duTGF0Y2goJlhMb2dDdGwtPnJl Y292ZXJ5V2FrZXVwTGF0Y2gpOwogCiAJLyoKIAkgKiBXZSBhcmUgbm93IGRvbmUgcmVhZGlu ZyB0aGUgeGxvZyBmcm9tIHN0cmVhbS4gVHVybiBvZmYgc3RyZWFtaW5nCkBAIC0xMjMwMCwx MiArMTIzMTEsMTIgQEAgV2FpdEZvcldBTFRvQmVjb21lQXZhaWxhYmxlKFhMb2dSZWNQdHIg UmVjUHRyLCBib29sIHJhbmRBY2Nlc3MsCiAJCQkJCQl3YWl0X3RpbWUgPSB3YWxfcmV0cmll dmVfcmV0cnlfaW50ZXJ2YWwgLQogCQkJCQkJCVRpbWVzdGFtcERpZmZlcmVuY2VNaWxsaXNl Y29uZHMobGFzdF9mYWlsX3RpbWUsIG5vdyk7CiAKLQkJCQkJCSh2b2lkKSBXYWl0TGF0Y2go TXlMYXRjaCwKKwkJCQkJCSh2b2lkKSBXYWl0TGF0Y2goJlhMb2dDdGwtPnJlY292ZXJ5V2Fr ZXVwTGF0Y2gsCiAJCQkJCQkJCQkJIFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfAogCQkJ CQkJCQkJCSBXTF9FWElUX09OX1BNX0RFQVRILAogCQkJCQkJCQkJCSB3YWl0X3RpbWUsCiAJ CQkJCQkJCQkJIFdBSVRfRVZFTlRfUkVDT1ZFUllfUkVUUklFVkVfUkVUUllfSU5URVJWQUwp OwotCQkJCQkJUmVzZXRMYXRjaChNeUxhdGNoKTsKKwkJCQkJCVJlc2V0TGF0Y2goJlhMb2dD dGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogCQkJCQkJbm93ID0gR2V0Q3VycmVudFRpbWVz dGFtcCgpOwogCiAJCQkJCQkvKiBIYW5kbGUgaW50ZXJydXB0IHNpZ25hbHMgb2Ygc3RhcnR1 cCBwcm9jZXNzICovCkBAIC0xMjU1OSwxMSArMTI1NzAsMTEgQEAgV2FpdEZvcldBTFRvQmVj b21lQXZhaWxhYmxlKFhMb2dSZWNQdHIgUmVjUHRyLCBib29sIHJhbmRBY2Nlc3MsCiAJCQkJ CSAqIHRvIHJlYWN0IHRvIGEgdHJpZ2dlciBmaWxlIHByb21wdGx5IGFuZCB0byBjaGVjayBp ZiB0aGUKIAkJCQkJICogV0FMIHJlY2VpdmVyIGlzIHN0aWxsIGFjdGl2ZS4KIAkJCQkJICov Ci0JCQkJCSh2b2lkKSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJKHZvaWQpIFdhaXRMYXRj aCgmWExvZ0N0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCwKIAkJCQkJCQkJCSBXTF9MQVRDSF9T RVQgfCBXTF9USU1FT1VUIHwKIAkJCQkJCQkJCSBXTF9FWElUX09OX1BNX0RFQVRILAogCQkJ CQkJCQkJIDUwMDBMLCBXQUlUX0VWRU5UX1JFQ09WRVJZX1dBTF9TVFJFQU0pOwotCQkJCQlS ZXNldExhdGNoKE15TGF0Y2gpOworCQkJCQlSZXNldExhdGNoKCZYTG9nQ3RsLT5yZWNvdmVy eVdha2V1cExhdGNoKTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCkBAIC0xMjczNSw4ICsxMjc0 Niw3IEBAIENoZWNrUHJvbW90ZVNpZ25hbCh2b2lkKQogdm9pZAogV2FrZXVwUmVjb3Zlcnko dm9pZCkKIHsKLQlpZiAoWExvZ0N0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCkKLQkJU2V0TGF0 Y2goWExvZ0N0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCk7CisJU2V0TGF0Y2goJlhMb2dDdGwt PnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9zdGFydHVwLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N0YXJ0 dXAuYwppbmRleCBlYWI5YzhjNGVkLi42NGFmN2I4NzA3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3N0YXJ0dXAuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVy L3N0YXJ0dXAuYwpAQCAtMzcsNiArMzcsNyBAQAogLyoKICAqIEZsYWdzIHNldCBieSBpbnRl cnJ1cHQgaGFuZGxlcnMgZm9yIGxhdGVyIHNlcnZpY2UgaW4gdGhlIHJlZG8gbG9vcC4KICAq Lworc3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBnb3RfU0lHSFVQID0gZmFsc2U7CiBz dGF0aWMgdm9sYXRpbGUgc2lnX2F0b21pY190IHNodXRkb3duX3JlcXVlc3RlZCA9IGZhbHNl Owogc3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBwcm9tb3RlX3NpZ25hbGVkID0gZmFs c2U7CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgc3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBp bl9yZXN0b3JlX2NvbW1hbmQgPSBmYWxzZTsKIAogLyogU2lnbmFsIGhhbmRsZXJzICovCiBz dGF0aWMgdm9pZCBTdGFydHVwUHJvY1RyaWdnZXJIYW5kbGVyKFNJR05BTF9BUkdTKTsKK3N0 YXRpYyB2b2lkIFN0YXJ0dXBQcm9jU2lnSHVwSGFuZGxlcihTSUdOQUxfQVJHUyk7CiAKIAog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYyLDcgKzY0LDE5IEBA IFN0YXJ0dXBQcm9jVHJpZ2dlckhhbmRsZXIoU0lHTkFMX0FSR1MpCiAJaW50CQkJc2F2ZV9l cnJubyA9IGVycm5vOwogCiAJcHJvbW90ZV9zaWduYWxlZCA9IHRydWU7Ci0JU2V0TGF0Y2go TXlMYXRjaCk7CisJV2FrZXVwUmVjb3ZlcnkoKTsKKworCWVycm5vID0gc2F2ZV9lcnJubzsK K30KKworLyogU0lHSFVQOiBzZXQgZmxhZyB0byByZS1yZWFkIGNvbmZpZyBmaWxlIGF0IG5l eHQgY29udmVuaWVudCB0aW1lICovCitzdGF0aWMgdm9pZAorU3RhcnR1cFByb2NTaWdIdXBI YW5kbGVyKFNJR05BTF9BUkdTKQoreworCWludAkJCXNhdmVfZXJybm8gPSBlcnJubzsKKwor CWdvdF9TSUdIVVAgPSB0cnVlOworCVdha2V1cFJlY292ZXJ5KCk7CiAKIAllcnJubyA9IHNh dmVfZXJybm87CiB9CkBAIC03Nyw3ICs5MSw3IEBAIFN0YXJ0dXBQcm9jU2h1dGRvd25IYW5k bGVyKFNJR05BTF9BUkdTKQogCQlwcm9jX2V4aXQoMSk7CiAJZWxzZQogCQlzaHV0ZG93bl9y ZXF1ZXN0ZWQgPSB0cnVlOwotCVNldExhdGNoKE15TGF0Y2gpOworCVdha2V1cFJlY292ZXJ5 KCk7CiAKIAllcnJubyA9IHNhdmVfZXJybm87CiB9CkBAIC0xMjMsOSArMTM3LDkgQEAgSGFu ZGxlU3RhcnR1cFByb2NJbnRlcnJ1cHRzKHZvaWQpCiAJLyoKIAkgKiBQcm9jZXNzIGFueSBy ZXF1ZXN0cyBvciBzaWduYWxzIHJlY2VpdmVkIHJlY2VudGx5LgogCSAqLwotCWlmIChDb25m aWdSZWxvYWRQZW5kaW5nKQorCWlmIChnb3RfU0lHSFVQKQogCXsKLQkJQ29uZmlnUmVsb2Fk UGVuZGluZyA9IGZhbHNlOworCQlnb3RfU0lHSFVQID0gZmFsc2U7CiAJCVN0YXJ0dXBSZXJl YWRDb25maWcoKTsKIAl9CiAKQEAgLTE1OCw3ICsxNzIsNyBAQCBTdGFydHVwUHJvY2Vzc01h aW4odm9pZCkKIAkvKgogCSAqIFByb3Blcmx5IGFjY2VwdCBvciBpZ25vcmUgc2lnbmFscyB0 aGUgcG9zdG1hc3RlciBtaWdodCBzZW5kIHVzLgogCSAqLwotCXBxc2lnbmFsKFNJR0hVUCwg U2lnbmFsSGFuZGxlckZvckNvbmZpZ1JlbG9hZCk7IC8qIHJlbG9hZCBjb25maWcgZmlsZSAq LworCXBxc2lnbmFsKFNJR0hVUCwgU3RhcnR1cFByb2NTaWdIdXBIYW5kbGVyKTsgLyogcmVs b2FkIGNvbmZpZyBmaWxlICovCiAJcHFzaWduYWwoU0lHSU5ULCBTSUdfSUdOKTsJLyogaWdu b3JlIHF1ZXJ5IGNhbmNlbCAqLwogCXBxc2lnbmFsKFNJR1RFUk0sIFN0YXJ0dXBQcm9jU2h1 dGRvd25IYW5kbGVyKTsJLyogcmVxdWVzdCBzaHV0ZG93biAqLwogCS8qIFNJR1FVSVQgaGFu ZGxlciB3YXMgYWxyZWFkeSBzZXQgdXAgYnkgSW5pdFBvc3RtYXN0ZXJDaGlsZCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IDRlYTNjZjFmNWMuLjkyZDkwMjc3NzYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYworKysgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKQEAgLTUxOSw3ICs1MTksMTQgQEAg UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoQnVmZmVyUGluKHZvaWQpCiAJCWVuYWJsZV90 aW1lb3V0cyh0aW1lb3V0cywgMik7CiAJfQogCi0JLyogV2FpdCB0byBiZSBzaWduYWxlZCBi eSBVbnBpbkJ1ZmZlcigpICovCisJLyoKKwkgKiBXYWl0IHRvIGJlIHNpZ25hbGVkIGJ5IFVu cGluQnVmZmVyKCkuCisJICoKKwkgKiBXZSBhc3N1bWUgdGhhdCBvbmx5IFVucGluQnVmZmVy KCkgYW5kIHRoZSB0aW1lb3V0IHJlcXVlc3RzIGVzdGFibGlzaGVkCisJICogYWJvdmUgY2Fu IHdha2UgdXMgdXAgaGVyZS4gV2FrZXVwUmVjb3ZlcnkoKSBjYWxsZWQgYnkgd2FscmVjZWl2 ZXIgb3IKKwkgKiBTSUdIVVAgc2lnbmFsIGhhbmRsZXIsIGV0YyBjYW5ub3QgZG8gdGhhdCBi ZWNhdXNlIGl0IHVzZXMgdGhlIGRpZmZlcmVudAorCSAqIGxhdGNoIGZyb20gdGhhdCBQcm9j V2FpdEZvclNpZ25hbCgpIHdhaXRzIG9uLgorCSAqLwogCVByb2NXYWl0Rm9yU2lnbmFsKFBH X1dBSVRfQlVGRkVSX1BJTik7CiAKIAkvKgo= --------------ADB8E586496E5A57972C6737--