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 1l1Kmw-0003kI-9N for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Jan 2021 03:01: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 1l1KmO-00082m-6P for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Jan 2021 03:00:32 +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 1l1KmN-00082e-TU for pgsql-hackers@lists.postgresql.org; Mon, 18 Jan 2021 03:00:31 +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 1l1KmJ-0005HQ-Ix for pgsql-hackers@postgresql.org; Mon, 18 Jan 2021 03:00:30 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id 08B38626F4; Mon, 18 Jan 2021 12:00:22 +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="=_a14ca8dfc6a84ed9f926567b2837d502" Date: Mon, 18 Jan 2021 12:00:22 +0900 From: torikoshia To: Ian Lawrence Barwick Cc: Robert Haas , Justin Pryzby , pgsql-hackers Subject: Re: adding wait_start column to pg_locks In-Reply-To: <23d39ee9c31643fad8f9ba9c5cf3aaf4@oss.nttdata.com> References: <20210101214930.GH25152@telsasoft.com> <9e958478d8bcea814e7ce16511a18912@oss.nttdata.com> <23d39ee9c31643fad8f9ba9c5cf3aaf4@oss.nttdata.com> Message-ID: <0fd375a53e306566cea7f451cc8cfcde@oss.nttdata.com> 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 --=_a14ca8dfc6a84ed9f926567b2837d502 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed On 2021-01-15 15:23, torikoshia wrote: > Thanks for your reviewing and comments! > > On 2021-01-14 12:39, Ian Lawrence Barwick wrote: >> Looking at the code, this happens as the wait start time is being >> recorded in >> the lock record itself, so always contains the value reported by the >> latest lock >> acquisition attempt. > > I think you are right and wait_start should not be recorded > in the LOCK. > > > On 2021-01-15 11:48, Ian Lawrence Barwick wrote: >> 2021年1月15日(金) 3:45 Robert Haas : >> >>> On Wed, Jan 13, 2021 at 10:40 PM Ian Lawrence Barwick >>> wrote: >>>> It looks like the logical place to store the value is in the >>> PROCLOCK >>>> structure; ... >>> >>> That seems surprising, because there's one PROCLOCK for every >>> combination of a process and a lock. But, a process can't be waiting >>> for more than one lock at the same time, because once it starts >>> waiting to acquire the first one, it can't do anything else, and >>> thus >>> can't begin waiting for a second one. So I would have thought that >>> this would be recorded in the PROC. >> >> Umm, I think we're at cross-purposes here. The suggestion is to note >> the time when the process started waiting for the lock in the >> process's >> PROCLOCK, rather than in the lock itself (which in the original >> version >> of the patch resulted in all processes with an interest in the lock >> appearing >> to have been waiting to acquire it since the time a lock acquisition >> was most recently attempted). > > AFAIU, it seems possible to record wait_start in the PROCLOCK but > redundant since each process can wait at most one lock. > > To confirm my understanding, I'm going to make another patch that > records wait_start in the PGPROC. Attached a patch. I noticed previous patches left the wait_start untouched even after it acquired lock. The patch also fixed it. Any thoughts? Regards, -- Atsushi Torikoshi --=_a14ca8dfc6a84ed9f926567b2837d502 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v4-0001-To-examine-the-duration-of-locks-we-did-join-on-p.patch Content-Disposition: attachment; filename=v4-0001-To-examine-the-duration-of-locks-we-did-join-on-p.patch; size=9685 RnJvbSA2MmZmM2U0ZGJhN2Q0NWMyNjBhNjJhMzM0MjVjYjJkMWU2YjgyMmM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IE1vbiwgMTggSmFuIDIwMjEgMTA6MDE6MzUgKzA5MDAKU3ViamVjdDog W1BBVENIIHY0XSBUbyBleGFtaW5lIHRoZSBkdXJhdGlvbiBvZiBsb2Nrcywgd2UgZGlkIGpvaW4g b24gcGdfbG9ja3MKIGFuZCBwZ19zdGF0X2FjdGl2aXR5IGFuZCB1c2VkIGNvbHVtbnMgc3VjaCBh cyBxdWVyeV9zdGFydCBvciBzdGF0ZV9jaGFuZ2UuCiBIb3dldmVyLCBzaW5jZSB0aGV5IGFyZSB0 aGUgbW9tZW50IHdoZW4gcXVlcmllcyBoYXZlIHN0YXJ0ZWQgb3IgdGhlaXIgc3RhdGUKIGhhcyBj aGFuZ2VkLCB3ZSBjb3VsZCBub3QgZ2V0IHRoZSBleGFjdCBsb2NrIGR1cmF0aW9uIGluIHRoaXMg d2F5LgoKVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGZpZWxkIHByZXNlcnZpbmcgdGhlIHRpbWUgYXQg d2hpY2ggbG9ja3Mgc3RhcnRlZAp3YWl0aW5nLgotLS0KIGNvbnRyaWIvYW1jaGVjay9leHBlY3Rl ZC9jaGVja19idHJlZS5vdXQgfCAgNCArKy0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAg ICAgICAgICAgICAgIHwgMTAgKysrKysrKysrKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xv Y2suYyAgICAgICAgICB8ICA4ICsrKysrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJv Yy5jICAgICAgICAgIHwgIDQgKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5j ICAgICAgICB8ICA5ICsrKysrKysrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAg ICAgICAgICB8ICA2ICsrKy0tLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9sb2NrLmggICAgICAgICAg ICAgICB8ICAyICsrCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCAgICAgICAgICAgICAgIHwg IDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICB8ICA1ICsrKy0t CiA5IGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2J0cmVlLm91dCBiL2NvbnRy aWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19idHJlZS5vdXQKaW5kZXggMTM4NDhiNzQ0OS4uYzBh ZWNiMDI4OCAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2J0cmVl Lm91dAorKysgYi9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0CkBAIC05 Nyw4ICs5Nyw4IEBAIFNFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ2J0dGVzdF9iX2lkeCcp OwogU0VMRUNUICogRlJPTSBwZ19sb2NrcwogV0hFUkUgcmVsYXRpb24gPSBBTlkoQVJSQVlbJ2J0 dGVzdF9hJywgJ2J0dGVzdF9hX2lkeCcsICdidHRlc3RfYicsICdidHRlc3RfYl9pZHgnXTo6cmVn Y2xhc3NbXSkKICAgICBBTkQgcGlkID0gcGdfYmFja2VuZF9waWQoKTsKLSBsb2NrdHlwZSB8IGRh dGFiYXNlIHwgcmVsYXRpb24gfCBwYWdlIHwgdHVwbGUgfCB2aXJ0dWFseGlkIHwgdHJhbnNhY3Rp b25pZCB8IGNsYXNzaWQgfCBvYmppZCB8IG9ianN1YmlkIHwgdmlydHVhbHRyYW5zYWN0aW9uIHwg cGlkIHwgbW9kZSB8IGdyYW50ZWQgfCBmYXN0cGF0aCAKLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBsb2NrdHlwZSB8IGRhdGFiYXNlIHwgcmVsYXRpb24g fCBwYWdlIHwgdHVwbGUgfCB2aXJ0dWFseGlkIHwgdHJhbnNhY3Rpb25pZCB8IGNsYXNzaWQgfCBv YmppZCB8IG9ianN1YmlkIHwgdmlydHVhbHRyYW5zYWN0aW9uIHwgcGlkIHwgbW9kZSB8IGdyYW50 ZWQgfCBmYXN0cGF0aCB8IHdhaXRfc3RhcnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogQ09NTUlUOwpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbAppbmRleCA0M2Q3YTFhZDkwLi5hNWNlMDgzNWE5IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAt MTA1ODksNiArMTA1ODksMTYgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJh dGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICBsb2Nr IHRhYmxlCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhaXRfc3RhcnQ8L3N0cnVjdGZp ZWxkPiA8dHlwZT50aW1lc3RhbXB0ejwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIExvY2sgYWNxdWlzaXRpb24gd2FpdCBzdGFydCB0aW1lLiA8bGl0ZXJhbD5OVUxM PC9saXRlcmFsPiBpZgorICAgICAgIGxvY2sgYWNxdWlyZWQuCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyBiL3NyYy9iYWNrZW5k L3N0b3JhZ2UvbG1nci9sb2NrLmMKaW5kZXggMjBlNTAyNDdlYS4uNWI1ZmI0NzRlMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYworKysgYi9zcmMvYmFja2VuZC9z dG9yYWdlL2xtZ3IvbG9jay5jCkBAIC0zNjI3LDYgKzM2MjcsMTIgQEAgR2V0TG9ja1N0YXR1c0Rh dGEodm9pZCkKIAkJCWluc3RhbmNlLT5sZWFkZXJQaWQgPSBwcm9jLT5waWQ7CiAJCQlpbnN0YW5j ZS0+ZmFzdHBhdGggPSB0cnVlOwogCisJCQkvKgorCQkJICogU3VjY2Vzc2Z1bGx5IHRha2luZyBm YXN0IHBhdGggbG9jayBtZWFucyB0aGVyZSB3ZXJlIG5vCisJCQkgKiBjb25mbGljdGluZyBsb2Nr cy4KKwkJCSAqLworCQkJaW5zdGFuY2UtPndhaXRfc3RhcnQgPSAwOworCiAJCQllbCsrOwogCQl9 CiAKQEAgLTM2NTQsNiArMzY2MCw3IEBAIEdldExvY2tTdGF0dXNEYXRhKHZvaWQpCiAJCQlpbnN0 YW5jZS0+cGlkID0gcHJvYy0+cGlkOwogCQkJaW5zdGFuY2UtPmxlYWRlclBpZCA9IHByb2MtPnBp ZDsKIAkJCWluc3RhbmNlLT5mYXN0cGF0aCA9IHRydWU7CisJCQlpbnN0YW5jZS0+d2FpdF9zdGFy dCA9IDA7CiAKIAkJCWVsKys7CiAJCX0KQEAgLTM3MDYsNiArMzcxMyw3IEBAIEdldExvY2tTdGF0 dXNEYXRhKHZvaWQpCiAJCWluc3RhbmNlLT5waWQgPSBwcm9jLT5waWQ7CiAJCWluc3RhbmNlLT5s ZWFkZXJQaWQgPSBwcm9jbG9jay0+Z3JvdXBMZWFkZXItPnBpZDsKIAkJaW5zdGFuY2UtPmZhc3Rw YXRoID0gZmFsc2U7CisJCWluc3RhbmNlLT53YWl0X3N0YXJ0ID0gcHJvYy0+d2FpdF9zdGFydDsK IAogCQllbCsrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9j LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jCmluZGV4IGM4N2ZmYzY1NDkuLjM0 MTczYTVmZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYwpAQCAtNDAyLDYgKzQwMiw3IEBAIElu aXRQcm9jZXNzKHZvaWQpCiAJTXlQcm9jLT5sd1dhaXRNb2RlID0gMDsKIAlNeVByb2MtPndhaXRM b2NrID0gTlVMTDsKIAlNeVByb2MtPndhaXRQcm9jTG9jayA9IE5VTEw7CisJTXlQcm9jLT53YWl0 X3N0YXJ0ID0gMDsKICNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCiAJewogCQlpbnQJCQlpOwpA QCAtMTI2Miw2ICsxMjYzLDggQEAgUHJvY1NsZWVwKExPQ0FMTE9DSyAqbG9jYWxsb2NrLCBMb2Nr TWV0aG9kIGxvY2tNZXRob2RUYWJsZSkKIAkJfQogCQllbHNlCiAJCQllbmFibGVfdGltZW91dF9h ZnRlcihERUFETE9DS19USU1FT1VULCBEZWFkbG9ja1RpbWVvdXQpOworCisJCU15UHJvYy0+d2Fp dF9zdGFydCA9IGdldF90aW1lb3V0X3N0YXJ0X3RpbWUoREVBRExPQ0tfVElNRU9VVCk7CiAJfQog CWVsc2UgaWYgKGxvZ19yZWNvdmVyeV9jb25mbGljdF93YWl0cykKIAl7CkBAIC0xNjc4LDYgKzE2 ODEsNyBAQCBQcm9jV2FrZXVwKFBHUFJPQyAqcHJvYywgUHJvY1dhaXRTdGF0dXMgd2FpdFN0YXR1 cykKIAlwcm9jLT53YWl0TG9jayA9IE5VTEw7CiAJcHJvYy0+d2FpdFByb2NMb2NrID0gTlVMTDsK IAlwcm9jLT53YWl0U3RhdHVzID0gd2FpdFN0YXR1czsKKwlwcm9jLT53YWl0X3N0YXJ0ID0gMDsK IAogCS8qIEFuZCBhd2FrZW4gaXQgKi8KIAlTZXRMYXRjaCgmcHJvYy0+cHJvY0xhdGNoKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9sb2NrZnVuY3MuYwppbmRleCBiMWNmNWI3OWE3Li5lMjY1OTViZDA1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbG9ja2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5jCkBAIC02Myw3ICs2Myw3IEBAIHR5cGVkZWYgc3RydWN0 CiB9IFBHX0xvY2tfU3RhdHVzOwogCiAvKiBOdW1iZXIgb2YgY29sdW1ucyBpbiBwZ19sb2NrcyBv dXRwdXQgKi8KLSNkZWZpbmUgTlVNX0xPQ0tfU1RBVFVTX0NPTFVNTlMJCTE1CisjZGVmaW5lIE5V TV9MT0NLX1NUQVRVU19DT0xVTU5TCQkxNgogCiAvKgogICogVlhJREdldERhdHVtIC0gQ29uc3Ry dWN0IGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIFZYSUQKQEAgLTE0Miw2ICsxNDIsOCBAQCBw Z19sb2NrX3N0YXR1cyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJICAgQk9PTE9JRCwgLTEsIDAp OwogCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDE1LCAiZmFzdHBh dGgiLAogCQkJCQkJICAgQk9PTE9JRCwgLTEsIDApOworCQlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpIDE2LCAid2FpdF9zdGFydCIsCisJCQkJCQkgICBUSU1FU1RBTVBU Wk9JRCwgLTEsIDApOwogCiAJCWZ1bmNjdHgtPnR1cGxlX2Rlc2MgPSBCbGVzc1R1cGxlRGVzYyh0 dXBkZXNjKTsKIApAQCAtMzM2LDYgKzMzOCwxMCBAQCBwZ19sb2NrX3N0YXR1cyhQR19GVU5DVElP Tl9BUkdTKQogCQl2YWx1ZXNbMTJdID0gQ1N0cmluZ0dldFRleHREYXR1bShHZXRMb2NrbW9kZU5h bWUoaW5zdGFuY2UtPmxvY2t0YWcubG9ja3RhZ19sb2NrbWV0aG9kaWQsIG1vZGUpKTsKIAkJdmFs dWVzWzEzXSA9IEJvb2xHZXREYXR1bShncmFudGVkKTsKIAkJdmFsdWVzWzE0XSA9IEJvb2xHZXRE YXR1bShpbnN0YW5jZS0+ZmFzdHBhdGgpOworCQlpZiAoIWdyYW50ZWQgJiYgaW5zdGFuY2UtPndh aXRfc3RhcnQgIT0gMCkKKwkJCXZhbHVlc1sxNV0gPSBUaW1lc3RhbXBUekdldERhdHVtKGluc3Rh bmNlLT53YWl0X3N0YXJ0KTsKKwkJZWxzZQorCQkJbnVsbHNbMTVdID0gdHJ1ZTsKIAogCQl0dXBs ZSA9IGhlYXBfZm9ybV90dXBsZShmdW5jY3R4LT50dXBsZV9kZXNjLCB2YWx1ZXMsIG51bGxzKTsK IAkJcmVzdWx0ID0gSGVhcFR1cGxlR2V0RGF0dW0odHVwbGUpOwpAQCAtNDA2LDYgKzQxMiw3IEBA IHBnX2xvY2tfc3RhdHVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXZhbHVlc1sxMl0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKCJTSVJlYWRMb2NrIik7CiAJCXZhbHVlc1sxM10gPSBCb29sR2V0RGF0dW0o dHJ1ZSk7CiAJCXZhbHVlc1sxNF0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOworCQludWxsc1sxNV0g PSB0cnVlOwogCiAJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKGZ1bmNjdHgtPnR1cGxlX2Rlc2Ms IHZhbHVlcywgbnVsbHMpOwogCQlyZXN1bHQgPSBIZWFwVHVwbGVHZXREYXR1bSh0dXBsZSk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBkMjczMzZhZGNkLi41Y2Q5M2M0NTg3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU5NDgsOSArNTk0OCw5IEBACiB7IG9pZCA9PiAnMTM3MScs IGRlc2NyID0+ICd2aWV3IHN5c3RlbSBsb2NrIGluZm9ybWF0aW9uJywKICAgcHJvbmFtZSA9PiAn cGdfbG9ja19zdGF0dXMnLCBwcm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKICAg cHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9 PiAnJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LG9pZCxvaWQsaW50NCxpbnQyLHRleHQs eGlkLG9pZCxvaWQsaW50Mix0ZXh0LGludDQsdGV4dCxib29sLGJvb2x9JywKLSAgcHJvYXJnbW9k ZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBwcm9hcmduYW1lcyA9 PiAne2xvY2t0eXBlLGRhdGFiYXNlLHJlbGF0aW9uLHBhZ2UsdHVwbGUsdmlydHVhbHhpZCx0cmFu c2FjdGlvbmlkLGNsYXNzaWQsb2JqaWQsb2Jqc3ViaWQsdmlydHVhbHRyYW5zYWN0aW9uLHBpZCxt b2RlLGdyYW50ZWQsZmFzdHBhdGh9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LG9pZCxv aWQsaW50NCxpbnQyLHRleHQseGlkLG9pZCxvaWQsaW50Mix0ZXh0LGludDQsdGV4dCxib29sLGJv b2wsdGltZXN0YW1wdHp9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7bG9ja3R5cGUsZGF0YWJhc2UscmVs YXRpb24scGFnZSx0dXBsZSx2aXJ0dWFseGlkLHRyYW5zYWN0aW9uaWQsY2xhc3NpZCxvYmppZCxv YmpzdWJpZCx2aXJ0dWFsdHJhbnNhY3Rpb24scGlkLG1vZGUsZ3JhbnRlZCxmYXN0cGF0aCx3YWl0 X3N0YXJ0fScsCiAgIHByb3NyYyA9PiAncGdfbG9ja19zdGF0dXMnIH0sCiB7IG9pZCA9PiAnMjU2 MScsCiAgIGRlc2NyID0+ICdnZXQgYXJyYXkgb2YgUElEcyBvZiBzZXNzaW9ucyBibG9ja2luZyBz cGVjaWZpZWQgYmFja2VuZCBQSUQgZnJvbSBhY3F1aXJpbmcgYSBoZWF2eXdlaWdodCBsb2NrJywK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvbG9jay5oIGIvc3JjL2luY2x1ZGUvc3Rv cmFnZS9sb2NrLmgKaW5kZXggMmU2ZWYxNzRlOS4uZTM3YjdhNjZlOSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvc3RvcmFnZS9sb2NrLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9sb2NrLmgK QEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xvY2tkZWZzLmgiCiAjaW5jbHVk ZSAic3RvcmFnZS9sd2xvY2suaCIKICNpbmNsdWRlICJzdG9yYWdlL3NobWVtLmgiCisjaW5jbHVk ZSAidXRpbHMvdGltZXN0YW1wLmgiCiAKIC8qIHN0cnVjdCBQR1BST0MgaXMgZGVjbGFyZWQgaW4g cHJvYy5oLCBidXQgbXVzdCBmb3J3YXJkLXJlZmVyZW5jZSBpdCAqLwogdHlwZWRlZiBzdHJ1Y3Qg UEdQUk9DIFBHUFJPQzsKQEAgLTQ0NSw2ICs0NDYsNyBAQCB0eXBlZGVmIHN0cnVjdCBMb2NrSW5z dGFuY2VEYXRhCiAJTE9DS01PREUJd2FpdExvY2tNb2RlOwkvKiBsb2NrIGF3YWl0ZWQgYnkgdGhp cyBQR1BST0MsIGlmIGFueSAqLwogCUJhY2tlbmRJZAliYWNrZW5kOwkJLyogYmFja2VuZCBJRCBv ZiB0aGlzIFBHUFJPQyAqLwogCUxvY2FsVHJhbnNhY3Rpb25JZCBseGlkOwkvKiBsb2NhbCB0cmFu c2FjdGlvbiBJRCBvZiB0aGlzIFBHUFJPQyAqLworCVRpbWVzdGFtcFR6CXdhaXRfc3RhcnQ7CQkv KiB0aW1lIGF0IHdoaWNoIHRoaXMgUEdQUk9DIHN0YXJ0ZWQgd2FpdGluZyBmb3IgbG9jayAqLwog CWludAkJCXBpZDsJCQkvKiBwaWQgb2YgdGhpcyBQR1BST0MgKi8KIAlpbnQJCQlsZWFkZXJQaWQ7 CQkvKiBwaWQgb2YgZ3JvdXAgbGVhZGVyOyA9IHBpZCBpZiBubyBncm91cCAqLwogCWJvb2wJCWZh c3RwYXRoOwkJLyogdGFrZW4gdmlhIGZhc3RwYXRoPyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvc3RvcmFnZS9wcm9jLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaAppbmRleCA2ODNh YjY0Zjc2Li5kZmJjMzQxNjNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2Mu aAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaApAQCAtMTgxLDYgKzE4MSw3IEBAIHN0 cnVjdCBQR1BST0MKIAlMT0NLTU9ERQl3YWl0TG9ja01vZGU7CS8qIHR5cGUgb2YgbG9jayB3ZSdy ZSB3YWl0aW5nIGZvciAqLwogCUxPQ0tNQVNLCWhlbGRMb2NrczsJCS8qIGJpdG1hc2sgZm9yIGxv Y2sgdHlwZXMgYWxyZWFkeSBoZWxkIG9uIHRoaXMKIAkJCQkJCQkJICogbG9jayBvYmplY3QgYnkg dGhpcyBiYWNrZW5kICovCisJVGltZXN0YW1wVHoJd2FpdF9zdGFydDsJCS8qIHRpbWUgYXQgd2hp Y2ggd2FpdCBmb3IgbG9jayBhY3F1aXNpdGlvbiBzdGFydGVkICovCiAKIAlib29sCQlkZWxheUNo a3B0OwkJLyogdHJ1ZSBpZiB0aGlzIHByb2MgZGVsYXlzIGNoZWNrcG9pbnQgc3RhcnQgKi8KIApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBhNjg3ZTk5ZDFlLi44Y2NjODU5ODgy IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTM5NCw4ICsxMzk0LDkgQEAg cGdfbG9ja3N8IFNFTEVDVCBsLmxvY2t0eXBlLAogICAgIGwucGlkLAogICAgIGwubW9kZSwKICAg ICBsLmdyYW50ZWQsCi0gICAgbC5mYXN0cGF0aAotICAgRlJPTSBwZ19sb2NrX3N0YXR1cygpIGwo bG9ja3R5cGUsIGRhdGFiYXNlLCByZWxhdGlvbiwgcGFnZSwgdHVwbGUsIHZpcnR1YWx4aWQsIHRy YW5zYWN0aW9uaWQsIGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCwgdmlydHVhbHRyYW5zYWN0aW9u LCBwaWQsIG1vZGUsIGdyYW50ZWQsIGZhc3RwYXRoKTsKKyAgICBsLmZhc3RwYXRoLAorICAgIGwu d2FpdF9zdGFydAorICAgRlJPTSBwZ19sb2NrX3N0YXR1cygpIGwobG9ja3R5cGUsIGRhdGFiYXNl LCByZWxhdGlvbiwgcGFnZSwgdHVwbGUsIHZpcnR1YWx4aWQsIHRyYW5zYWN0aW9uaWQsIGNsYXNz aWQsIG9iamlkLCBvYmpzdWJpZCwgdmlydHVhbHRyYW5zYWN0aW9uLCBwaWQsIG1vZGUsIGdyYW50 ZWQsIGZhc3RwYXRoLCB3YWl0X3N0YXJ0KTsKIHBnX21hdHZpZXdzfCBTRUxFQ1Qgbi5uc3BuYW1l IEFTIHNjaGVtYW5hbWUsCiAgICAgYy5yZWxuYW1lIEFTIG1hdHZpZXduYW1lLAogICAgIHBnX2dl dF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBtYXR2aWV3b3duZXIsCi0tIAoyLjE4LjEKCg== --=_a14ca8dfc6a84ed9f926567b2837d502--