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.94.2) (envelope-from ) id 1sKIUe-009MVv-Cu for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Jun 2024 14:10:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sKIUb-008JQo-0r for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Jun 2024 14:10:25 +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.94.2) (envelope-from ) id 1sKIUa-008JL7-EP for pgsql-hackers@lists.postgresql.org; Thu, 20 Jun 2024 14:10:25 +0000 Received: from lahtoruutu.iki.fi ([2a0b:5c81:1c1::37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sKIUX-002GMH-1O for pgsql-hackers@postgresql.org; Thu, 20 Jun 2024 14:10:23 +0000 Received: from [192.168.1.115] (dsl-hkibng22-54f8db-125.dhcp.inet.fi [84.248.219.125]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4W4j7F3kNkz4BJ26; Thu, 20 Jun 2024 17:10:17 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1718892617; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lWfj3XLkn6/kBdxKTYj3pXGNocqbUlEjg3PEQ1vE3+c=; b=kc5wu4GaBHvFxzjPZI31U6/A/JAJ6cpn82Uwg4R7GL+Tnl1CMHA7AcGu9PgOeqwv2piTyh n26fgluv5gbubgjFh45fK1V69kuIpt4Uuk+dVJs32MWW0U8EuF9Z2WDKmfYrWxrB7fpfSX cBle408ji/sFPO9mAaj3SVNSlQVmahxkiOiDLO6djoTti/d0LPw2FaWnIY4STzzSjJxDBx XihZ11cnWE6hcwAAo0mqRlc2RSldmDtUa3z134j1O8ycU37wQkJvq8DxLClfcp4lBYHy1w IWTEDwzehNYlBJX2gXFkm6hQrgzEIinUyKiVtnRRfdfGgRqAprtzJiYdmY8DoA== ARC-Seal: i=1; s=lahtoruutu; d=iki.fi; t=1718892617; a=rsa-sha256; cv=none; b=frq+3MMkoCln4zkWshifXDXmcy6wToqiombfBwJrHw2Fn23tbMyg5ZbDKI43XNI+uSq2aI zjRQ+UBUgC1NYd3sISULbyeQGNul64GJq+CVWpPvcQa2ndsp3kZQWNbd/y1hdEZGodoZnr skR0yVtzQnOzqJC7IB8C5dtJeeEmEJpJDsUaNwM4Y6uRFJ05qkKfCq3DsgpSsBuPWeYcQI uSLiNcoZIBGRGa7dp/n3Uelw3UHiXPUb65DbqE9scZTyHheQaTJzGrxJyIBtO77uDColmY G/U4vm8m9LBB6aVw3LqkcohDXKi4dFTVA9Dj98pXJdlr//tQOALIvdEZgqrsUw== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1718892617; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lWfj3XLkn6/kBdxKTYj3pXGNocqbUlEjg3PEQ1vE3+c=; b=O20bvpk2E1R8SXyQDYFCR3/G0ljqR1s+KylsfD/ZJNFtOeuYcYSyz0y1MCcUU3hoXK7tnJ JxSlVtkBXr/+1q1nWFNWRvsZu2bcMKuRX1hmtwyx/Ij3bvzxlaRFwCAXGGHvR60B0aey+O R4w47Os42HYfBHM1ZTm7MHiPrHk5ebUc6+OxZtYA3naDcEILJACCk++MdvMH7wP9L2t3W0 /7YwxxB0p1zEWJnuwbVbTjZRWX6wPyjl1jL92iFY4CwigxAGl1SVdjhpwFAVWrBFS8+8pI 6i9HT0J7l1BNLCP7sxR+BgpWoj0j8bxh50UcAAWLc6fArSzguTmKVPYjPi5D+w== Content-Type: multipart/mixed; boundary="------------JLe0soaMSA5YkjWQOQYz1VVC" Message-ID: Date: Thu, 20 Jun 2024 17:10:17 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Visibility bug with prepared transaction with subtransactions on standby From: Heikki Linnakangas To: pgsql-hackers Cc: Konstantin Knizhnik References: <6b852e98-2d49-4ca1-9e95-db419a2696e0@iki.fi> Content-Language: en-US In-Reply-To: <6b852e98-2d49-4ca1-9e95-db419a2696e0@iki.fi> 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. --------------JLe0soaMSA5YkjWQOQYz1VVC Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 20/06/2024 16:41, Heikki Linnakangas wrote: > Attached is a patch to fix this, with a test case. The patch did not compile, thanks to a last-minute change in a field name. Here's a fixed version. -- Heikki Linnakangas Neon (https://neon.tech) --------------JLe0soaMSA5YkjWQOQYz1VVC Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-tests-Trim-newline-from-result-returned-by-Backgr.patch" Content-Disposition: attachment; filename*0="v2-0001-tests-Trim-newline-from-result-returned-by-Backgr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjY2IwYmQzNjYxOWYwMzA1NTM4MjIwNWVkZGQ3YTBlOWI2NGJiYTk1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFRodSwgMjAgSnVuIDIwMjQgMTU6NDk6MDUgKzAzMDAK U3ViamVjdDogW1BBVENIIHYyIDEvMl0gdGVzdHM6IFRyaW0gbmV3bGluZSBmcm9tIHJlc3Vs dCByZXR1cm5lZCBieQogQmFja2dyb3VuZFBzcWwtPnF1ZXJ5CgpUaGlzIHdlbnQgdW5ub3Rp Y2VkLCBiZWNhdXNlIG9ubHkgYSBmZXcgZXhpc3RpbmcgY2FsbGVycyBvZgpCYWNrZ3JvdW5k UHNxbC0+cXVlcnkgdXNlZCB0aGUgcmVzdWx0LCBhbmQgdGhlIG9uZXMgdGhhdCBkaWQgd2Vy ZSBub3QKYm90aGVyZWQgYnkgYW4gZXh0cmEgbmV3bGluZS4gSSBub3RpY2VkIGJlY2F1c2Ug SSB3YXMgYWJvdXQgdG8gYWRkIGEKbmV3IHRlc3QgdGhhdCBjaGVja3MgdGhlIHJlc3VsdC4K LS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9CYWNrZ3JvdW5kUHNxbC5wbSB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9CYWNrZ3Jv dW5kUHNxbC5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0JhY2tncm91bmRQ c3FsLnBtCmluZGV4IDQwOTFjMzExYjguLjA0MWIzZGZhN2QgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0JhY2tncm91bmRQc3FsLnBtCisrKyBiL3NyYy90 ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0JhY2tncm91bmRQc3FsLnBtCkBAIC0yMTcsMTMg KzIxNywxMyBAQCBzdWIgcXVlcnkKIAlteSAkYmFubmVyID0gImJhY2tncm91bmRfcHNxbDog UVVFUllfU0VQQVJBVE9SIjsKIAkkc2VsZi0+e3N0ZGlufSAuPSAiJHF1ZXJ5XG47XG5cXGVj aG8gJGJhbm5lclxuIjsKIAotCXB1bXBfdW50aWwoJHNlbGYtPntydW59LCAkc2VsZi0+e3Rp bWVvdXR9LCBcJHNlbGYtPntzdGRvdXR9LCBxci8kYmFubmVyLyk7CisJcHVtcF91bnRpbCgk c2VsZi0+e3J1bn0sICRzZWxmLT57dGltZW91dH0sIFwkc2VsZi0+e3N0ZG91dH0sIHFyLyRi YW5uZXJcbi8pOwogCiAJZGllICJwc3FsIHF1ZXJ5IHRpbWVkIG91dCIgaWYgJHNlbGYtPnt0 aW1lb3V0fS0+aXNfZXhwaXJlZDsKIAkkb3V0cHV0ID0gJHNlbGYtPntzdGRvdXR9OwogCiAJ IyByZW1vdmUgYmFubmVyIGFnYWluLCBvdXIgY2FsbGVyIGRvZXNuJ3QgY2FyZQotCSRvdXRw dXQgPX4gcy9cbiRiYW5uZXIkLy9zOworCSRvdXRwdXQgPX4gcy9cbiRiYW5uZXJcbiQvL3M7 CiAKIAkjIGNsZWFyIG91dCBvdXRwdXQgZm9yIHRoZSBuZXh0IHF1ZXJ5CiAJJHNlbGYtPntz dGRvdXR9ID0gJyc7Ci0tIAoyLjM5LjIKCg== --------------JLe0soaMSA5YkjWQOQYz1VVC Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-Fix-MVCC-bug-with-prepared-xact-with-subxacts-on-.patch" Content-Disposition: attachment; filename*0="v2-0002-Fix-MVCC-bug-with-prepared-xact-with-subxacts-on-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmNDRjNWVjMmQzMzgzMjQwYzQ5NWMzNmUwNWRhODEyNzkxZTNmNWQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFRodSwgMjAgSnVuIDIwMjQgMTc6MDk6NDEgKzAzMDAK U3ViamVjdDogW1BBVENIIHYyIDIvMl0gRml4IE1WQ0MgYnVnIHdpdGggcHJlcGFyZWQgeGFj dCB3aXRoIHN1YnhhY3RzIG9uCiBzdGFuZGJ5CgpXZSBkaWQgbm90IHJlY292ZXIgdGhlIHN1 YnRyYW5zYWN0aW9uIElEcyBvZiBwcmVwYXJlZCB0cmFuc2FjdGlvbnMKd2hlbiBzdGFydGlu ZyBhIGhvdCBzdGFuZGJ5IGZyb20gYSBzaHV0ZG93biBjaGVja3BvaW50LiBBcyBhIHJlc3Vs dCwKc3VjaCBzdWJ0cmFuc2FjdGlvbnMgd2VyZSBjb25zaWRlcmVkIGFzIGFib3J0ZWQsIHJh dGhlciB0aGFuCmluLXByb2dyZXNzLiBUaGF0IHdvdWxkIGxlYWQgdG8gaGludCBiaXRzIGJl aW5nIHNldCBpbmNvcnJlY3RseSwgYW5kCnRoZSBzdWJ0cmFuc2FjdGlvbnMgc3VkZGVubHkg YmVjb21pbmcgdmlzaWJsZSB0byBvbGQgc25hcHNob3RzIHdoZW4KdGhlIHByZXBhcmVkIHRy YW5zYWN0aW9uIHdhcyBjb21taXR0ZWQuCgpUbyBmaXgsIHVwZGF0ZSBwZ19zdWJ0cmFucyB3 aXRoIHByZXBhcmVkIHRyYW5zYWN0aW9ucydzIHN1YnhpZHMgd2hlbgpzdGFydGluZyBob3Qg c3RhbmRieSBmcm9tIGEgc2h1dGRvd24gY2hlY2twb2ludC4gVGhlIHNuYXBzaG90cyB0YWtl bgpmcm9tIHRoYXQgc3RhdGUgbmVlZCB0byBiZSBtYXJrZWQgYXMgInN1Ym92ZXJmbG93ZWQi LCBzbyB0aGF0IHdlIGFsc28KY2hlY2sgdGhlIHBnX3N1YnRyYW5zLgoKRGlzY3Vzc2lvbjog WFhYCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYyB8ICA3ICsr LS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgICAgIHwgMTQgKysrKyst LS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAgIHwgMTggKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAgfCAgNiArKy0t CiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaCAgICAgICAgIHwgMTAgKysrKystCiBz cmMvdGVzdC9yZWNvdmVyeS90LzAwOV90d29waGFzZS5wbCAgIHwgNDUgKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAg IHwgIDEgKwogNyBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFz ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYwppbmRleCBiZjQ1 MWQ0MmZmLi45YTgyNTdmY2FmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS90d29waGFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3Bo YXNlLmMKQEAgLTIwMzUsOSArMjAzNSw4IEBAIFByZXNjYW5QcmVwYXJlZFRyYW5zYWN0aW9u cyhUcmFuc2FjdGlvbklkICoqeGlkc19wLCBpbnQgKm54aWRzX3ApCiAgKiBUaGlzIGlzIG5l dmVyIGNhbGxlZCBhdCB0aGUgZW5kIG9mIHJlY292ZXJ5IC0gd2UgdXNlCiAgKiBSZWNvdmVy UHJlcGFyZWRUcmFuc2FjdGlvbnMoKSBhdCB0aGF0IHBvaW50LgogICoKLSAqIFRoZSBsYWNr IG9mIGNhbGxzIHRvIFN1YlRyYW5zU2V0UGFyZW50KCkgY2FsbHMgaGVyZSBpcyBieSBkZXNp Z247Ci0gKiB0aG9zZSBjYWxscyBhcmUgbWFkZSBieSBSZWNvdmVyUHJlcGFyZWRUcmFuc2Fj dGlvbnMoKSBhdCB0aGUgZW5kIG9mIHJlY292ZXJ5Ci0gKiBmb3IgdGhvc2UgeGFjdHMgdGhh dCBuZWVkIHRoaXMuCisgKiBUaGlzIHVwZGF0ZXMgcGdfc3VidHJhbnMsIHNvIHRoYXQgYW55 IHN1YnRyYW5zYWN0aW9ucyB3aWxsIGJlIGNvcnJlY3RseQorICogc2VlbiBhcyBpbi1wcm9n cmVzcyBpbiBzbmFwc2hvdHMgdGFrZW4gZHVyaW5nIHJlY292ZXJ5LgogICovCiB2b2lkCiBT dGFuZGJ5UmVjb3ZlclByZXBhcmVkVHJhbnNhY3Rpb25zKHZvaWQpCkBAIC0yMDU3LDcgKzIw NTYsNyBAQCBTdGFuZGJ5UmVjb3ZlclByZXBhcmVkVHJhbnNhY3Rpb25zKHZvaWQpCiAKIAkJ YnVmID0gUHJvY2Vzc1R3b1BoYXNlQnVmZmVyKHhpZCwKIAkJCQkJCQkJCWd4YWN0LT5wcmVw YXJlX3N0YXJ0X2xzbiwKLQkJCQkJCQkJCWd4YWN0LT5vbmRpc2ssIGZhbHNlLCBmYWxzZSk7 CisJCQkJCQkJCQlneGFjdC0+b25kaXNrLCB0cnVlLCBmYWxzZSk7CiAJCWlmIChidWYgIT0g TlVMTCkKIAkJCXBmcmVlKGJ1Zik7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j CmluZGV4IDMzMGUwNThjNWYuLjNkMDg0ZDFjMzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9nLmMKQEAgLTU3NzcsNiArNTc3Nyw5IEBAIFN0YXJ0dXBYTE9HKHZvaWQpCiAJCQkJ UnVubmluZ1RyYW5zYWN0aW9uc0RhdGEgcnVubmluZzsKIAkJCQlUcmFuc2FjdGlvbklkIGxh dGVzdENvbXBsZXRlZFhpZDsKIAorCQkJCS8qIFVwZGF0ZSBwZ19zdWJ0cmFucyBlbnRyaWVz IGZvciBhbnkgcHJlcGFyZWQgdHJhbnNhY3Rpb25zICovCisJCQkJU3RhbmRieVJlY292ZXJQ cmVwYXJlZFRyYW5zYWN0aW9ucygpOworCiAJCQkJLyoKIAkJCQkgKiBDb25zdHJ1Y3QgYSBS dW5uaW5nVHJhbnNhY3Rpb25zIHNuYXBzaG90IHJlcHJlc2VudGluZyBhCiAJCQkJICogc2h1 dCBkb3duIHNlcnZlciwgd2l0aCBvbmx5IHByZXBhcmVkIHRyYW5zYWN0aW9ucyBzdGlsbApA QCAtNTc4NSw3ICs1Nzg4LDcgQEAgU3RhcnR1cFhMT0codm9pZCkKIAkJCQkgKi8KIAkJCQly dW5uaW5nLnhjbnQgPSBueGlkczsKIAkJCQlydW5uaW5nLnN1YnhjbnQgPSAwOwotCQkJCXJ1 bm5pbmcuc3VieGlkX292ZXJmbG93ID0gZmFsc2U7CisJCQkJcnVubmluZy5zdWJ4aWRfc3Rh dHVzID0gU1VCWElEU19JTl9TVUJUUkFOUzsKIAkJCQlydW5uaW5nLm5leHRYaWQgPSBYaWRG cm9tRnVsbFRyYW5zYWN0aW9uSWQoY2hlY2tQb2ludC5uZXh0WGlkKTsKIAkJCQlydW5uaW5n Lm9sZGVzdFJ1bm5pbmdYaWQgPSBvbGRlc3RBY3RpdmVYSUQ7CiAJCQkJbGF0ZXN0Q29tcGxl dGVkWGlkID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGNoZWNrUG9pbnQubmV4dFhpZCk7 CkBAIC01Nzk1LDggKzU3OTgsNiBAQCBTdGFydHVwWExPRyh2b2lkKQogCQkJCXJ1bm5pbmcu eGlkcyA9IHhpZHM7CiAKIAkJCQlQcm9jQXJyYXlBcHBseVJlY292ZXJ5SW5mbygmcnVubmlu Zyk7Ci0KLQkJCQlTdGFuZGJ5UmVjb3ZlclByZXBhcmVkVHJhbnNhY3Rpb25zKCk7CiAJCQl9 CiAJCX0KIApAQCAtODIzNSw2ICs4MjM2LDkgQEAgeGxvZ19yZWRvKFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCiAJCQlvbGRlc3RBY3RpdmVYSUQgPSBQcmVzY2FuUHJlcGFyZWRUcmFu c2FjdGlvbnMoJnhpZHMsICZueGlkcyk7CiAKKwkJCS8qIFVwZGF0ZSBwZ19zdWJ0cmFucyBl bnRyaWVzIGZvciBhbnkgcHJlcGFyZWQgdHJhbnNhY3Rpb25zICovCisJCQlTdGFuZGJ5UmVj b3ZlclByZXBhcmVkVHJhbnNhY3Rpb25zKCk7CisKIAkJCS8qCiAJCQkgKiBDb25zdHJ1Y3Qg YSBSdW5uaW5nVHJhbnNhY3Rpb25zIHNuYXBzaG90IHJlcHJlc2VudGluZyBhIHNodXQKIAkJ CSAqIGRvd24gc2VydmVyLCB3aXRoIG9ubHkgcHJlcGFyZWQgdHJhbnNhY3Rpb25zIHN0aWxs IGFsaXZlLiBXZSdyZQpAQCAtODI0Myw3ICs4MjQ3LDcgQEAgeGxvZ19yZWRvKFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCQkJICovCiAJCQlydW5uaW5nLnhjbnQgPSBueGlkczsKIAkJ CXJ1bm5pbmcuc3VieGNudCA9IDA7Ci0JCQlydW5uaW5nLnN1YnhpZF9vdmVyZmxvdyA9IGZh bHNlOworCQkJcnVubmluZy5zdWJ4aWRfc3RhdHVzID0gU1VCWElEU19JTl9TVUJUUkFOUzsK IAkJCXJ1bm5pbmcubmV4dFhpZCA9IFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVja1Bv aW50Lm5leHRYaWQpOwogCQkJcnVubmluZy5vbGRlc3RSdW5uaW5nWGlkID0gb2xkZXN0QWN0 aXZlWElEOwogCQkJbGF0ZXN0Q29tcGxldGVkWGlkID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlv bklkKGNoZWNrUG9pbnQubmV4dFhpZCk7CkBAIC04MjUzLDggKzgyNTcsNiBAQCB4bG9nX3Jl ZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCQlydW5uaW5nLnhpZHMgPSB4aWRzOwog CiAJCQlQcm9jQXJyYXlBcHBseVJlY292ZXJ5SW5mbygmcnVubmluZyk7Ci0KLQkJCVN0YW5k YnlSZWNvdmVyUHJlcGFyZWRUcmFuc2FjdGlvbnMoKTsKIAkJfQogCiAJCS8qIENvbnRyb2xG aWxlLT5jaGVja1BvaW50Q29weSBhbHdheXMgdHJhY2tzIHRoZSBsYXRlc3QgY2twdCBYSUQg Ki8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggZDUxNjVhYTBkOS4u Mzg3YjRhNDA1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2Fy cmF5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTEx MDYsNyArMTEwNiw3IEBAIFByb2NBcnJheUFwcGx5UmVjb3ZlcnlJbmZvKFJ1bm5pbmdUcmFu c2FjdGlvbnMgcnVubmluZykKIAkJICogSWYgdGhlIHNuYXBzaG90IGlzbid0IG92ZXJmbG93 ZWQgb3IgaWYgaXRzIGVtcHR5IHdlIGNhbiByZXNldCBvdXIKIAkJICogcGVuZGluZyBzdGF0 ZSBhbmQgdXNlIHRoaXMgc25hcHNob3QgaW5zdGVhZC4KIAkJICovCi0JCWlmICghcnVubmlu Zy0+c3VieGlkX292ZXJmbG93IHx8IHJ1bm5pbmctPnhjbnQgPT0gMCkKKwkJaWYgKHJ1bm5p bmctPnN1YnhpZF9zdGF0dXMgIT0gU1VCWElEU19NSVNTSU5HIHx8IHJ1bm5pbmctPnhjbnQg PT0gMCkKIAkJewogCQkJLyoKIAkJCSAqIElmIHdlIGhhdmUgYWxyZWFkeSBjb2xsZWN0ZWQg a25vd24gYXNzaWduZWQgeGlkcywgd2UgbmVlZCB0bwpAQCAtMTI1OCw3ICsxMjU4LDcgQEAg UHJvY0FycmF5QXBwbHlSZWNvdmVyeUluZm8oUnVubmluZ1RyYW5zYWN0aW9ucyBydW5uaW5n KQogCSAqIG1pc3NpbmcsIHNvIGNvbnNlcnZhdGl2ZWx5IGFzc3VtZSB0aGUgbGFzdCBvbmUg aXMgbGF0ZXN0T2JzZXJ2ZWRYaWQuCiAJICogLS0tLS0tLS0tLQogCSAqLwotCWlmIChydW5u aW5nLT5zdWJ4aWRfb3ZlcmZsb3cpCisJaWYgKHJ1bm5pbmctPnN1YnhpZF9zdGF0dXMgPT0g U1VCWElEU19NSVNTSU5HKQogCXsKIAkJc3RhbmRieVN0YXRlID0gU1RBTkRCWV9TTkFQU0hP VF9QRU5ESU5HOwogCkBAIC0xMjcwLDYgKzEyNzAsMTggQEAgUHJvY0FycmF5QXBwbHlSZWNv dmVyeUluZm8oUnVubmluZ1RyYW5zYWN0aW9ucyBydW5uaW5nKQogCQlzdGFuZGJ5U3RhdGUg PSBTVEFOREJZX1NOQVBTSE9UX1JFQURZOwogCiAJCXN0YW5kYnlTbmFwc2hvdFBlbmRpbmdY bWluID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisKKwkJLyoKKwkJICogSWYgdGhlICd4aWRz JyBhcnJheSBkaWRuJ3QgaW5jbHVkZSBhbGwgc3VidHJhbnNhY3Rpb25zLCB3ZSBoYXZlIHRv CisJCSAqIG1hcmsgYW55IHNuYXBzaG90cyB0YWtlbiBhcyBvdmVyZmxvd2VkLgorCQkgKi8K KwkJaWYgKHJ1bm5pbmctPnN1YnhpZF9zdGF0dXMgPT0gU1VCWElEU19JTl9TVUJUUkFOUykK KwkJCXByb2NBcnJheS0+bGFzdE92ZXJmbG93ZWRYaWQgPSBsYXRlc3RPYnNlcnZlZFhpZDsK KwkJZWxzZQorCQl7CisJCQlBc3NlcnQocnVubmluZy0+c3VieGlkX3N0YXR1cyA9PSBTVUJY SURTX0lOX0FSUkFZKTsKKwkJCXByb2NBcnJheS0+bGFzdE92ZXJmbG93ZWRYaWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKKwkJfQogCX0KIAogCS8qCkBAIC0yODMzLDcgKzI4NDUsNyBA QCBHZXRSdW5uaW5nVHJhbnNhY3Rpb25EYXRhKHZvaWQpCiAKIAlDdXJyZW50UnVubmluZ1hh Y3RzLT54Y250ID0gY291bnQgLSBzdWJjb3VudDsKIAlDdXJyZW50UnVubmluZ1hhY3RzLT5z dWJ4Y250ID0gc3ViY291bnQ7Ci0JQ3VycmVudFJ1bm5pbmdYYWN0cy0+c3VieGlkX292ZXJm bG93ID0gc3Vib3ZlcmZsb3dlZDsKKwlDdXJyZW50UnVubmluZ1hhY3RzLT5zdWJ4aWRfc3Rh dHVzID0gc3Vib3ZlcmZsb3dlZCA/IFNVQlhJRFNfSU5fU1VCVFJBTlMgOiBTVUJYSURTX0lO X0FSUkFZOwogCUN1cnJlbnRSdW5uaW5nWGFjdHMtPm5leHRYaWQgPSBYaWRGcm9tRnVsbFRy YW5zYWN0aW9uSWQoVHJhbnNhbVZhcmlhYmxlcy0+bmV4dFhpZCk7CiAJQ3VycmVudFJ1bm5p bmdYYWN0cy0+b2xkZXN0UnVubmluZ1hpZCA9IG9sZGVzdFJ1bm5pbmdYaWQ7CiAJQ3VycmVu dFJ1bm5pbmdYYWN0cy0+b2xkZXN0RGF0YWJhc2VSdW5uaW5nWGlkID0gb2xkZXN0RGF0YWJh c2VSdW5uaW5nWGlkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3Rh bmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IDg3YjA0 ZTUxYjMuLjg3MjY3OWNhNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3N0YW5kYnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKQEAg LTExODQsNyArMTE4NCw3IEBAIHN0YW5kYnlfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAogCQlydW5uaW5nLnhjbnQgPSB4bHJlYy0+eGNudDsKIAkJcnVubmluZy5zdWJ4Y250 ID0geGxyZWMtPnN1YnhjbnQ7Ci0JCXJ1bm5pbmcuc3VieGlkX292ZXJmbG93ID0geGxyZWMt PnN1YnhpZF9vdmVyZmxvdzsKKwkJcnVubmluZy5zdWJ4aWRfc3RhdHVzID0geGxyZWMtPnN1 YnhpZF9vdmVyZmxvdyA/IFNVQlhJRFNfTUlTU0lORyA6IFNVQlhJRFNfSU5fQVJSQVk7CiAJ CXJ1bm5pbmcubmV4dFhpZCA9IHhscmVjLT5uZXh0WGlkOwogCQlydW5uaW5nLmxhdGVzdENv bXBsZXRlZFhpZCA9IHhscmVjLT5sYXRlc3RDb21wbGV0ZWRYaWQ7CiAJCXJ1bm5pbmcub2xk ZXN0UnVubmluZ1hpZCA9IHhscmVjLT5vbGRlc3RSdW5uaW5nWGlkOwpAQCAtMTM0OSw3ICsx MzQ5LDcgQEAgTG9nQ3VycmVudFJ1bm5pbmdYYWN0cyhSdW5uaW5nVHJhbnNhY3Rpb25zIEN1 cnJSdW5uaW5nWGFjdHMpCiAKIAl4bHJlYy54Y250ID0gQ3VyclJ1bm5pbmdYYWN0cy0+eGNu dDsKIAl4bHJlYy5zdWJ4Y250ID0gQ3VyclJ1bm5pbmdYYWN0cy0+c3VieGNudDsKLQl4bHJl Yy5zdWJ4aWRfb3ZlcmZsb3cgPSBDdXJyUnVubmluZ1hhY3RzLT5zdWJ4aWRfb3ZlcmZsb3c7 CisJeGxyZWMuc3VieGlkX292ZXJmbG93ID0gKEN1cnJSdW5uaW5nWGFjdHMtPnN1YnhpZF9z dGF0dXMgIT0gU1VCWElEU19JTl9BUlJBWSk7CiAJeGxyZWMubmV4dFhpZCA9IEN1cnJSdW5u aW5nWGFjdHMtPm5leHRYaWQ7CiAJeGxyZWMub2xkZXN0UnVubmluZ1hpZCA9IEN1cnJSdW5u aW5nWGFjdHMtPm9sZGVzdFJ1bm5pbmdYaWQ7CiAJeGxyZWMubGF0ZXN0Q29tcGxldGVkWGlk ID0gQ3VyclJ1bm5pbmdYYWN0cy0+bGF0ZXN0Q29tcGxldGVkWGlkOwpAQCAtMTM2Niw3ICsx MzY2LDcgQEAgTG9nQ3VycmVudFJ1bm5pbmdYYWN0cyhSdW5uaW5nVHJhbnNhY3Rpb25zIEN1 cnJSdW5uaW5nWGFjdHMpCiAKIAlyZWNwdHIgPSBYTG9nSW5zZXJ0KFJNX1NUQU5EQllfSUQs IFhMT0dfUlVOTklOR19YQUNUUyk7CiAKLQlpZiAoQ3VyclJ1bm5pbmdYYWN0cy0+c3VieGlk X292ZXJmbG93KQorCWlmICh4bHJlYy5zdWJ4aWRfb3ZlcmZsb3cpCiAJCWVsb2coREVCVUcy LAogCQkJICJzbmFwc2hvdCBvZiAlZCBydW5uaW5nIHRyYW5zYWN0aW9ucyBvdmVyZmxvd2Vk IChsc24gJVgvJVggb2xkZXN0IHhpZCAldSBsYXRlc3QgY29tcGxldGUgJXUgbmV4dCB4aWQg JXUpIiwKIAkJCSBDdXJyUnVubmluZ1hhY3RzLT54Y250LApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aAppbmRleCAwZmMwODA0ZTI2Li5jY2UwYmM1MjFlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9zdG9yYWdlL3N0YW5kYnkuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aApAQCAtNzUsMTEgKzc1LDE5IEBAIGV4dGVybiB2b2lkIFN0YW5kYnlSZWxlYXNlT2xkTG9j a3MoVHJhbnNhY3Rpb25JZCBvbGR4aWQpOwogICogYWxtb3N0IGltbWVkaWF0ZWx5IHNlZSB0 aGUgZGF0YSB3ZSBuZWVkIHRvIGJlZ2luIGV4ZWN1dGluZyBxdWVyaWVzLgogICovCiAKK3R5 cGVkZWYgZW51bQoreworCVNVQlhJRFNfSU5fQVJSQVksCQkJLyogeGlkcyBhcnJheSBpbmNs dWRlcyBhbGwgcnVubmluZyBzdWJ4aWRzICovCisJU1VCWElEU19NSVNTSU5HLAkJCS8qIHNu YXBzaG90IG92ZXJmbG93ZWQsIHN1YnhpZHMgYXJlIG1pc3NpbmcgKi8KKwlTVUJYSURTX0lO X1NVQlRSQU5TLAkJLyogc3VieGlkcyBhcmUgbm90IGluY2x1ZGVkIGluICd4aWRzJywgYnV0 CisJCQkJCQkJCSAqIHBnX3N1YnRyYW5zIGlzIGZ1bGx5IHVwLXRvLWRhdGUgKi8KK30gc3Vi eGlkc19hcnJheV9zdGF0dXM7CisKIHR5cGVkZWYgc3RydWN0IFJ1bm5pbmdUcmFuc2FjdGlv bnNEYXRhCiB7CiAJaW50CQkJeGNudDsJCQkvKiAjIG9mIHhhY3QgaWRzIGluIHhpZHNbXSAq LwogCWludAkJCXN1YnhjbnQ7CQkvKiAjIG9mIHN1YnhhY3QgaWRzIGluIHhpZHNbXSAqLwot CWJvb2wJCXN1YnhpZF9vdmVyZmxvdzsJLyogc25hcHNob3Qgb3ZlcmZsb3dlZCwgc3VieGlk cyBtaXNzaW5nICovCisJc3VieGlkc19hcnJheV9zdGF0dXMgc3VieGlkX3N0YXR1czsKIAlU cmFuc2FjdGlvbklkIG5leHRYaWQ7CQkvKiB4aWQgZnJvbSBUcmFuc2FtVmFyaWFibGVzLT5u ZXh0WGlkICovCiAJVHJhbnNhY3Rpb25JZCBvbGRlc3RSdW5uaW5nWGlkOyAvKiAqbm90KiBv bGRlc3RYbWluICovCiAJVHJhbnNhY3Rpb25JZCBvbGRlc3REYXRhYmFzZVJ1bm5pbmdYaWQ7 IC8qIHNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoaW4gdGhlCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWNvdmVyeS90LzAwOV90d29waGFzZS5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA5 X3R3b3BoYXNlLnBsCmluZGV4IDcwMWY5Y2MyMGYuLmNhODNkOGNiYzggMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA5X3R3b3BoYXNlLnBsCisrKyBiL3NyYy90ZXN0L3Jl Y292ZXJ5L3QvMDA5X3R3b3BoYXNlLnBsCkBAIC0zMTIsNiArMzEyLDUxIEBAICRjdXJfc3Rh bmRieS0+c3RhcnQ7CiAKICRjdXJfcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLCAiQ09NTUlU IFBSRVBBUkVEICd4YWN0XzAwOV8xMiciKTsKIAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIyBDaGVjayB2aXNpYmlsaXR5IG9mIHByZXBhcmVkIHRyYW5zYWN0aW9ucyBpbiBzdGFu ZGJ5IGFmdGVyIGEgcmVzdGFydCB3aGlsZQorIyBwcmltYXJ5IGlzIGRvd24uCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKKyRjdXJfcHJpbWFyeS0+cHNxbCgKKwkncG9zdGdyZXMn LCAiCisJQ1JFQVRFIFRBQkxFIHRfMDA5X3RibF9zdGFuZGJ5X212Y2MgKGlkIGludCwgbXNn IHRleHQpOworCUJFR0lOOworCUlOU0VSVCBJTlRPIHRfMDA5X3RibF9zdGFuZGJ5X212Y2Mg VkFMVUVTICgxLCAnaXNzdWVkIHRvICR7Y3VyX3ByaW1hcnlfbmFtZX0nKTsKKwlTQVZFUE9J TlQgczE7CisJSU5TRVJUIElOVE8gdF8wMDlfdGJsX3N0YW5kYnlfbXZjYyBWQUxVRVMgKDIs ICdpc3N1ZWQgdG8gJHtjdXJfcHJpbWFyeV9uYW1lfScpOworCVBSRVBBUkUgVFJBTlNBQ1RJ T04gJ3hhY3RfMDA5X3N0YW5kYnlfbXZjYyc7CisJIik7CiskY3VyX3ByaW1hcnktPnN0b3A7 CiskY3VyX3N0YW5kYnktPnJlc3RhcnQ7CisKKyMgQWNxdWlyZSBhIHNuYXBzaG90IGluIHN0 YW5kYnksIGJlZm9yZSB3ZSBjb21taXQgdGhlIHByZXBhcmVkIHRyYW5zYWN0aW9uCitteSAk c3RhbmRieV9zZXNzaW9uID0gJGN1cl9zdGFuZGJ5LT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3Rn cmVzJywgb25fZXJyb3JfZGllID0+IDEpOworJHN0YW5kYnlfc2Vzc2lvbi0+cXVlcnlfc2Fm ZSgiQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRCIpOworJHBzcWxfb3V0 ID0gJHN0YW5kYnlfc2Vzc2lvbi0+cXVlcnlfc2FmZSgKKwkiU0VMRUNUIGNvdW50KCopIEZS T00gdF8wMDlfdGJsX3N0YW5kYnlfbXZjYyIpOworaXMoJHBzcWxfb3V0LCAnMCcsCisJIlBy ZXBhcmVkIHRyYW5zYWN0aW9uIG5vdCB2aXNpYmxlIGluIHN0YW5kYnkgYmVmb3JlIGNvbW1p dCIpOworCisjIENvbW1pdCB0aGUgdHJhbnNhY3Rpb24gaW4gcHJpbWFyeQorJGN1cl9wcmlt YXJ5LT5zdGFydDsKKyRjdXJfcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLCAiCitTRVQgc3lu Y2hyb25vdXNfY29tbWl0PSdyZW1vdGVfYXBwbHknOyAtLSBUbyBlbnN1cmUgdGhlIHN0YW5k YnkgaXMgY2F1Z2h0IHVwCitDT01NSVQgUFJFUEFSRUQgJ3hhY3RfMDA5X3N0YW5kYnlfbXZj YycKKyIpOworCisjIFN0aWxsIG5vdCB2aXNpYmxlIHRvIHRoZSBvbGQgc25hcHNob3QKKyRw c3FsX291dCA9ICRzdGFuZGJ5X3Nlc3Npb24tPnF1ZXJ5X3NhZmUoCisJIlNFTEVDVCBjb3Vu dCgqKSBGUk9NIHRfMDA5X3RibF9zdGFuZGJ5X212Y2MiKTsKK2lzKCRwc3FsX291dCwgJzAn LAorCSJDb21taXR0ZWQgcHJlcGFyZWQgdHJhbnNhY3Rpb24gbm90IHZpc2libGUgdG8gb2xk IHNuYXBzaG90IGluIHN0YW5kYnkiKTsKKworIyBJcyB2aXNpYmxlIHRvIGEgbmV3IHNuYXBz aG90Ciskc3RhbmRieV9zZXNzaW9uLT5xdWVyeV9zYWZlKCJDT01NSVQiKTsKKyRwc3FsX291 dCA9ICRzdGFuZGJ5X3Nlc3Npb24tPnF1ZXJ5X3NhZmUoCisJIlNFTEVDVCBjb3VudCgqKSBG Uk9NIHRfMDA5X3RibF9zdGFuZGJ5X212Y2MiKTsKK2lzKCRwc3FsX291dCwgJzInLAorCSJD b21taXR0ZWQgcHJlcGFyZWQgdHJhbnNhY3Rpb24gaXMgdmlzaWJsZSB0byBuZXcgc25hcHNo b3QgaW4gc3RhbmRieSIpOworCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENoZWNr IGZvciBhIGxvY2sgY29uZmxpY3QgYmV0d2VlbiBwcmVwYXJlZCB0cmFuc2FjdGlvbiB3aXRo IERETCBpbnNpZGUgYW5kCiAjIHJlcGxheSBvZiBYTE9HX1NUQU5EQllfTE9DSyB3YWwgcmVj b3JkLgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA2MWFkNDE3Y2RlLi5kOTA5 ODI0NjZjIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMzkzMSw2ICszOTMx LDcgQEAgc3RyaW5nCiBzdWJzdGl0dXRlX2FjdHVhbF9wYXJhbWV0ZXJzX2NvbnRleHQKIHN1 YnN0aXR1dGVfYWN0dWFsX3NyZl9wYXJhbWV0ZXJzX2NvbnRleHQKIHN1YnN0aXR1dGVfcGh2 X3JlbGlkc19jb250ZXh0CitzdWJ4aWRzX2FycmF5X3N0YXR1cwogc3ltYm9sCiB0YWJsZXNw YWNlaW5mbwogdGRfZW50cnkKLS0gCjIuMzkuMgoK --------------JLe0soaMSA5YkjWQOQYz1VVC--