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 1l2p93-0007Zy-TD for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Jan 2021 05:38:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l2p90-00039x-Eu for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Jan 2021 05:38:02 +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 1l2p90-00039p-5T for pgsql-hackers@lists.postgresql.org; Fri, 22 Jan 2021 05:38:02 +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 1l2p8u-00043T-HS for pgsql-hackers@postgresql.org; Fri, 22 Jan 2021 05:38:01 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id B61BD62739; Fri, 22 Jan 2021 14:37:50 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_9eca4e4262d0e839f2fd4b67200e21fa" Date: Fri, 22 Jan 2021 14:37:50 +0900 From: torikoshia To: Fujii Masao Cc: Ian Lawrence Barwick , Robert Haas , Justin Pryzby , pgsql-hackers Subject: Re: adding wait_start column to pg_locks In-Reply-To: <7b1bb07a-73ec-1fcc-2f65-41101adf0080@oss.nttdata.com> References: <20210101214930.GH25152@telsasoft.com> <9e958478d8bcea814e7ce16511a18912@oss.nttdata.com> <23d39ee9c31643fad8f9ba9c5cf3aaf4@oss.nttdata.com> <0fd375a53e306566cea7f451cc8cfcde@oss.nttdata.com> <7b1bb07a-73ec-1fcc-2f65-41101adf0080@oss.nttdata.com> Message-ID: X-Sender: torikoshia@oss.nttdata.com User-Agent: Roundcube Webmail/1.1.9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_9eca4e4262d0e839f2fd4b67200e21fa Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2021-01-21 12:48, Fujii Masao wrote: > Thanks for updating the patch! I think that this is really useful > feature!! Thanks for reviewing! > I have two minor comments. > > + role="column_definition"> > + wait_start timestamptz > > The column name "wait_start" should be "waitstart" for the sake of > consistency > with other column names in pg_locks? pg_locks seems to avoid including > an underscore in column names, so "locktype" is used instead of > "lock_type", > "virtualtransaction" is used instead of "virtual_transaction", etc. > > + Lock acquisition wait start time. NULL if > + lock acquired. > Agreed. I also changed the variable name "wait_start" in struct PGPROC and LockInstanceData to "waitStart" for the same reason. > There seems the case where the wait start time is NULL even when > "grant" > is false. It's better to add note about that case into the docs? For > example, > I found that the wait start time is NULL while the startup process is > waiting > for the lock. Is this only that case? Thanks, this is because I set 'waitstart' in the following condition. ---src/backend/storage/lmgr/proc.c > 1250 if (!InHotStandby) As far as considering this, I guess startup process would be the only case. I also think that in case of startup process, it seems possible to set 'waitstart' in ResolveRecoveryConflictWithLock(), so I did it in the attached patch. Any thoughts? Regards, -- Atsushi Torikoshi --=_9eca4e4262d0e839f2fd4b67200e21fa Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0001-To-examine-the-duration-of-locks-we-did-join-on-p.patch Content-Disposition: attachment; filename=v5-0001-To-examine-the-duration-of-locks-we-did-join-on-p.patch; size=10358 RnJvbSA2YmViMWM2MWU3MmM3OTdjOTE1NDI3YWU0ZTM2ZDZiYWI5ZTA1OTRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IEZyaSwgMjIgSmFuIDIwMjEgMTM6NTE6MDAgKzA5MDAKU3ViamVjdDog W1BBVENIIHY1XSBUbyBleGFtaW5lIHRoZSBkdXJhdGlvbiBvZiBsb2Nrcywgd2UgZGlkIGpvaW4g b24gcGdfbG9ja3MKIGFuZCBwZ19zdGF0X2FjdGl2aXR5IGFuZCB1c2VkIGNvbHVtbnMgc3VjaCBh cyBxdWVyeV9zdGFydCBvciBzdGF0ZV9jaGFuZ2UuCiBIb3dldmVyLCBzaW5jZSB0aGV5IGFyZSB0 aGUgbW9tZW50IHdoZW4gcXVlcmllcyBoYXZlIHN0YXJ0ZWQgb3IgdGhlaXIgc3RhdGUKIGhhcyBj aGFuZ2VkLCB3ZSBjb3VsZCBub3QgZ2V0IHRoZSBleGFjdCBsb2NrIGR1cmF0aW9uIGluIHRoaXMg d2F5LgoKLS0tCiBjb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IHwgIDQg KystLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICB8IDEwICsrKysr KysrKysKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAgICAgfCAgOCArKysr KystLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyAgICAgICAgICB8ICA4ICsrKysr KysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jICAgICAgICAgIHwgIDQgKysrKwog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5jICAgICAgICB8ICA5ICsrKysrKysrLQog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICB8ICA2ICsrKy0tLQogc3Jj L2luY2x1ZGUvc3RvcmFnZS9sb2NrLmggICAgICAgICAgICAgICB8ICAyICsrCiBzcmMvaW5jbHVk ZS9zdG9yYWdlL3Byb2MuaCAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQgICAgICB8ICA1ICsrKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCA0NyBp bnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hl Y2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IGIvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2No ZWNrX2J0cmVlLm91dAppbmRleCAxMzg0OGI3NDQ5Li41YTNmMWVmNzM3IDEwMDY0NAotLS0gYS9j b250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0CisrKyBiL2NvbnRyaWIvYW1j aGVjay9leHBlY3RlZC9jaGVja19idHJlZS5vdXQKQEAgLTk3LDggKzk3LDggQEAgU0VMRUNUIGJ0 X2luZGV4X3BhcmVudF9jaGVjaygnYnR0ZXN0X2JfaWR4Jyk7CiBTRUxFQ1QgKiBGUk9NIHBnX2xv Y2tzCiBXSEVSRSByZWxhdGlvbiA9IEFOWShBUlJBWVsnYnR0ZXN0X2EnLCAnYnR0ZXN0X2FfaWR4 JywgJ2J0dGVzdF9iJywgJ2J0dGVzdF9iX2lkeCddOjpyZWdjbGFzc1tdKQogICAgIEFORCBwaWQg PSBwZ19iYWNrZW5kX3BpZCgpOwotIGxvY2t0eXBlIHwgZGF0YWJhc2UgfCByZWxhdGlvbiB8IHBh Z2UgfCB0dXBsZSB8IHZpcnR1YWx4aWQgfCB0cmFuc2FjdGlvbmlkIHwgY2xhc3NpZCB8IG9iamlk IHwgb2Jqc3ViaWQgfCB2aXJ0dWFsdHJhbnNhY3Rpb24gfCBwaWQgfCBtb2RlIHwgZ3JhbnRlZCB8 IGZhc3RwYXRoIAotLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LQorIGxvY2t0eXBlIHwgZGF0YWJhc2UgfCByZWxhdGlvbiB8IHBhZ2UgfCB0dXBsZSB8IHZpcnR1 YWx4aWQgfCB0cmFuc2FjdGlvbmlkIHwgY2xhc3NpZCB8IG9iamlkIHwgb2Jqc3ViaWQgfCB2aXJ0 dWFsdHJhbnNhY3Rpb24gfCBwaWQgfCBtb2RlIHwgZ3JhbnRlZCB8IGZhc3RwYXRoIHwgd2FpdHN0 YXJ0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLQogKDAgcm93cykKIAogQ09NTUlUOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA0M2Q3YTFhZDkw Li5iYTAwM2NlMzkzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMTA1ODksNiArMTA1ODksMTYgQEAgU0NS QU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2Vh YmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICBsb2NrIHRhYmxlCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPndhaXRzdGFydDwvc3RydWN0ZmllbGQ+IDx0eXBlPnRpbWVzdGFtcHR6PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTG9jayBhY3F1aXNpdGlv biB3YWl0IHN0YXJ0IHRpbWUuIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGlmCisgICAgICAgbG9j ayBhY3F1aXJlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJv ZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwpp bmRleCAzOWEzMGMwMGY3Li44MTllMDBlNGFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5j CkBAIC01MzksMTMgKzUzOSwxNyBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhEYXRhYmFz ZShPaWQgZGJpZCkKIHZvaWQKIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aExvY2soTE9DS1RB RyBsb2NrdGFnLCBib29sIGxvZ2dpbmdfY29uZmxpY3QpCiB7Ci0JVGltZXN0YW1wVHogbHRpbWU7 CisJVGltZXN0YW1wVHogbHRpbWUsIG5vdzsKIAogCUFzc2VydChJbkhvdFN0YW5kYnkpOwogCiAJ bHRpbWUgPSBHZXRTdGFuZGJ5TGltaXRUaW1lKCk7CisJbm93ID0gR2V0Q3VycmVudFRpbWVzdGFt cCgpOwogCi0JaWYgKEdldEN1cnJlbnRUaW1lc3RhbXAoKSA+PSBsdGltZSAmJiBsdGltZSAhPSAw KQorCWlmIChNeVByb2MtPndhaXRTdGFydCA9PSAwKQorCQlNeVByb2MtPndhaXRTdGFydCA9IG5v dzsKKworCWlmIChub3cgPj0gbHRpbWUgJiYgbHRpbWUgIT0gMCkKIAl7CiAJCS8qCiAJCSAqIFdl J3JlIGFscmVhZHkgYmVoaW5kLCBzbyBjbGVhciBhIHBhdGggYXMgcXVpY2tseSBhcyBwb3NzaWJs ZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMgYi9zcmMvYmFj a2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jCmluZGV4IDIwZTUwMjQ3ZWEuLmZmYWQ0ZTk0YmMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMKKysrIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9sbWdyL2xvY2suYwpAQCAtMzYyNyw2ICszNjI3LDEyIEBAIEdldExvY2tTdGF0 dXNEYXRhKHZvaWQpCiAJCQlpbnN0YW5jZS0+bGVhZGVyUGlkID0gcHJvYy0+cGlkOwogCQkJaW5z dGFuY2UtPmZhc3RwYXRoID0gdHJ1ZTsKIAorCQkJLyoKKwkJCSAqIFN1Y2Nlc3NmdWxseSB0YWtp bmcgZmFzdCBwYXRoIGxvY2sgbWVhbnMgdGhlcmUgd2VyZSBubworCQkJICogY29uZmxpY3Rpbmcg bG9ja3MuCisJCQkgKi8KKwkJCWluc3RhbmNlLT53YWl0U3RhcnQgPSAwOworCiAJCQllbCsrOwog CQl9CiAKQEAgLTM2NTQsNiArMzY2MCw3IEBAIEdldExvY2tTdGF0dXNEYXRhKHZvaWQpCiAJCQlp bnN0YW5jZS0+cGlkID0gcHJvYy0+cGlkOwogCQkJaW5zdGFuY2UtPmxlYWRlclBpZCA9IHByb2Mt PnBpZDsKIAkJCWluc3RhbmNlLT5mYXN0cGF0aCA9IHRydWU7CisJCQlpbnN0YW5jZS0+d2FpdFN0 YXJ0ID0gMDsKIAogCQkJZWwrKzsKIAkJfQpAQCAtMzcwNiw2ICszNzEzLDcgQEAgR2V0TG9ja1N0 YXR1c0RhdGEodm9pZCkKIAkJaW5zdGFuY2UtPnBpZCA9IHByb2MtPnBpZDsKIAkJaW5zdGFuY2Ut PmxlYWRlclBpZCA9IHByb2Nsb2NrLT5ncm91cExlYWRlci0+cGlkOwogCQlpbnN0YW5jZS0+ZmFz dHBhdGggPSBmYWxzZTsKKwkJaW5zdGFuY2UtPndhaXRTdGFydCA9IHByb2MtPndhaXRTdGFydDsK IAogCQllbCsrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9j LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jCmluZGV4IGM4N2ZmYzY1NDkuLjcy NWYxZDM2N2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYwpAQCAtNDAyLDYgKzQwMiw3IEBAIElu aXRQcm9jZXNzKHZvaWQpCiAJTXlQcm9jLT5sd1dhaXRNb2RlID0gMDsKIAlNeVByb2MtPndhaXRM b2NrID0gTlVMTDsKIAlNeVByb2MtPndhaXRQcm9jTG9jayA9IE5VTEw7CisJTXlQcm9jLT53YWl0 U3RhcnQgPSAwOwogI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKIAl7CiAJCWludAkJCWk7CkBA IC0xMjYyLDYgKzEyNjMsOCBAQCBQcm9jU2xlZXAoTE9DQUxMT0NLICpsb2NhbGxvY2ssIExvY2tN ZXRob2QgbG9ja01ldGhvZFRhYmxlKQogCQl9CiAJCWVsc2UKIAkJCWVuYWJsZV90aW1lb3V0X2Fm dGVyKERFQURMT0NLX1RJTUVPVVQsIERlYWRsb2NrVGltZW91dCk7CisKKwkJTXlQcm9jLT53YWl0 U3RhcnQgPSBnZXRfdGltZW91dF9zdGFydF90aW1lKERFQURMT0NLX1RJTUVPVVQpOwogCX0KIAll bHNlIGlmIChsb2dfcmVjb3ZlcnlfY29uZmxpY3Rfd2FpdHMpCiAJewpAQCAtMTY3OCw2ICsxNjgx LDcgQEAgUHJvY1dha2V1cChQR1BST0MgKnByb2MsIFByb2NXYWl0U3RhdHVzIHdhaXRTdGF0dXMp CiAJcHJvYy0+d2FpdExvY2sgPSBOVUxMOwogCXByb2MtPndhaXRQcm9jTG9jayA9IE5VTEw7CiAJ cHJvYy0+d2FpdFN0YXR1cyA9IHdhaXRTdGF0dXM7CisJcHJvYy0+d2FpdFN0YXJ0ID0gMDsKIAog CS8qIEFuZCBhd2FrZW4gaXQgKi8KIAlTZXRMYXRjaCgmcHJvYy0+cHJvY0xhdGNoKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9sb2NrZnVuY3MuYwppbmRleCBiMWNmNWI3OWE3Li45N2YwMjY1YzEyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbG9ja2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2xvY2tmdW5jcy5jCkBAIC02Myw3ICs2Myw3IEBAIHR5cGVkZWYgc3RydWN0CiB9 IFBHX0xvY2tfU3RhdHVzOwogCiAvKiBOdW1iZXIgb2YgY29sdW1ucyBpbiBwZ19sb2NrcyBvdXRw dXQgKi8KLSNkZWZpbmUgTlVNX0xPQ0tfU1RBVFVTX0NPTFVNTlMJCTE1CisjZGVmaW5lIE5VTV9M T0NLX1NUQVRVU19DT0xVTU5TCQkxNgogCiAvKgogICogVlhJREdldERhdHVtIC0gQ29uc3RydWN0 IGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIFZYSUQKQEAgLTE0Miw2ICsxNDIsOCBAQCBwZ19s b2NrX3N0YXR1cyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJICAgQk9PTE9JRCwgLTEsIDApOwog CQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDE1LCAiZmFzdHBhdGgi LAogCQkJCQkJICAgQk9PTE9JRCwgLTEsIDApOworCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpIDE2LCAid2FpdHN0YXJ0IiwKKwkJCQkJCSAgIFRJTUVTVEFNUFRaT0lE LCAtMSwgMCk7CiAKIAkJZnVuY2N0eC0+dHVwbGVfZGVzYyA9IEJsZXNzVHVwbGVEZXNjKHR1cGRl c2MpOwogCkBAIC0zMzYsNiArMzM4LDEwIEBAIHBnX2xvY2tfc3RhdHVzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCXZhbHVlc1sxMl0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKEdldExvY2ttb2RlTmFtZShp bnN0YW5jZS0+bG9ja3RhZy5sb2NrdGFnX2xvY2ttZXRob2RpZCwgbW9kZSkpOwogCQl2YWx1ZXNb MTNdID0gQm9vbEdldERhdHVtKGdyYW50ZWQpOwogCQl2YWx1ZXNbMTRdID0gQm9vbEdldERhdHVt KGluc3RhbmNlLT5mYXN0cGF0aCk7CisJCWlmICghZ3JhbnRlZCAmJiBpbnN0YW5jZS0+d2FpdFN0 YXJ0ICE9IDApCisJCQl2YWx1ZXNbMTVdID0gVGltZXN0YW1wVHpHZXREYXR1bShpbnN0YW5jZS0+ d2FpdFN0YXJ0KTsKKwkJZWxzZQorCQkJbnVsbHNbMTVdID0gdHJ1ZTsKIAogCQl0dXBsZSA9IGhl YXBfZm9ybV90dXBsZShmdW5jY3R4LT50dXBsZV9kZXNjLCB2YWx1ZXMsIG51bGxzKTsKIAkJcmVz dWx0ID0gSGVhcFR1cGxlR2V0RGF0dW0odHVwbGUpOwpAQCAtNDA2LDYgKzQxMiw3IEBAIHBnX2xv Y2tfc3RhdHVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXZhbHVlc1sxMl0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKCJTSVJlYWRMb2NrIik7CiAJCXZhbHVlc1sxM10gPSBCb29sR2V0RGF0dW0odHJ1ZSk7 CiAJCXZhbHVlc1sxNF0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOworCQludWxsc1sxNV0gPSB0cnVl OwogCiAJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKGZ1bmNjdHgtPnR1cGxlX2Rlc2MsIHZhbHVl cywgbnVsbHMpOwogCQlyZXN1bHQgPSBIZWFwVHVwbGVHZXREYXR1bSh0dXBsZSk7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCBiNWY1MmQ0ZTRhLi42MTMxMDc4MWNhIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTU5ODYsOSArNTk4Niw5IEBACiB7IG9pZCA9PiAnMTM3MScsIGRlc2Ny ID0+ICd2aWV3IHN5c3RlbSBsb2NrIGluZm9ybWF0aW9uJywKICAgcHJvbmFtZSA9PiAncGdfbG9j a19zdGF0dXMnLCBwcm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKICAgcHJvdm9s YXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAnJywK LSAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LG9pZCxvaWQsaW50NCxpbnQyLHRleHQseGlkLG9p ZCxvaWQsaW50Mix0ZXh0LGludDQsdGV4dCxib29sLGJvb2x9JywKLSAgcHJvYXJnbW9kZXMgPT4g J3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBwcm9hcmduYW1lcyA9PiAne2xv Y2t0eXBlLGRhdGFiYXNlLHJlbGF0aW9uLHBhZ2UsdHVwbGUsdmlydHVhbHhpZCx0cmFuc2FjdGlv bmlkLGNsYXNzaWQsb2JqaWQsb2Jqc3ViaWQsdmlydHVhbHRyYW5zYWN0aW9uLHBpZCxtb2RlLGdy YW50ZWQsZmFzdHBhdGh9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LG9pZCxvaWQsaW50 NCxpbnQyLHRleHQseGlkLG9pZCxvaWQsaW50Mix0ZXh0LGludDQsdGV4dCxib29sLGJvb2wsdGlt ZXN0YW1wdHp9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7bG9ja3R5cGUsZGF0YWJhc2UscmVsYXRpb24s cGFnZSx0dXBsZSx2aXJ0dWFseGlkLHRyYW5zYWN0aW9uaWQsY2xhc3NpZCxvYmppZCxvYmpzdWJp ZCx2aXJ0dWFsdHJhbnNhY3Rpb24scGlkLG1vZGUsZ3JhbnRlZCxmYXN0cGF0aCx3YWl0c3RhcnR9 JywKICAgcHJvc3JjID0+ICdwZ19sb2NrX3N0YXR1cycgfSwKIHsgb2lkID0+ICcyNTYxJywKICAg ZGVzY3IgPT4gJ2dldCBhcnJheSBvZiBQSURzIG9mIHNlc3Npb25zIGJsb2NraW5nIHNwZWNpZmll ZCBiYWNrZW5kIFBJRCBmcm9tIGFjcXVpcmluZyBhIGhlYXZ5d2VpZ2h0IGxvY2snLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9sb2NrLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2xv Y2suaAppbmRleCAyZTZlZjE3NGU5Li5jZjMxMmJjNTViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9zdG9yYWdlL2xvY2suaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2xvY2suaApAQCAtMjIs NiArMjIsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbG9ja2RlZnMuaCIKICNpbmNsdWRlICJzdG9y YWdlL2x3bG9jay5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKIAogLyogc3RydWN0IFBHUFJPQyBpcyBkZWNsYXJlZCBpbiBwcm9jLmgs IGJ1dCBtdXN0IGZvcndhcmQtcmVmZXJlbmNlIGl0ICovCiB0eXBlZGVmIHN0cnVjdCBQR1BST0Mg UEdQUk9DOwpAQCAtNDQ1LDYgKzQ0Niw3IEBAIHR5cGVkZWYgc3RydWN0IExvY2tJbnN0YW5jZURh dGEKIAlMT0NLTU9ERQl3YWl0TG9ja01vZGU7CS8qIGxvY2sgYXdhaXRlZCBieSB0aGlzIFBHUFJP QywgaWYgYW55ICovCiAJQmFja2VuZElkCWJhY2tlbmQ7CQkvKiBiYWNrZW5kIElEIG9mIHRoaXMg UEdQUk9DICovCiAJTG9jYWxUcmFuc2FjdGlvbklkIGx4aWQ7CS8qIGxvY2FsIHRyYW5zYWN0aW9u IElEIG9mIHRoaXMgUEdQUk9DICovCisJVGltZXN0YW1wVHoJd2FpdFN0YXJ0OwkJLyogdGltZSBh dCB3aGljaCB0aGlzIFBHUFJPQyBzdGFydGVkIHdhaXRpbmcgZm9yIGxvY2sgKi8KIAlpbnQJCQlw aWQ7CQkJLyogcGlkIG9mIHRoaXMgUEdQUk9DICovCiAJaW50CQkJbGVhZGVyUGlkOwkJLyogcGlk IG9mIGdyb3VwIGxlYWRlcjsgPSBwaWQgaWYgbm8gZ3JvdXAgKi8KIAlib29sCQlmYXN0cGF0aDsJ CS8qIHRha2VuIHZpYSBmYXN0cGF0aD8gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3Jh Z2UvcHJvYy5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKaW5kZXggNjgzYWI2NGY3Ni4u ODNiNWVjM2JhYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKKysrIGIv c3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKQEAgLTE4MSw2ICsxODEsNyBAQCBzdHJ1Y3QgUEdQ Uk9DCiAJTE9DS01PREUJd2FpdExvY2tNb2RlOwkvKiB0eXBlIG9mIGxvY2sgd2UncmUgd2FpdGlu ZyBmb3IgKi8KIAlMT0NLTUFTSwloZWxkTG9ja3M7CQkvKiBiaXRtYXNrIGZvciBsb2NrIHR5cGVz IGFscmVhZHkgaGVsZCBvbiB0aGlzCiAJCQkJCQkJCSAqIGxvY2sgb2JqZWN0IGJ5IHRoaXMgYmFj a2VuZCAqLworCVRpbWVzdGFtcFR6CXdhaXRTdGFydDsJCS8qIHRpbWUgYXQgd2hpY2ggd2FpdCBm b3IgbG9jayBhY3F1aXNpdGlvbiBzdGFydGVkICovCiAKIAlib29sCQlkZWxheUNoa3B0OwkJLyog dHJ1ZSBpZiB0aGlzIHByb2MgZGVsYXlzIGNoZWNrcG9pbnQgc3RhcnQgKi8KIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA2MTczNDczZGU5Li41Yjg2YzdkNWYyIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTM5NCw4ICsxMzk0LDkgQEAgcGdfbG9ja3N8 IFNFTEVDVCBsLmxvY2t0eXBlLAogICAgIGwucGlkLAogICAgIGwubW9kZSwKICAgICBsLmdyYW50 ZWQsCi0gICAgbC5mYXN0cGF0aAotICAgRlJPTSBwZ19sb2NrX3N0YXR1cygpIGwobG9ja3R5cGUs IGRhdGFiYXNlLCByZWxhdGlvbiwgcGFnZSwgdHVwbGUsIHZpcnR1YWx4aWQsIHRyYW5zYWN0aW9u aWQsIGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCwgdmlydHVhbHRyYW5zYWN0aW9uLCBwaWQsIG1v ZGUsIGdyYW50ZWQsIGZhc3RwYXRoKTsKKyAgICBsLmZhc3RwYXRoLAorICAgIGwud2FpdHN0YXJ0 CisgICBGUk9NIHBnX2xvY2tfc3RhdHVzKCkgbChsb2NrdHlwZSwgZGF0YWJhc2UsIHJlbGF0aW9u LCBwYWdlLCB0dXBsZSwgdmlydHVhbHhpZCwgdHJhbnNhY3Rpb25pZCwgY2xhc3NpZCwgb2JqaWQs IG9ianN1YmlkLCB2aXJ0dWFsdHJhbnNhY3Rpb24sIHBpZCwgbW9kZSwgZ3JhbnRlZCwgZmFzdHBh dGgsIHdhaXRzdGFydCk7CiBwZ19tYXR2aWV3c3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hlbWFu YW1lLAogICAgIGMucmVsbmFtZSBBUyBtYXR2aWV3bmFtZSwKICAgICBwZ19nZXRfdXNlcmJ5aWQo Yy5yZWxvd25lcikgQVMgbWF0dmlld293bmVyLAotLSAKMi4xOC4xCgo= --=_9eca4e4262d0e839f2fd4b67200e21fa--