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 1wSBkY-0031AO-01 for pgsql-hackers@arkaria.postgresql.org; Wed, 27 May 2026 10:44:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSBkV-007rO4-0v for pgsql-hackers@arkaria.postgresql.org; Wed, 27 May 2026 10:44:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wSBkU-007rNw-0O for pgsql-hackers@lists.postgresql.org; Wed, 27 May 2026 10:44:31 +0000 Received: from fhigh-b1-smtp.messagingengine.com ([202.12.124.152]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wSBkS-0000000108G-3wB6 for pgsql-hackers@postgresql.org; Wed, 27 May 2026 10:44:30 +0000 Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfhigh.stl.internal (Postfix) with ESMTP id 4290F7A003D; Wed, 27 May 2026 06:44:27 -0400 (EDT) Received: from phl-imap-08 ([10.202.2.84]) by phl-compute-05.internal (MEProxy); Wed, 27 May 2026 06:44:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=compiler.org; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1779878666; x=1779965066; bh=J6Bs91Ohd6 QWFIp+eG9qrQfjKPTcYaRzh6eA+gVX9cg=; b=bkJUIQovpBfzLRyOikLenhfxuK 6rfsiehvAXv2A0t6xVbeK7ZL3nhcK61ogyGGjquIXW09KxKUZy9DJKiIasZCUkB5 JM+r+3kk/D6tle9NzCvSF3ZX5S30s8eIRYbkr+zTB8iZLLtQ3A/tH0p211pELH8D CBcVbrziMdMARBRHjXCYamyDKUzBaQTGkbxpVhjQXULQndpZGy87uupLdjYl5y/6 IRetBeC+rIJv39QsPwv8I8ZuCBLhw6ggkUR0kHUAZU51Ie75MlS0RXYpoID8E6I9 el/iTCdKDrQIWGqm+RHoegnE+xIw1hvIajOYKIitbsObFq7XjwzM+avV1GWg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1779878666; x=1779965066; bh=J6Bs91Ohd6QWFIp+eG9qrQfjKPTcYaRzh6e A+gVX9cg=; b=aeOkwJNREbWCLIL1s+iENvqfAxXxzfGilI58ubq4nHwRUE4DdZK 2NH0RW8AJ/JYX96nrylNUdHTuP2/u095Uj82e7eMwdXoQclpP3s6avjYLEBBAHo4 /AdTCcEym9b7pYlS5I629ZA7cPILdxvzJNJWuIfp+7sR2z6AqiouBEy6hZWVIjPN s4pKPxF9LCMmg5FykPwMqrYC+y7zN3qV5sVoJSVojvkLo3owVhGibvW3QyiNsYxK BPtomB0fFG5qILa5KpIP5Wgt9s4layz3z6Wrzkr4TceH+JU1Aw8q5+XCNIsa5bcY w6gfQXnJQfmxfVoTnmGlcjcRBRgJbjbGASA== X-ME-Sender: X-ME-Proxy-Cause: dmFkZTFsRuOSfzXTpALjVuUQEKENrha5SOrR1nieqB9YI742MwxT64cyVShX2DRtSItRQR TUVZ07n7qLHpbKe66fgfzxntgXm8a7xzuZF2w5H9Jq/xI/IzqZT4AKKo8xoMiAqwu0hl3o FGW8dxoqamK/drlyUNqgpHOiO49Cri5A5BRlNeE8uui0vNko0lCXVKZZUGiYM73aPkOmxy BydIJwbwgwIT3TieNtt/5ueKpM4veYd1iHRd3RPncT+sMfJGuFlT1MMNcntVtE1tjILhD+ Uy0D7UXRvm1BOHK0X0oMczMeQi7gcsdDYAmBaBuwI3Fb18tdiKeZXbzz9vzjy484EAU8EQ Us+s33dfHSeVPuLCFNyaNs2QBVcHs/QUa9S1kfQ3jy1GlBBr1jWdPIFD03YAqYcb3APNNL cH0S3gMsidhbxGNxI6K1yma4hdVURHNEYAaz5guNY/C5TpK4aQ99L+vs4MDlsR/8xhwvqf L2f417jqdm8BTVOuOzhQyQi0mVuwhDIrMzo97n2Pwfe9J4y/sLH1OpEjrbXkmhDvJSXla/ cRTGsqtPLvSHEqL+IP0jJsVsw29ia15q4US96GilzkZQYUr0b5sFx8q9+rD5YH+I9TeIA7 25j+QcDXudoseUMrf9eFXpRrh23V9sp0EtJ0g5Row49nxpFRnGZUFNFTimMA X-ME-Proxy: Feedback-ID: ic6394509:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 704A52CE0084; Wed, 27 May 2026 06:44:26 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: Ae8-aTnWUuY7 Date: Wed, 27 May 2026 12:43:54 +0200 From: "Joel Jacobson" To: "Tom Lane" Cc: "Arseniy Mukhin" , pgsql-hackers Message-Id: In-Reply-To: <14717.1779810009@sss.pgh.pa.us> References: <9835b0a4-9121-47ac-9c44-427b8b1a7f1b@app.fastmail.com> <14717.1779810009@sss.pgh.pa.us> Subject: Re: [PATCH] Fix LISTEN startup race with direct advancement Content-Type: multipart/mixed; boundary=c3ee2f95788fdb38d0e7e8d44b16b14990d4122e List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --c3ee2f95788fdb38d0e7e8d44b16b14990d4122e Content-Type: text/plain Content-Transfer-Encoding: 7bit On Tue, May 26, 2026, at 17:40, Tom Lane wrote: > I agree with this fix, but it seems to me that it changes the meaning > of the ListenerEntry.listening flag in a rather fundamental way. > I'm tempted to rename that flag to "committed" or something like that. > > (Both "listening" and "committed" appear in dozens of places in this > file that are not references to this flag, so TBH I'd rather use a > flag name that is not either of those words. But I can't think of > a better name.) How about renaming listening to removeOnAbort and negating its meaning? > Also, while the proposed test cases are good for showing that there's > a bug here, I'm disinclined to commit them. I do not think there is > value in them proportionate to the cost of two new isolation-test > instances. I agree. I should have said that feel free to remove them. (Would be nice with a way to attach tests that are meant to be thrown away, but still let cfbot include them in testing.) /Joel --c3ee2f95788fdb38d0e7e8d44b16b14990d4122e Content-Disposition: attachment; filename*0="v3-0001-Fix-NOTIFY-wakeups-for-pre-commit-LISTEN-entries.patc"; filename*1="h" Content-Type: application/octet-stream; name="=?UTF-8?Q?v3-0001-Fix-NOTIFY-wakeups-for-pre-commit-LISTEN-entries.patch?=" Content-Transfer-Encoding: base64 RnJvbSA3ZmMyYzZkZmViOWVhZjk2M2FlYjdkYjQ2ZmM5YWUzMWRiODRjZGYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEphY29ic29uIDxqb2VsQGNvbXBpbGVyLm9y Zz4KRGF0ZTogV2VkLCAyNyBNYXkgMjAyNiAxMjozMDoyMiArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIEZpeCBOT1RJRlkgd2FrZXVwcyBmb3IgcHJlLWNvbW1pdCBMSVNURU4gZW50cmllcwoK U2lnbmFsQmFja2VuZHMoKSB1c2VkIHRvIGlnbm9yZSBMaXN0ZW5lckVudHJ5IGVudHJpZXMg d2hvc2UgZmxhZwpzYWlkIHRoYXQgdGhlIGxpc3RlbmVyIHdhcyBub3QgeWV0IGNvbW1pdHRl ZC4gIFRoYXQgY2FuIGJlIHRydWUgZm9yCmEgTElTVEVOIHRoYXQgaGFzIGFscmVhZHkgcmVn aXN0ZXJlZCBpdHMgcXVldWUgcG9zaXRpb24sIGJ1dCBoYXMgbm90CnlldCByZWFjaGVkIEF0 Q29tbWl0X05vdGlmeSgpLiAgSWYgYW5vdGhlciBiYWNrZW5kIG5vdGlmaWVzIHRoZSBzYW1l CmNoYW5uZWwgaW4gdGhhdCB3aW5kb3csIGFkdmFuY2luZyB0aGUgbGlzdGVuZXIgcXVldWUg cG9pbnRlciBjb3VsZAptYWtlIHRoZSBMSVNURU4gbWlzcyB0aGUgbm90aWZpY2F0aW9uIGFm dGVyIGNvbW1pdC4KCkZpeCB0aGlzIGJ5IHRyZWF0aW5nIGFsbCBjaGFubmVsIGVudHJpZXMg YXMgcG9zc2libGUgd2FrZXVwIHRhcmdldHMuClJlbmFtZSB0aGUgZmxhZyB0byByZW1vdmVP bkFib3J0IHRvIHJlZmxlY3QgaXRzIHJlbWFpbmluZyBwdXJwb3NlOgppZGVudGlmeWluZyBw cmVhbGxvY2F0ZWQgTElTVEVOIGVudHJpZXMgdGhhdCBhYm9ydCBjbGVhbnVwIG11c3QKcmVt b3ZlLgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgfCA1NCArKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRp b25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9hc3luYy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYwppbmRleCBkYjZh OWE2NTYxYi4uMWFhZTcwMzAzZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2FzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYwpAQCAtMTE0LDE1 ICsxMTQsMTUgQEAKICAqCSAgSWYgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gaGFzIGV4ZWN1 dGVkIGFueSBMSVNURU4vVU5MSVNURU4gYWN0aW9ucywKICAqCSAgUHJlQ29tbWl0X05vdGlm eSgpIHByZXBhcmVzIHRvIGNvbW1pdCB0aG9zZS4gIEZvciBMSVNURU4sIGl0CiAgKgkgIHBy ZS1hbGxvY2F0ZXMgZW50cmllcyBpbiBib3RoIHRoZSBwZXItYmFja2VuZCBsb2NhbENoYW5u ZWxUYWJsZSBhbmQgdGhlCi0gKgkgIHNoYXJlZCBnbG9iYWxDaGFubmVsVGFibGUgKHdpdGgg bGlzdGVuaW5nPWZhbHNlIHNvIHRoYXQgdGhlc2UgZW50cmllcwotICoJICBhcmUgbm8tb3Bz IGZvciB0aGUgbW9tZW50KS4gIEl0IGFsc28gcmVjb3JkcyB0aGUgZmluYWwgcGVyLWNoYW5u ZWwKLSAqCSAgaW50ZW50IGluIHBlbmRpbmdMaXN0ZW5BY3Rpb25zLCBzbyBwb3N0LWNvbW1p dC9hYm9ydCBwcm9jZXNzaW5nIGNhbgotICoJICBhcHBseSB0aGF0IGluIGEgc2luZ2xlIHN0 ZXAuICBTaW5jZSBhbGwgdGhlc2UgYWxsb2NhdGlvbnMgaGFwcGVuIGJlZm9yZQotICoJICBj b21taXR0aW5nIHRvIGNsb2csIHdlIGNhbiBzYWZlbHkgYWJvcnQgdGhlIHRyYW5zYWN0aW9u IG9uIGZhaWx1cmUuCisgKgkgIHNoYXJlZCBnbG9iYWxDaGFubmVsVGFibGUsIG1hcmtpbmcg bmV3IHNoYXJlZCBlbnRyaWVzIHJlbW92ZU9uQWJvcnQuCisgKgkgIEl0IGFsc28gcmVjb3Jk cyB0aGUgZmluYWwgcGVyLWNoYW5uZWwgaW50ZW50IGluIHBlbmRpbmdMaXN0ZW5BY3Rpb25z LAorICoJICBzbyBwb3N0LWNvbW1pdC9hYm9ydCBwcm9jZXNzaW5nIGNhbiBhcHBseSB0aGF0 IGluIGEgc2luZ2xlIHN0ZXAuCisgKgkgIFNpbmNlIGFsbCB0aGVzZSBhbGxvY2F0aW9ucyBo YXBwZW4gYmVmb3JlIGNvbW1pdHRpbmcgdG8gY2xvZywgd2UgY2FuCisgKgkgIHNhZmVseSBh Ym9ydCB0aGUgdHJhbnNhY3Rpb24gb24gZmFpbHVyZS4KICAqCiAgKgkgIEFmdGVyIGNvbW1p dCwgQXRDb21taXRfTm90aWZ5KCkgcnVucyB0aHJvdWdoIHBlbmRpbmdMaXN0ZW5BY3Rpb25z IGFuZAotICoJICB1cGRhdGVzIHRoZSBiYWNrZW5kJ3MgcGVyLWNoYW5uZWwgbGlzdGVuaW5n IGZsYWdzIHRvIGFjdGl2YXRlIG9yCi0gKgkgIGRlYWN0aXZhdGUgbGlzdGVuaW5nLiAgVGhp cyBoYXBwZW5zIGJlZm9yZSBzZW5kaW5nIHNpZ25hbHMuCisgKgkgIGFwcGxpZXMgdGhlIGZp bmFsIHBlci1jaGFubmVsIGxpc3Rlbi91bmxpc3RlbiBzdGF0ZS4gIFRoaXMgaGFwcGVucwor ICoJICBiZWZvcmUgc2VuZGluZyBzaWduYWxzLgogICoKICAqCSAgU2lnbmFsQmFja2VuZHMo KSBjb25zdWx0cyB0aGUgc2hhcmVkIGdsb2JhbCBjaGFubmVsIHRhYmxlIHRvIGlkZW50aWZ5 CiAgKgkgIGxpc3RlbmVycyBmb3IgdGhlIGNoYW5uZWxzIHRoYXQgdGhlIGN1cnJlbnQgdHJh bnNhY3Rpb24gc2VudApAQCAtMzg0LDEwICszODQsOSBAQCBzdGF0aWMgU2xydURlc2MgTm90 aWZ5U2xydURlc2M7CiAgKiBHbG9iYWwgY2hhbm5lbCB0YWJsZSBkZWZpbml0aW9ucwogICoK ICAqIFRoaXMgaGFzaCB0YWJsZSBtYXBzIChkYXRhYmFzZSBPSUQsIGNoYW5uZWwgbmFtZSkg a2V5cyB0byBhcnJheXMgb2YKLSAqIFByb2NOdW1iZXJzIHJlcHJlc2VudGluZyB0aGUgYmFj a2VuZHMgbGlzdGVuaW5nIG9yIGFib3V0IHRvIGxpc3RlbgotICogb24gZWFjaCBjaGFubmVs LiAgVGhlICJsaXN0ZW5pbmciIGZsYWdzIGFsbG93IHVzIHRvIGNyZWF0ZSBoYXNoIHRhYmxl Ci0gKiBlbnRyaWVzIHByZS1jb21taXQgYW5kIG5vdCBoYXZlIHRvIGFzc3VtZSB0aGF0IGNy ZWF0aW5nIHRoZW0gcG9zdC1jb21taXQKLSAqIHdpbGwgc3VjY2VlZC4KKyAqIFByb2NOdW1i ZXJzIHJlcHJlc2VudGluZyB0aGUgYmFja2VuZHMgbGlzdGVuaW5nIG9yIGFib3V0IHRvIGxp c3RlbiBvbiBlYWNoCisgKiBjaGFubmVsLiAgVGhlIHJlbW92ZU9uQWJvcnQgZmxhZ3MgYWxs b3cgdXMgdG8gY3JlYXRlIGhhc2ggdGFibGUgZW50cmllcworICogcHJlLWNvbW1pdCBhbmQg ZGlzY2FyZCB0aGVtIGxhdGVyIGlmIHRoZSB0cmFuc2FjdGlvbiBhYm9ydHMuCiAgKi8KICNk ZWZpbmUgSU5JVElBTF9MSVNURU5FUlNfQVJSQVlfU0laRSA0CiAKQEAgLTQwMCw3ICszOTks NyBAQCB0eXBlZGVmIHN0cnVjdCBHbG9iYWxDaGFubmVsS2V5CiB0eXBlZGVmIHN0cnVjdCBM aXN0ZW5lckVudHJ5CiB7CiAJUHJvY051bWJlcglwcm9jTm87CQkJLyogbGlzdGVuZXIncyBQ cm9jTnVtYmVyICovCi0JYm9vbAkJbGlzdGVuaW5nOwkJLyogdHJ1ZSBpZiBjb21taXR0ZWQg bGlzdGVuZXIgKi8KKwlib29sCQlyZW1vdmVPbkFib3J0OwkvKiByZW1vdmUgZW50cnkgaWYg Y3VycmVudCB4YWN0IGFib3J0cyAqLwogfSBMaXN0ZW5lckVudHJ5OwogCiB0eXBlZGVmIHN0 cnVjdCBHbG9iYWxDaGFubmVsRW50cnkKQEAgLTE1MjMsOSArMTUyMiw4IEBAIEJlY29tZVJl Z2lzdGVyZWRMaXN0ZW5lcih2b2lkKQogICoKICAqIFByZXBhcmUgYSBMSVNURU4gYnkgcmVj b3JkaW5nIGl0IGluIHBlbmRpbmdMaXN0ZW5BY3Rpb25zLCBwcmUtYWxsb2NhdGluZwogICog YW4gZW50cnkgaW4gbG9jYWxDaGFubmVsVGFibGUsIGFuZCBwcmUtYWxsb2NhdGluZyBhbiBl bnRyeSBpbiB0aGUgc2hhcmVkCi0gKiBnbG9iYWxDaGFubmVsVGFibGUgd2l0aCBsaXN0ZW5p bmc9ZmFsc2UuICBUaGUgbGlzdGVuaW5nIGZsYWcgd2lsbCBiZSBzZXQKLSAqIHRvIHRydWUg aW4gQXRDb21taXRfTm90aWZ5LiAgSWYgd2UgYWJvcnQgbGF0ZXIsIHVud2FudGVkIHRhYmxl IGVudHJpZXMKLSAqIHdpbGwgYmUgcmVtb3ZlZC4KKyAqIGdsb2JhbENoYW5uZWxUYWJsZSB3 aXRoIHJlbW92ZU9uQWJvcnQgc2V0LiAgQXRDb21taXRfTm90aWZ5IGNsZWFycworICogcmVt b3ZlT25BYm9ydDsgYWJvcnQgcHJvY2Vzc2luZyByZW1vdmVzIGVudHJpZXMgc3RpbGwgbWFy a2VkIHNvLgogICovCiBzdGF0aWMgdm9pZAogUHJlcGFyZVRhYmxlRW50cmllc0Zvckxpc3Rl bihjb25zdCBjaGFyICpjaGFubmVsKQpAQCAtMTU1Nyw3ICsxNTU1LDcgQEAgUHJlcGFyZVRh YmxlRW50cmllc0Zvckxpc3Rlbihjb25zdCBjaGFyICpjaGFubmVsKQogCSAqLwogCSh2b2lk KSBoYXNoX3NlYXJjaChsb2NhbENoYW5uZWxUYWJsZSwgY2hhbm5lbCwgSEFTSF9FTlRFUiwg TlVMTCk7CiAKLQkvKiBQcmUtYWxsb2NhdGUgZW50cnkgaW4gc2hhcmVkIGdsb2JhbENoYW5u ZWxUYWJsZSB3aXRoIGxpc3RlbmluZz1mYWxzZSAqLworCS8qIFByZS1hbGxvY2F0ZSBlbnRy eSBpbiBzaGFyZWQgZ2xvYmFsQ2hhbm5lbFRhYmxlICovCiAJR2xvYmFsQ2hhbm5lbEtleUlu aXQoJmtleSwgTXlEYXRhYmFzZUlkLCBjaGFubmVsKTsKIAllbnRyeSA9IGRzaGFzaF9maW5k X29yX2luc2VydChnbG9iYWxDaGFubmVsVGFibGUsICZrZXksICZmb3VuZCk7CiAKQEAgLTE1 OTIsNyArMTU5MCw3IEBAIFByZXBhcmVUYWJsZUVudHJpZXNGb3JMaXN0ZW4oY29uc3QgY2hh ciAqY2hhbm5lbCkKIAl7CiAJCWlmIChsaXN0ZW5lcnNbaV0ucHJvY05vID09IE15UHJvY051 bWJlcikKIAkJewotCQkJLyogQWxyZWFkeSBoYXZlIGFuIGVudHJ5OyBsaXN0ZW5pbmcgZmxh ZyBzdGF5cyBhcy1pcyB1bnRpbCBjb21taXQgKi8KKwkJCS8qIEFscmVhZHkgaGF2ZSBhbiBl bnRyeTsgbGVhdmUgcmVtb3ZlT25BYm9ydCBhcy1pcyAqLwogCQkJZHNoYXNoX3JlbGVhc2Vf bG9jayhnbG9iYWxDaGFubmVsVGFibGUsIGVudHJ5KTsKIAkJCXJldHVybjsKIAkJfQpAQCAt MTYxNSw4ICsxNjEzLDcgQEAgUHJlcGFyZVRhYmxlRW50cmllc0Zvckxpc3Rlbihjb25zdCBj aGFyICpjaGFubmVsKQogCX0KIAogCWxpc3RlbmVyc1tlbnRyeS0+bnVtTGlzdGVuZXJzXS5w cm9jTm8gPSBNeVByb2NOdW1iZXI7Ci0JbGlzdGVuZXJzW2VudHJ5LT5udW1MaXN0ZW5lcnNd Lmxpc3RlbmluZyA9IGZhbHNlOwkvKiBzdGFnZWQsIG5vdCB5ZXQKLQkJCQkJCQkJCQkJCQkJ ICogY29tbWl0dGVkICovCisJbGlzdGVuZXJzW2VudHJ5LT5udW1MaXN0ZW5lcnNdLnJlbW92 ZU9uQWJvcnQgPSB0cnVlOwogCWVudHJ5LT5udW1MaXN0ZW5lcnMrKzsKIAogCWRzaGFzaF9y ZWxlYXNlX2xvY2soZ2xvYmFsQ2hhbm5lbFRhYmxlLCBlbnRyeSk7CkBAIC0xNzY2LDExICsx NzYzLDEwIEBAIEFwcGx5UGVuZGluZ0xpc3RlbkFjdGlvbnMoYm9vbCBpc0NvbW1pdCkKIAkJ CQkJaWYgKHBlbmRpbmctPmFjdGlvbiA9PSBQRU5ESU5HX0xJU1RFTikKIAkJCQkJewogCQkJ CQkJLyoKLQkJCQkJCSAqIExJU1RFTiBiZWluZyBjb21taXR0ZWQ6IHNldCBsaXN0ZW5pbmc9 dHJ1ZS4KLQkJCQkJCSAqIGxvY2FsQ2hhbm5lbFRhYmxlIGVudHJ5IHdhcyBjcmVhdGVkIGR1 cmluZwotCQkJCQkJICogUHJlQ29tbWl0IGFuZCBzaG91bGQgYmUga2VwdC4KKwkJCQkJCSAq IExJU1RFTiBiZWluZyBjb21taXR0ZWQ7IGxvY2FsQ2hhbm5lbFRhYmxlIGVudHJ5CisJCQkJ CQkgKiB3YXMgY3JlYXRlZCBkdXJpbmcgUHJlQ29tbWl0IGFuZCBzaG91bGQgYmUga2VwdC4K IAkJCQkJCSAqLwotCQkJCQkJbGlzdGVuZXJzW2ldLmxpc3RlbmluZyA9IHRydWU7CisJCQkJ CQlsaXN0ZW5lcnNbaV0ucmVtb3ZlT25BYm9ydCA9IGZhbHNlOwogCQkJCQkJcmVtb3ZlTG9j YWwgPSBmYWxzZTsKIAkJCQkJfQogCQkJCQllbHNlCkBAIC0xNzkwLDIwICsxNzg2LDE5IEBA IEFwcGx5UGVuZGluZ0xpc3RlbkFjdGlvbnMoYm9vbCBpc0NvbW1pdCkKIAkJCQkJICogcGVu ZGluZ0xpc3RlbkFjdGlvbnMgZW50cmllcywgc28gaXQncyBwcmV0dHkgaGFyZCB0bwogCQkJ CQkgKiB0ZXN0LgogCQkJCQkgKi8KLQkJCQkJaWYgKCFsaXN0ZW5lcnNbaV0ubGlzdGVuaW5n KQorCQkJCQlpZiAobGlzdGVuZXJzW2ldLnJlbW92ZU9uQWJvcnQpCiAJCQkJCXsKIAkJCQkJ CS8qCiAJCQkJCQkgKiBTdGFnZWQgTElTVEVOIChvciBMSVNURU4rVU5MSVNURU4pIGJlaW5n IGFib3J0ZWQsCi0JCQkJCQkgKiBhbmQgd2Ugd2VyZW4ndCBsaXN0ZW5pbmcgYmVmb3JlLCBz byByZW1vdmUKLQkJCQkJCSAqIHByZS1hbGxvY2F0ZWQgZW50cmllcyBmcm9tIGJvdGggdGFi bGVzLgorCQkJCQkJICogc28gcmVtb3ZlIHByZS1hbGxvY2F0ZWQgZW50cmllcyBmcm9tIGJv dGggdGFibGVzLgogCQkJCQkJICovCiAJCQkJCQlSZW1vdmVMaXN0ZW5lckZyb21DaGFubmVs KCZlbnRyeSwgbGlzdGVuZXJzLCBpKTsKIAkJCQkJfQogCQkJCQllbHNlCiAJCQkJCXsKIAkJ CQkJCS8qCi0JCQkJCQkgKiBXZSdyZSBhYm9ydGluZywgYnV0IHRoZSBwcmV2aW91cyBzdGF0 ZSB3YXMgdGhhdAotCQkJCQkJICogd2UncmUgbGlzdGVuaW5nLCBzbyBrZWVwIGxvY2FsQ2hh bm5lbFRhYmxlIGVudHJ5LgorCQkJCQkJICogRW50cnkgcHJlLWV4aXN0ZWQgdGhpcyB0cmFu c2FjdGlvbiwgc28ga2VlcCB0aGUKKwkJCQkJCSAqIGxvY2FsQ2hhbm5lbFRhYmxlIGVudHJ5 LgogCQkJCQkJICovCiAJCQkJCQlyZW1vdmVMb2NhbCA9IGZhbHNlOwogCQkJCQl9CkBAIC0y MzA0LDkgKzIyOTksNiBAQCBTaWduYWxCYWNrZW5kcyh2b2lkKQogCQkJaW50MzIJCXBpZDsK IAkJCVF1ZXVlUG9zaXRpb24gcG9zOwogCi0JCQlpZiAoIWxpc3RlbmVyc1tqXS5saXN0ZW5p bmcpCi0JCQkJY29udGludWU7CQkvKiBpZ25vcmUgbm90LXlldC1jb21taXR0ZWQgbGlzdGVu ZXJzICovCi0KIAkJCWkgPSBsaXN0ZW5lcnNbal0ucHJvY05vOwogCiAJCQlpZiAoUVVFVUVf QkFDS0VORF9XQUtFVVBfUEVORElORyhpKSkKLS0gCjIuNTIuMAoK --c3ee2f95788fdb38d0e7e8d44b16b14990d4122e--