Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x14rK-004y4u-0B for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Aug 2026 16:27:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1x14rJ-001I6m-02 for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Aug 2026 16:27:45 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x14rI-001I6e-1o for pgsql-hackers@lists.postgresql.org; Mon, 31 Aug 2026 16:27:44 +0000 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1x14rF-00000002DrW-42MN for pgsql-hackers@lists.postgresql.org; Mon, 31 Aug 2026 16:27:43 +0000 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-39ca300db70so25318381fa.2 for ; Mon, 31 Aug 2026 09:27:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788193660; x=1788798460; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:content-type:from:to:cc :subject:date:message-id:reply-to:content-type; bh=HnupQNJqDI/1Aq8fIq6QWi1vxPhEcy68bI1t2WNlNEw=; b=eu+R4Hz4Xbdy7bFhN2MgUPVDJ0LYrAT7Vb41tWRccBbNgIfg1N2kwAJKRZsRJXKhSY IcdtMMZqejqOBhesybQygnVxksg0CiPIdC7jTzC18BroERxM9N43FZZ9exDrAycB1qhA YEtegmXsARFsAQ6M8/+0CaDc0G+CmkOYhs65RS5Q8B9ZWi/AqMtIlwXSseEdPncKKc2K +5JEddOyLVCVAw5igy/HnMuVYFjrPHEKYvVK9oWWLMY9CO1Z327sWBo+/VYssesnjhPJ l/+uQQXb4axYh4B8XTxQcj9hFcFWTFlno/LeVTIN1sG0MGD+lN8UsKLXp7bN0KqNMnvU uHYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788193660; x=1788798460; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=HnupQNJqDI/1Aq8fIq6QWi1vxPhEcy68bI1t2WNlNEw=; b=cOq9MjI+wpCJxp2/XDHrGrs1iZfY/mUtTHI5YG87MkztG9nCh0fd+xouU1gnccjrX/ H6hVcJ9mLGGxxUTF4rIjq2JPEfEYfotYJwiUTVRmdAzkH4yRIOVyXlHKqcFrGiqoAFzb XDNHH4u7sFjcV7zvRJtRWc4bZIe4FypbOchSHUpV2xGaTtXM1AOl396XwbEUqIzzi0V0 65MTVq0ShQshaMhirsHlNw4WGNyiet1U2GRweZnUoozr2uUa2hbJPJunY11o2quZrCa5 U/8tKzvM0U6emwbsF2ajqTbSsHrtkVHRQO50MeKfyiuz+7N9svnGRyTBAndQsEhtXa4B tyqw== X-Gm-Message-State: AFuF++n5hZm1VpvR9j8rx/ZgV4CcA8MfKbpPqReX0KeS+8smdyUrca89 bAF+WSfUiDJ1Cpog7qB1utvF+CHb0Qr0WvhbsS5mWaMB+sOeTQernFnv X-Gm-Gg: AYBFou01n6LJPTnAmXbMqGpl1Ff0B0hHvyp6xVoF9h7AiM7XbN5miviLo+yTLS8cfoK UzZ228s7Aw4EEAXJmHPL8dlNPFIKtOz/ukrfb5KiKu2+qojUAxCLX8Crr0Sx+6LMilLQNxbAP7o 9zR+cW7kroTwOvi/jD2ioKFzppJ0OiPWKp9kz6N92lEi32a0tz7NJj7cQVIT00Cp0C7Bb0rmAja FAFYtidoNx5s6/fCr4N9PFi0k9bOw2UoRRjZNcneBiFwJQAEZIMOfeAI2SpOpFcbcLkNG/JYnoz 7X9bGNpZBmmBnia6MNOOLrLlgyD7A52AbMQtqL6grjHLbx0gXxvBa81M9MMmji6GHFQcQ48Q6pD +7sno/7N43ePU66oKcEfXYnJ7owXbPZH/RRSyPSs84WBSO5DByjzJ8x0qtkaMSD8bglVEFuifHz 2k5m1X4vbQusVpZ0LG32ZFc8QQv2A+MY5Ac9XSLohV2SkKYUsn6yaK1auvnOc3zFhnGir43Lo= X-Received: by 2002:a05:651c:a38a:10b0:396:7e66:45ba with SMTP id 38308e7fff4ca-3a301ac2785mr40697891fa.8.1788193659368; Mon, 31 Aug 2026 09:27:39 -0700 (PDT) Received: from [192.168.23.224] ([46.31.30.25]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a305386b60sm18317941fa.7.2026.08.31.09.27.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 31 Aug 2026 09:27:38 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------5eqqOq5ETSe0ftqupKbkjiCP" Message-ID: Date: Mon, 31 Aug 2026 19:27:37 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Deadlock detector fails to activate on a hot standby replica From: Vitaly Davydov To: JoongHyuk Shin , Xuneng Zhou Cc: pgsql-hackers@lists.postgresql.org, Fujii Masao References: <44c24dcf-5710-410f-b1b6-d10b315f3d51@postgrespro.ru> <7b1e8353-3d0a-48a1-bac6-2ac6ca91fbde@postgrespro.ru> <5c50d50c-5a9c-4a9e-9592-183cf4de1c80@postgrespro.ru> <52971629-dcda-4687-90c8-bbba3ce05636@postgrespro.ru> <7e4f2244-4fd8-4f30-9f61-d1087e4b3292@gmail.com> Content-Language: en-US In-Reply-To: <7e4f2244-4fd8-4f30-9f61-d1087e4b3292@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------5eqqOq5ETSe0ftqupKbkjiCP Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sorry for missed patches. Attached now. On 8/31/26 19:18, Vitaly Davydov wrote: > Hi JH Shin, > > > I think PinCountWaiterCheckReadyForCleanup() has a window between > > checking the refcount and setting BM_PIN_COUNT_WAITER. On the master > > branch, UnpinBufferNoOwner() drops pins without taking the header > > lock, so the last other pin can go away in that window and the > > wakeup is lost until the deadlock or standby-limit timeout fires. > > This looks like the same race that commit 8d85cb889a3 fixed in > > LockBufferForCleanup(), and the same fix should work here. After > > publishing the flag, recheck the refcount, and if only our own pin > > remains, clear the flag and return true. > > Agree, thank you. > > I made new changes in two commits. In the first commit coming from v7 > patch > I modified RegisterPinCountWaiter() function to recheck the refcount as > explained by you. In the second commit I've replaced the duplicate > code in > LockBufferForCleanup to register pincount waiter with the call of > RegisterPinCountWaiter(). The second commit is optional but it fits > well with > the current changes. > > The patch was rebased to the actual master branch. > > P.S. I replaced my old address v.davydov@postgrespro.ru in commits with > my personal email vitprof@gmail.com that suits better for me. With best regards, Vitaly Davydov vitprof@gmail.com (aka v.davydov@postgrespro.ru) vitcpp@mail.ru --------------5eqqOq5ETSe0ftqupKbkjiCP Content-Type: text/x-patch; charset=UTF-8; name="v8-0001-Fix-recovery-conflict-wait-loop-for-buffer-pins-o.patch" Content-Disposition: attachment; filename*0="v8-0001-Fix-recovery-conflict-wait-loop-for-buffer-pins-o.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxNjc0MTVjMmJjN2YyNzkyZTJhMjM1Nzk4NWMyMDA3ZjFkMmM0MjY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWaXRhbHkgRGF2eWRvdiA8dml0cHJvZkBnbWFpbC5j b20+CkRhdGU6IE1vbiwgMzEgQXVnIDIwMjYgMTg6Mzg6MTUgKzAzMDAKU3ViamVjdDogW1BB VENIIHY4IDEvMl0gRml4IHJlY292ZXJ5LWNvbmZsaWN0IHdhaXQgbG9vcCBmb3IgYnVmZmVy IHBpbnMgb24gaG90CiBzdGFuZGJ5CgpXaGVuIHRoZSBzdGFydHVwIHByb2Nlc3Mgd2FpdHMg b24gYSBidWZmZXIgcGluIGR1cmluZyByZWNvdmVyeSwgdGhlCmJ1ZmZlci1waW4gd2FpdCBj b2RlIHRyZWF0cyBhbnkgbGF0Y2ggd2FrZXVwIGFzIGEgcmVsZXZhbnQgZXZlbnQsCnJlc2V0 dGluZyBhbGwgdGltZW91dHMgYW5kIHJldHJ5aW5nLiBPbiBob3Qgc3RhbmRieSwgcGVyaW9k aWMgU0lHQUxSTQpzaWduYWxzIGZyb20gdW5yZWxhdGVkIHRpbWVycyAoc3VjaCBhcyBwcm9n cmVzcyByZXBvcnRpbmcpIGNhbiBhcnJpdmUKYmVmb3JlIHRoZSBkZWFkbG9jayB0aW1lb3V0 IGV4cGlyZXMsIGNhdXNpbmcgdGhlIHdhaXQgbG9vcCB0byByZXNldAppbmRlZmluaXRlbHkg d2l0aG91dCBldmVyIHRyaWdnZXJpbmcgdGhlIGRlYWRsb2NrIGRldGVjdG9yLiBUaGlzIHJl c3VsdHMKaW4gYW4gaW5maW5pdGUgbG9vcCBpbiBMb2NrQnVmZmVyRm9yQ2xlYW51cCBhbmQg c3RhbGxzIHJlY292ZXJ5CmluZGVmaW5pdGVseSwgcGFydGljdWxhcmx5IHdoZW4gbWF4X3N0 YW5kYnlfc3RyZWFtaW5nX2RlbGF5ID0gLTEuCi0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9i dWZmZXIvYnVmbWdyLmMgfCAxMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jICAgfCAgODQgKysrKysrKysrKysrKysr LS0tLS0tLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9idWZtZ3IuaCAgICAgICAgfCAgIDEgKwog MyBmaWxlcyBjaGFuZ2VkLCAxNjUgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgYi9zcmMv YmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwppbmRleCAxN2YxNDJlNGM1Yi4uNjg2 MjY1YzNkNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1n ci5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCkBAIC0zNDY5 LDYgKzM0NjksNTQgQEAgV2FrZVBpbkNvdW50V2FpdGVyKEJ1ZmZlckRlc2MgKmJ1ZikKIAkJ VW5sb2NrQnVmSGRyKGJ1Zik7CiB9CiAKKy8qCisgKiBSZWdpc3RlciB0aGUgY3VycmVudCBw cm9jZXNzIGFzIHRoZSBwaW5jb3VudCB3YWl0ZXIgZm9yIGEgc2hhcmVkIGJ1ZmZlcgorICog YW5kIHVubG9jayB0aGUgYnVmZmVyIGhlYWRlci4gUmV0dXJuIHRydWUgaWYgdGhlIHByb2Nl c3Mgd2FzIHJlZ2lzdGVyZWQgYXMKKyAqIHRoZSBwaW5jb3VudCB3YWl0ZXIgYW5kIG11c3Qg bm93IHdhaXQgdG8gYmUgc2lnbmFsZWQsIG9yIGZhbHNlIGlmIHRoZQorICogc2hhcmVkIHJl ZmNvdW50IHdhcyBjb25jdXJyZW50bHkgcmVkdWNlZCB0byAxIChvbmx5IG91ciBvd24gcGlu IHJlbWFpbnMpLAorICogaW4gd2hpY2ggY2FzZSBubyB3YWl0IGlzIG5lY2Vzc2FyeS4KKyAq CisgKiBUaGUgY2FsbGVyIG11c3QgaG9sZCB0aGUgYnVmZmVyIGhlYWRlciBsb2NrLCBwYXNz IHRoZSBjdXJyZW50IGJ1ZmZlciBzdGF0ZQorICogcmV0dXJuZWQgYnkgTG9ja0J1Zkhkcigp LCBhbmQgZW5zdXJlIHRoYXQgbm8gb3RoZXIgYmFja2VuZCBpcyBhbHJlYWR5CisgKiByZWdp c3RlcmVkIGFzIHRoZSB3YWl0ZXIuCisgKi8KK3N0YXRpYyBib29sCitSZWdpc3RlclBpbkNv dW50V2FpdGVyKEJ1ZmZlckRlc2MgKmJ1ZkhkciwgdWludDY0IGJ1Zl9zdGF0ZSkKK3sKKwlB c3NlcnQoKGJ1Zl9zdGF0ZSAmIEJNX1BJTl9DT1VOVF9XQUlURVIpID09IDAgfHwKKwkJICAg YnVmSGRyLT53YWl0X2JhY2tlbmRfcGdwcm9jbm8gPT0gTXlQcm9jTnVtYmVyKTsKKworCWJ1 Zkhkci0+d2FpdF9iYWNrZW5kX3BncHJvY25vID0gTXlQcm9jTnVtYmVyOworCVBpbkNvdW50 V2FpdEJ1ZiA9IGJ1ZkhkcjsKKworCS8qCisJICogUHVibGlzaCBCTV9QSU5fQ09VTlRfV0FJ VEVSIHdoaWxlIHJldGFpbmluZyB0aGUgYnVmZmVyIGhlYWRlciBsb2NrLgorCSAqIFRoZSBz aGFyZWQgcmVmY291bnQgY2FuIGJlIGRlY3JlbWVudGVkIHdoaWxlIEJNX0xPQ0tFRCBpcyBz ZXQsIHNvCisJICogdXNlIGFuIGF0b21pYyBvcGVyYXRpb24gdGhhdCBwcmVzZXJ2ZXMgY29u Y3VycmVudCByZWZjb3VudCBjaGFuZ2VzLgorCSAqLworCXBnX2F0b21pY19mZXRjaF9vcl91 NjQoJmJ1Zkhkci0+c3RhdGUsIEJNX1BJTl9DT1VOVF9XQUlURVIpOworCisJLyoKKwkgKiBS ZWNoZWNrIHRoZSByZWZjb3VudCBhZnRlciBwdWJsaXNoaW5nIHRoZSB3YWl0ZXIgZmxhZywg d2hpbGUgc2hhcmVkCisJICogcmVmY291bnQgaW5jcmVtZW50cyBhcmUgc3RpbGwgcHJldmVu dGVkIGJ5IEJNX0xPQ0tFRC4gIElmIG9ubHkgb3VyCisJICogcGluIHJlbWFpbnMsIHRoZSBj bGVhbnVwLWxvY2sgY29uZGl0aW9uIGhhcyBhbHJlYWR5IGJlZW4gc2F0aXNmaWVkLAorCSAq IHNvIHJlbW92ZSB0aGUgd2FpdGVyIHN0YXRlIGFuZCByZXR1cm4gd2l0aG91dCBzbGVlcGlu Zy4KKwkgKi8KKwlidWZfc3RhdGUgPSBwZ19hdG9taWNfcmVhZF91NjQoJmJ1Zkhkci0+c3Rh dGUpOworCWlmIChCVUZfU1RBVEVfR0VUX1JFRkNPVU5UKGJ1Zl9zdGF0ZSkgPT0gMSkKKwl7 CisJCVVubG9ja0J1ZkhkckV4dChidWZIZHIsIGJ1Zl9zdGF0ZSwKKwkJCQkJCTAsIEJNX1BJ Tl9DT1VOVF9XQUlURVIsCisJCQkJCQkwKTsKKwkJUGluQ291bnRXYWl0QnVmID0gTlVMTDsK KwkJcmV0dXJuIGZhbHNlOworCX0KKworCVVubG9ja0J1ZkhkcihidWZIZHIpOworCisJcmV0 dXJuIHRydWU7Cit9CisKIC8qCiAgKiBVbnBpbkJ1ZmZlciAtLSBtYWtlIGJ1ZmZlciBhdmFp bGFibGUgZm9yIHJlcGxhY2VtZW50LgogICoKQEAgLTQ3NjMsNiArNDgxMSw2NCBAQCBCdWZm ZXJHZXRMU05BdG9taWMoQnVmZmVyIGJ1ZmZlcikKICNlbmRpZgogfQogCisvKgorICogUGlu Q291bnRXYWl0ZXJDaGVja1JlYWR5Rm9yQ2xlYW51cAorICoJCVJlY2hlY2sgd2hldGhlciBw aW4gY291bnQgd2FpdGVyIHByb2Nlc3MgKHRoZSBzdGFydHVwIHByb2Nlc3MpCisgKgkJY2Fu IHJldHJ5IGNsZWFudXAgbG9jayBhY3F1aXNpdGlvbi4KKyAqCisgKiBUaGlzIGlzIG9ubHkg Zm9yIHRoZSBob3Qtc3RhbmRieSBwYXRoIGluIExvY2tCdWZmZXJGb3JDbGVhbnVwKCksIHZp YQorICogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoQnVmZmVyUGluKCksIGFmdGVyIFBy b2NXYWl0Rm9yU2lnbmFsKCkgcmV0dXJucy4KKyAqIFRoZSBjYWxsZXIgbXVzdCBhbHJlYWR5 IGJlIHJlZ2lzdGVyZWQgYXMgdGhlIHNoYXJlZCBidWZmZXIncworICogQk1fUElOX0NPVU5U X1dBSVRFUi4KKyAqCisgKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgY2FsbGVyIGl0c2VsZiBp cyB0aGUgb25seSByZW1haW5pbmcgcGluIGhvbGRlciwgc28gaXQKKyAqIGNhbiByZXRyeSB0 YWtpbmcgdGhlIGNsZWFudXAgbG9jay4gUmV0dXJucyBmYWxzZSBpZiBvdGhlciBiYWNrZW5k cyBzdGlsbAorICogcGluIHRoZSBzaGFyZWQgYnVmZmVyLiBJbiB0aGF0IGNhc2UsIHRoaXMg ZnVuY3Rpb24gZ3VhcmFudGVlcyB0aGF0IHRoZQorICogY3VycmVudCBiYWNrZW5kIHJlbWFp bnMgcmVnaXN0ZXJlZCBhcyB0aGUgcGluY291bnQgd2FpdGVyIHRvIGJlIHdva2VuIHdoZW4K KyAqIHRoZSBidWZmZXIgcmVmY291bnQgZHJvcHMgdG8gMS4KKyAqLworYm9vbAorUGluQ291 bnRXYWl0ZXJDaGVja1JlYWR5Rm9yQ2xlYW51cChCdWZmZXIgYnVmZmVyKQoreworCUJ1ZmZl ckRlc2MgKmJ1ZkhkcjsKKwl1aW50NjQJCWJ1Zl9zdGF0ZTsKKwl1aW50MzIJCWJ1Zl9yZWZj b3VudDsKKworCUFzc2VydChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpOworCUFzc2VydCghQnVm ZmVySXNMb2NhbChidWZmZXIpKTsKKworCWJ1ZkhkciA9IEdldEJ1ZmZlckRlc2NyaXB0b3Io YnVmZmVyIC0gMSk7CisJQXNzZXJ0KFBpbkNvdW50V2FpdEJ1ZiA9PSBidWZIZHIpOworCisJ YnVmX3N0YXRlID0gTG9ja0J1ZkhkcihidWZIZHIpOworCWJ1Zl9yZWZjb3VudCA9IEJVRl9T VEFURV9HRVRfUkVGQ09VTlQoYnVmX3N0YXRlKTsKKworCWlmIChidWZfcmVmY291bnQgPT0g MSkKKwl7CisJCVVubG9ja0J1ZkhkcihidWZIZHIpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisK KwlpZiAoKGJ1Zl9zdGF0ZSAmIEJNX1BJTl9DT1VOVF9XQUlURVIpICE9IDAgJiYKKwkJYnVm SGRyLT53YWl0X2JhY2tlbmRfcGdwcm9jbm8gIT0gTXlQcm9jTnVtYmVyKQorCXsKKwkJVW5s b2NrQnVmSGRyKGJ1Zkhkcik7CisJCWVsb2coRVJST1IsICJtdWx0aXBsZSBwcm9jZXNzZXMg YXR0ZW1wdGluZyB0byB3YWl0IGZvciBwaW5jb3VudCAxIik7CisJfQorCisJLyoKKwkgKiBJ ZiBvdGhlciBwcm9jZXNzZXMgc3RpbGwgcGluIHRoZSBidWZmZXIsIHJlZ2lzdGVyIHRoaXMg cHJvY2VzcyBhZ2FpbiBhcworCSAqIHRoZSBwaW5jb3VudCB3YWl0ZXIgdG8gd2FpdCBhZ2Fp bi4gVGhlIHJlZmNvdW50IG1heSBiZSBjb25jdXJyZW50bHkKKwkgKiByZWR1Y2VkIHRvIDEg ZGVzcGl0ZSBvdXIgaG9sZGluZyB0aGUgYnVmZmVyIGhlYWRlciBsb2NrLCBpbiB3aGljaCBj YXNlCisJICogUmVnaXN0ZXJQaW5Db3VudFdhaXRlcigpIHJldHVybnMgZmFsc2UgYW5kIHRo ZSBidWZmZXIgaXMgcmVhZHkgZm9yCisJICogY2xlYW51cC4KKwkgKi8KKwlpZiAoIVJlZ2lz dGVyUGluQ291bnRXYWl0ZXIoYnVmSGRyLCBidWZfc3RhdGUpKQorCQlyZXR1cm4gdHJ1ZTsK KworCXJldHVybiBmYWxzZTsKK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJRHJvcFJl bGF0aW9uQnVmZmVycwogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwppbmRleCA3 ZjAxMWUwNDk5MC4uMDQ0Mjg0YjdiYTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvaXBjL3N0YW5kYnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5 LmMKQEAgLTc5MCwyMiArNzkwLDM2IEBAIGNsZWFudXA6CiAgKiBEZWFkbG9ja3MgYXJlIGV4 dHJlbWVseSByYXJlLCBhbmQgcmVsYXRpdmVseSBleHBlbnNpdmUgdG8gY2hlY2sgZm9yLAog ICogc28gd2UgZG9uJ3QgZG8gYSBkZWFkbG9jayBjaGVjayByaWdodCBhd2F5IC4uLiBvbmx5 IGlmIHdlIGhhdmUgaGFkIHRvIHdhaXQKICAqIGF0IGxlYXN0IGRlYWRsb2NrX3RpbWVvdXQu CisgKgorICogVGhlIGN1cnJlbnQgcHJvY2VzcyBzaG91bGQgYmUgdGhlIHdhaXRlciBwcm9j ZXNzIGFuZCBzaG91bGQgaGF2ZQorICogcHVibGlzaGVkIHRoZSB3YWl0ZWQgYnVmZmVyIHZp YSBTZXRTdGFydHVwQnVmZmVyUGluV2FpdEJ1ZklkKCkuCiAgKi8KIHZvaWQKIFJlc29sdmVS ZWNvdmVyeUNvbmZsaWN0V2l0aEJ1ZmZlclBpbih2b2lkKQogewogCVRpbWVzdGFtcFR6IGx0 aW1lOworCWludAkJCWJ1ZmlkOwogCiAJQXNzZXJ0KEluSG90U3RhbmRieSk7CiAKKwlidWZp ZCA9IEdldFN0YXJ0dXBCdWZmZXJQaW5XYWl0QnVmSWQoKTsKKwlBc3NlcnQoYnVmaWQgPj0g MCk7CisKIAlsdGltZSA9IEdldFN0YW5kYnlMaW1pdFRpbWUoKTsKIAotCWlmIChHZXRDdXJy ZW50VGltZXN0YW1wKCkgPj0gbHRpbWUgJiYgbHRpbWUgIT0gMCkKKwlpZiAobHRpbWUgIT0g MCAmJiBHZXRDdXJyZW50VGltZXN0YW1wKCkgPj0gbHRpbWUpCiAJewogCQkvKgogCQkgKiBX ZSdyZSBhbHJlYWR5IGJlaGluZCwgc28gY2xlYXIgYSBwYXRoIGFzIHF1aWNrbHkgYXMgcG9z c2libGUuCiAJCSAqLwogCQlTZW5kUmVjb3ZlcnlDb25mbGljdFdpdGhCdWZmZXJQaW4oUkVD T1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElOKTsKKworCQkvKgorCQkgKiBTZXQgZGVsYXkgdGlt ZW91dCBmbGFnIG9uY2UgdGhlIHRpbWVvdXQgaXMgcmVhY2hlZCAodGhlIGN1cnJlbnQKKwkJ ICogdGltZXN0YW1wIGlzIGdyZWF0ZXIgdGhhbiB0aGUgc3RhbmRieSBsaW1pdCB0aW1lKS4g VGhpcyB2YXJpYWJsZSBpcworCQkgKiB1c2UgYnkgdGltZW91dCBoYW5kbGVycyB3aXRoIHRo ZSBzYW1lIHB1cnBvc2UuCisJCSAqLworCQlnb3Rfc3RhbmRieV9kZWxheV90aW1lb3V0ID0g dHJ1ZTsKIAl9CiAJZWxzZQogCXsKQEAgLTgzMywzNSArODQ3LDUzIEBAIFJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aEJ1ZmZlclBpbih2b2lkKQogCQllbmFibGVfdGltZW91dHModGlt ZW91dHMsIGNudCk7CiAJfQogCi0JLyoKLQkgKiBXYWl0IHRvIGJlIHNpZ25hbGVkIGJ5IFVu cGluQnVmZmVyKCkgb3IgZm9yIHRoZSB3YWl0IHRvIGJlIGludGVycnVwdGVkCi0JICogYnkg b25lIG9mIHRoZSB0aW1lb3V0cyBlc3RhYmxpc2hlZCBhYm92ZS4KLQkgKgotCSAqIFdlIGFz c3VtZSB0aGF0IG9ubHkgVW5waW5CdWZmZXIoKSBhbmQgdGhlIHRpbWVvdXQgcmVxdWVzdHMg ZXN0YWJsaXNoZWQKLQkgKiBhYm92ZSBjYW4gd2FrZSB1cyB1cCBoZXJlLiBXYWtldXBSZWNv dmVyeSgpIGNhbGxlZCBieSB3YWxyZWNlaXZlciBvcgotCSAqIFNJR0hVUCBzaWduYWwgaGFu ZGxlciwgZXRjIGNhbm5vdCBkbyB0aGF0IGJlY2F1c2UgaXQgdXNlcyB0aGUgZGlmZmVyZW50 Ci0JICogbGF0Y2ggZnJvbSB0aGF0IFByb2NXYWl0Rm9yU2lnbmFsKCkgd2FpdHMgb24uCi0J ICovCi0JUHJvY1dhaXRGb3JTaWduYWwoV0FJVF9FVkVOVF9CVUZGRVJfQ0xFQU5VUCk7Ci0K LQlpZiAoZ290X3N0YW5kYnlfZGVsYXlfdGltZW91dCkKLQkJU2VuZFJlY292ZXJ5Q29uZmxp Y3RXaXRoQnVmZmVyUGluKFJFQ09WRVJZX0NPTkZMSUNUX0JVRkZFUlBJTik7Ci0JZWxzZSBp ZiAoZ290X3N0YW5kYnlfZGVhZGxvY2tfdGltZW91dCkKKwlmb3IgKDs7KQogCXsKIAkJLyoK LQkJICogU2VuZCBvdXQgYSByZXF1ZXN0IGZvciBob3Qtc3RhbmRieSBiYWNrZW5kcyB0byBj aGVjayB0aGVtc2VsdmVzIGZvcgotCQkgKiBkZWFkbG9ja3MuCisJCSAqIFdhaXQgdG8gYmUg c2lnbmFsZWQgYnkgVW5waW5CdWZmZXIoKSBvciBmb3IgdGhlIHdhaXQgdG8gYmUKKwkJICog aW50ZXJydXB0ZWQgYnkgb25lIG9mIHRoZSB0aW1lb3V0cyBlc3RhYmxpc2hlZCBhYm92ZS4K IAkJICoKLQkJICogWFhYIFRoZSBzdWJzZXF1ZW50IFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0 V2l0aEJ1ZmZlclBpbigpIHdpbGwgd2FpdAotCQkgKiB0byBiZSBzaWduYWxlZCBieSBVbnBp bkJ1ZmZlcigpIGFnYWluIGFuZCBzZW5kIGEgcmVxdWVzdCBmb3IKLQkJICogZGVhZGxvY2tz IGNoZWNrIGlmIGRlYWRsb2NrX3RpbWVvdXQgaGFwcGVucy4gVGhpcyBjYXVzZXMgdGhlCi0J CSAqIHJlcXVlc3QgdG8gY29udGludWUgdG8gYmUgc2VudCBldmVyeSBkZWFkbG9ja190aW1l b3V0IHVudGlsIHRoZQotCQkgKiBidWZmZXIgaXMgdW5waW5uZWQgb3IgbHRpbWUgaXMgcmVh Y2hlZC4gVGhpcyB3b3VsZCBpbmNyZWFzZSB0aGUKLQkJICogd29ya2xvYWQgaW4gdGhlIHN0 YXJ0dXAgcHJvY2VzcyBhbmQgYmFja2VuZHMuIEluIHByYWN0aWNlIGl0IG1heQotCQkgKiBu b3QgYmUgc28gaGFybWZ1bCBiZWNhdXNlIHRoZSBwZXJpb2QgdGhhdCB0aGUgYnVmZmVyIGlz IGtlcHQgcGlubmVkCi0JCSAqIGlzIGJhc2ljYWxseSBubyBzbyBsb25nLiBCdXQgd2Ugc2hv dWxkIGZpeCB0aGlzPworCQkgKiBQcm9jV2FpdEZvclNpZ25hbCgpIGNhbiBhbHNvIHdha2Ug dXAgZm9yIHVucmVsYXRlZCByZWFzb25zLCBzbworCQkgKiByZWNoZWNrIGxhdGVyIHdoZXRo ZXIgY2xlYW51cCBjYW4gcHJvY2VlZC4KIAkJICovCi0JCVNlbmRSZWNvdmVyeUNvbmZsaWN0 V2l0aEJ1ZmZlclBpbihSRUNPVkVSWV9DT05GTElDVF9CVUZGRVJQSU5fREVBRExPQ0spOwor CQlQcm9jV2FpdEZvclNpZ25hbChXQUlUX0VWRU5UX0JVRkZFUl9DTEVBTlVQKTsKKworCQkv KgorCQkgKiBPbmNlIHRoZSByZWZlcmVuY2UgY291bnQgaXMgMSwgdGhlIHdhaXRlciBwcm9j ZXNzIGl0c2VsZiBpcyB0aGUKKwkJICogb25seSBiYWNrZW5kIHBpbm5pbmcgdGhlIGJ1ZmZl ciBhdCB0aGUgbW9tZW50LiBUaGVyZSBpcyBhIGNoYW5jZSB0bworCQkgKiBsb2NrIHRoZSBi dWZmZXIgZXhjbHVzaXZlbHkuCisJCSAqLworCQlpZiAoUGluQ291bnRXYWl0ZXJDaGVja1Jl YWR5Rm9yQ2xlYW51cChidWZpZCArIDEpKQorCQkJYnJlYWs7CisKKwkJLyoKKwkJICogU2Vu ZCB0aGUgcmVjb3ZlcnkgY29uZmxpY3QgaWYgdGhlIHN0YW5kYnkgZGVsYXkgdGltZW91dCBp cyBhY3RpdmF0ZWQgb3IKKwkJICogc3RhbmRieSBsaW1pdCB0aW1lIHdhcyBhbHJlYWR5IHJl YWNoZWQuIFRoZSBzZWNvbmQgY29uZGl0aW9uIGhhbmRsZXMgdGhlCisJCSAqIGZhc3QgcGF0 aCB3aGVuIHRpbWVvdXRzIGFyZSBub3QgYWN0aXZhdGVkLgorCQkgKi8KKwkJaWYgKGdvdF9z dGFuZGJ5X2RlbGF5X3RpbWVvdXQpCisJCXsKKwkJCVNlbmRSZWNvdmVyeUNvbmZsaWN0V2l0 aEJ1ZmZlclBpbihSRUNPVkVSWV9DT05GTElDVF9CVUZGRVJQSU4pOworCQkJYnJlYWs7CisJ CX0KKwkJZWxzZSBpZiAoZ290X3N0YW5kYnlfZGVhZGxvY2tfdGltZW91dCkKKwkJeworCQkJ LyoKKwkJCSAqIFNlbmQgb3V0IGEgcmVxdWVzdCBmb3IgaG90LXN0YW5kYnkgYmFja2VuZHMg dG8gY2hlY2sgdGhlbXNlbHZlcworCQkJICogZm9yIGRlYWRsb2Nrcy4KKwkJCSAqCisJCQkg KiBYWFggVGhlIHN1YnNlcXVlbnQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoQnVmZmVy UGluKCkgd2lsbAorCQkJICogd2FpdCB0byBiZSBzaWduYWxlZCBieSBVbnBpbkJ1ZmZlcigp IGFnYWluIGFuZCBzZW5kIGEgcmVxdWVzdAorCQkJICogZm9yIGRlYWRsb2NrcyBjaGVjayBp ZiBkZWFkbG9ja190aW1lb3V0IGhhcHBlbnMuIFRoaXMgY2F1c2VzCisJCQkgKiB0aGUgcmVx dWVzdCB0byBjb250aW51ZSB0byBiZSBzZW50IGV2ZXJ5IGRlYWRsb2NrX3RpbWVvdXQgdW50 aWwKKwkJCSAqIHRoZSBidWZmZXIgaXMgdW5waW5uZWQgb3IgbHRpbWUgaXMgcmVhY2hlZC4g VGhpcyB3b3VsZCBpbmNyZWFzZQorCQkJICogdGhlIHdvcmtsb2FkIGluIHRoZSBzdGFydHVw IHByb2Nlc3MgYW5kIGJhY2tlbmRzLiBJbiBwcmFjdGljZQorCQkJICogaXQgbWF5IG5vdCBi ZSBzbyBoYXJtZnVsIGJlY2F1c2UgdGhlIHBlcmlvZCB0aGF0IHRoZSBidWZmZXIgaXMKKwkJ CSAqIGtlcHQgcGlubmVkIGlzIGJhc2ljYWxseSBubyBzbyBsb25nLiBCdXQgd2Ugc2hvdWxk IGZpeCB0aGlzPworCQkJICovCisJCQlTZW5kUmVjb3ZlcnlDb25mbGljdFdpdGhCdWZmZXJQ aW4oUkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElOX0RFQURMT0NLKTsKKwkJCWJyZWFrOwor CQl9CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmbWdy LmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2J1Zm1nci5oCmluZGV4IDY4MzdiMzVmYzZkLi5j ZjhlZjU0YWVkYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9idWZtZ3IuaAor KysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2J1Zm1nci5oCkBAIC0zMTMsNiArMzEzLDcgQEAg ZXh0ZXJuIGJvb2wgQnVmZmVySXNQZXJtYW5lbnQoQnVmZmVyIGJ1ZmZlcik7CiBleHRlcm4g WExvZ1JlY1B0ciBCdWZmZXJHZXRMU05BdG9taWMoQnVmZmVyIGJ1ZmZlcik7CiBleHRlcm4g dm9pZCBCdWZmZXJHZXRUYWcoQnVmZmVyIGJ1ZmZlciwgUmVsRmlsZUxvY2F0b3IgKnJsb2Nh dG9yLAogCQkJCQkJIEZvcmtOdW1iZXIgKmZvcmtudW0sIEJsb2NrTnVtYmVyICpibGtudW0p OworZXh0ZXJuIGJvb2wgUGluQ291bnRXYWl0ZXJDaGVja1JlYWR5Rm9yQ2xlYW51cChCdWZm ZXIgYnVmZmVyKTsKIAogZXh0ZXJuIHZvaWQgTWFya0J1ZmZlckRpcnR5SGludChCdWZmZXIg YnVmZmVyLCBib29sIGJ1ZmZlcl9zdGQpOwogCi0tIAoyLjQzLjAKCg== --------------5eqqOq5ETSe0ftqupKbkjiCP Content-Type: text/x-patch; charset=UTF-8; name="v8-0002-Use-RegisterPinCountWaiter-in-LockBufferForCleanu.patch" Content-Disposition: attachment; filename*0="v8-0002-Use-RegisterPinCountWaiter-in-LockBufferForCleanu.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmZTBlNGMzNDAxMDE0ODljMDYyY2FkNDNmNTlkN2IzYTAxNDA3NzE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWaXRhbHkgRGF2eWRvdiA8dml0cHJvZkBnbWFpbC5j b20+CkRhdGU6IE1vbiwgMzEgQXVnIDIwMjYgMTg6MzU6NDEgKzAzMDAKU3ViamVjdDogW1BB VENIIHY4IDIvMl0gVXNlIFJlZ2lzdGVyUGluQ291bnRXYWl0ZXIoKSBpbiBMb2NrQnVmZmVy Rm9yQ2xlYW51cCgpCgpSZXBsYWNlIHRoZSBkdXBsaWNhdGVkIHBpbmNvdW50LXdhaXRlciBy ZWdpc3RyYXRpb24gbG9naWMgaW4KTG9ja0J1ZmZlckZvckNsZWFudXAoKSB3aXRoIGEgY2Fs bCB0byBSZWdpc3RlclBpbkNvdW50V2FpdGVyKCksIHdoaWNoCmFscmVhZHkgZW5jYXBzdWxh dGVzIHRoZSBzYW1lIHByb3RvY29sIGZvciBwdWJsaXNoaW5nCkJNX1BJTl9DT1VOVF9XQUlU RVIsIHJlY2hlY2tpbmcgdGhlIHJlZmNvdW50LCBhbmQgcmV0dXJuaW5nIGZhbHNlIHdoZW4K b25seSBvdXIgb3duIHBpbiByZW1haW5zLgotLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVm ZmVyL2J1Zm1nci5jIHwgMjggKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgYi9zcmMvYmFja2VuZC9z dG9yYWdlL2J1ZmZlci9idWZtZ3IuYwppbmRleCA2ODYyNjVjM2Q0OC4uMjc3YTFiNGQ5OTMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCisrKyBi L3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCkBAIC02ODQ0LDM0ICs2ODQ0 LDE0IEBAIExvY2tCdWZmZXJGb3JDbGVhbnVwKEJ1ZmZlciBidWZmZXIpCiAJCQlMb2NrQnVm ZmVyKGJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKIAkJCWVsb2coRVJST1IsICJtdWx0 aXBsZSBiYWNrZW5kcyBhdHRlbXB0aW5nIHRvIHdhaXQgZm9yIHBpbmNvdW50IDEiKTsKIAkJ fQotCQlidWZIZHItPndhaXRfYmFja2VuZF9wZ3Byb2NubyA9IE15UHJvY051bWJlcjsKLQkJ UGluQ291bnRXYWl0QnVmID0gYnVmSGRyOwotCi0JCS8qCi0JCSAqIFB1Ymxpc2ggQk1fUElO X0NPVU5UX1dBSVRFUiB3aGlsZSByZXRhaW5pbmcgdGhlIGJ1ZmZlciBoZWFkZXIgbG9jay4K LQkJICogVGhlIHNoYXJlZCByZWZjb3VudCBjYW4gYmUgZGVjcmVtZW50ZWQgd2hpbGUgQk1f TE9DS0VEIGlzIHNldCwgc28KLQkJICogdXNlIGFuIGF0b21pYyBvcGVyYXRpb24gdGhhdCBw cmVzZXJ2ZXMgY29uY3VycmVudCByZWZjb3VudCBjaGFuZ2VzLgotCQkgKi8KLQkJcGdfYXRv bWljX2ZldGNoX29yX3U2NCgmYnVmSGRyLT5zdGF0ZSwgQk1fUElOX0NPVU5UX1dBSVRFUik7 Ci0KIAkJLyoKLQkJICogUmVjaGVjayB0aGUgcmVmY291bnQgYWZ0ZXIgcHVibGlzaGluZyB0 aGUgd2FpdGVyIGZsYWcsIHdoaWxlIHNoYXJlZAotCQkgKiByZWZjb3VudCBpbmNyZW1lbnRz IGFyZSBzdGlsbCBwcmV2ZW50ZWQgYnkgQk1fTE9DS0VELiAgSWYgb25seSBvdXIKLQkJICog cGluIHJlbWFpbnMsIHRoZSBjbGVhbnVwLWxvY2sgY29uZGl0aW9uIGhhcyBhbHJlYWR5IGJl ZW4gc2F0aXNmaWVkLAotCQkgKiBzbyByZW1vdmUgdGhlIHdhaXRlciBzdGF0ZSBhbmQgcmV0 dXJuIHdpdGhvdXQgc2xlZXBpbmcuCisJCSAqIFJlZ2lzdGVyIG91cnNlbHZlcyBhcyB0aGUg cGluY291bnQgd2FpdGVyLiAgSWYgdGhlIHNoYXJlZCByZWZjb3VudAorCQkgKiB3YXMgY29u Y3VycmVudGx5IHJlZHVjZWQgdG8gMSAob25seSBvdXIgb3duIHBpbiByZW1haW5zKSwKKwkJ ICogUmVnaXN0ZXJQaW5Db3VudFdhaXRlcigpIHJldHVybnMgZmFsc2UgYW5kIG5vIHdhaXQg aXMgbmVjZXNzYXJ5LgogCQkgKi8KLQkJYnVmX3N0YXRlID0gcGdfYXRvbWljX3JlYWRfdTY0 KCZidWZIZHItPnN0YXRlKTsKLQotCQlpZiAoQlVGX1NUQVRFX0dFVF9SRUZDT1VOVChidWZf c3RhdGUpID09IDEpCi0JCXsKLQkJCVVubG9ja0J1ZkhkckV4dChidWZIZHIsIGJ1Zl9zdGF0 ZSwKLQkJCQkJCQkwLCBCTV9QSU5fQ09VTlRfV0FJVEVSLAotCQkJCQkJCTApOwotCQkJUGlu Q291bnRXYWl0QnVmID0gTlVMTDsKKwkJaWYgKCFSZWdpc3RlclBpbkNvdW50V2FpdGVyKGJ1 ZkhkciwgYnVmX3N0YXRlKSkKIAkJCWdvdG8gY2xlYW51cF9sb2NrX2FjcXVpcmVkOwotCQl9 CiAKLQkJVW5sb2NrQnVmSGRyKGJ1Zkhkcik7CiAJCUxvY2tCdWZmZXIoYnVmZmVyLCBCVUZG RVJfTE9DS19VTkxPQ0spOwogCiAJCS8qIFdhaXQgdG8gYmUgc2lnbmFsZWQgYnkgVW5waW5C dWZmZXIoKSAqLwotLSAKMi40My4wCgo= --------------5eqqOq5ETSe0ftqupKbkjiCP--