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 1rsFZV-005ocK-0N for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Apr 2024 05:23:33 +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 1rsFZT-00FB2E-Vx for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Apr 2024 05:23:31 +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 1rsFZT-00FB26-E0 for pgsql-hackers@lists.postgresql.org; Thu, 04 Apr 2024 05:23:31 +0000 Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rsFZQ-000TcA-J0 for pgsql-hackers@lists.postgresql.org; Thu, 04 Apr 2024 05:23:29 +0000 Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-d9b9adaf291so671847276.1 for ; Wed, 03 Apr 2024 22:23:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712208208; x=1712813008; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=C6QnJvKdGca4XgYJtGpIpDhKLIv719mlMOxiluERKgk=; b=DH7IBw3HH8OkFpSWDkW9ALsrLcAup3pnp3rMMPc/Nd9uV+OqWr/Fo0CxIbIaomYfvm EQ4H6bYLvoZSJi8oWBAfUpnDRLrK2RwnYEJKi8NNcaNPo2LF7pStMyWlm6YxFHkTgqkI A4Jy3I20qsVS8Sa8wskDq+Cl+6Z1gANvf6A+YpJikWdt9gjv03NpHLfR/gSqskBFFM1W LFI3kRaptrx2ejlkxI7bgPh+x9KOdy3kh5lOVJ2jog1G2j4PjHKq5jsLjzW6AP0Eid+u E8eLuTI2altngp/jP2I+CmmH3rtpimGZ65nlplJ+B85W5x26LCvzGBr0oHKHXZSE6hkc wVaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712208208; x=1712813008; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=C6QnJvKdGca4XgYJtGpIpDhKLIv719mlMOxiluERKgk=; b=IPfbtC2PoEA14rPHgveqfd5rZoz+GiRV8Cs4lm1J4oDjfQTPbnYs7dg5Z5b5yLlEhC aguiD7WjO0azfDEagjJaVNAiH8ue17/vbjMOyVmwiRoOVaoHK67trd0CaOtpiKcltIgm rIG4Z3ZWp5lqwHi90uHqeeAgut04K0Cw0Esdp2zIcMZZK/aADo2kmbD6uHM+zkoRsmiE HRmENld8ICADYN/rBVKadzljAUIdk6loTBOPDnkoX2eHa/+4PlzTxNmfcmWLaKtJRe6l 0JyOkGkAAag1rdvQailMNoJyIhs0p+VZ6HYD9xri0GcExjjRFZ6hHZ6Tcu1jS7lRb98L +F+w== X-Forwarded-Encrypted: i=1; AJvYcCWDXtWNMF2rWTgKgNGNSZ5Mdu/fKwAwdXKQIOC66qApoacVWR1+3K7/i+Klkg2iZAS2z41N0igysiTT5tWLJSqFT62cXqURIXd4mETVuFawbm0W X-Gm-Message-State: AOJu0Yx9bCkUdqGLHWvnrUlz/ZX0vCxJ09go9B5iOVuENpzBv5y1OBjw Fc9szPxfrx/YoNmIw/70T/nnDeIJQ6PK5LZ2uyF8PeXthWlAByTXETFrHbchWV+gg+6Ry5Z26i5 jGcTev1ONwrim2QvShGkvtWxF3VU= X-Google-Smtp-Source: AGHT+IEWnicpBRz1nm87dTHyACwocvQzwO+A47dGuGvJ6GR7W6dwKCxwr3sWCjcs9U94ooct8FSu6r6Y3yG9pW0jv1Q= X-Received: by 2002:a25:b31e:0:b0:dcb:e432:cb06 with SMTP id l30-20020a25b31e000000b00dcbe432cb06mr1653064ybj.29.1712208207701; Wed, 03 Apr 2024 22:23:27 -0700 (PDT) MIME-Version: 1.0 References: <8fab8-65d74c80-1-2f28e880@39088166> <99df2-65d8d200-1-63c26880@172687752> In-Reply-To: From: Ajin Cherian Date: Thu, 4 Apr 2024 16:23:15 +1100 Message-ID: Subject: Re: Slow catchup of 2PC (twophase) transactions on replica in LR To: =?UTF-8?B?0JTQsNCy0YvQtNC+0LIg0JLQuNGC0LDQu9C40Lk=?= Cc: Heikki Linnakangas , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000008dca06153e8a57" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000008dca06153e8a57 Content-Type: multipart/alternative; boundary="000000000000008dc406153e8a55" --000000000000008dc406153e8a55 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 6, 2024 at 1:29=E2=80=AFAM =D0=94=D0=B0=D0=B2=D1=8B=D0=B4=D0=BE= =D0=B2 =D0=92=D0=B8=D1=82=D0=B0=D0=BB=D0=B8=D0=B9 wrote: > In usual work, the subscription has two_phase =3D on. I have to change th= is > option at catchup stage only, but this parameter can not be altered. Ther= e > was a patch proposal in past to implement altering of two_phase option, b= ut > it was rejected. I think, the recreation of the subscription with two_pha= se > =3D off will not work. > > > The altering of two_phase was restricted because if there was a previously prepared transaction on the subscriber when the two_phase was on, and then it was turned off, the apply worker on the subscriber would re-apply the transaction a second time and this might result in an inconsistent replica. Here's a patch that allows toggling two_phase option provided that there are no pending uncommitted prepared transactions on the subscriber for that subscription. Thanks to Kuroda-san for working on the patch. regards, Ajin Cherian Fujitsu Australia --000000000000008dc406153e8a55 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Wed, Mar 6, 2024 at 1:29=E2=80=AFA= M =D0=94=D0=B0=D0=B2=D1=8B=D0=B4=D0=BE=D0=B2 =D0=92=D0=B8=D1=82=D0=B0=D0=BB= =D0=B8=D0=B9 <v.davydov@post= grespro.ru> wrote:
In usual work, the subscription has two_phase =3D on. I have to = change this option at catchup stage only, but this parameter can not be alt= ered. There was a patch proposal in past to implement altering of two_phase= option, but it was rejected. I think, the recreation of the subscription w= ith two_phase =3D off will not work.



The altering of two_phase was restricted because if there was a previ= ously prepared transaction on the subscriber when the two_phase was on, and= then it was turned off, the apply worker on the subscriber would re-apply = the transaction a second time and this might result in an inconsistent repl= ica.
Here's a patch that allows toggling two_phase option= provided that there are no pending uncommitted prepared transactions on th= e subscriber for that subscription.

Thanks to Kuro= da-san for working on the patch.

regards,
Ajin Cherian
Fujitsu Australia
--000000000000008dc406153e8a55-- --000000000000008dca06153e8a57 Content-Type: application/octet-stream; name="v1-0001-Allow-altering-of-two_phase-option-in-subscribers.patch" Content-Disposition: attachment; filename="v1-0001-Allow-altering-of-two_phase-option-in-subscribers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_luksim0k0 RnJvbSBiYjE5ZGI5YmQ0ZTczZDg4OTJmMjAyZmI3Yjg3NzFjMjVhMDMzNjgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBamluIENoZXJpYW4gPGFqaW5jQGZhc3QuYXUuZnVqaXRzdS5j b20+CkRhdGU6IFRodSwgNCBBcHIgMjAyNCAwMToxNzoyOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djFdIEFsbG93IGFsdGVyaW5nIG9mIHR3b19waGFzZSBvcHRpb24gaW4gc3Vic2NyaWJlcnMKClRo aXMgcGF0Y2ggYWxsb3dzIHVzZXIgdG8gYWx0ZXIgdHdvX3BoYXNlIG9wdGlvbiBvbiBhIHN1YnNj cmliZXIgcHJvdmlkZWQgbm8gdW5jb21taXR0ZWQKcHJlcGFyZWQgdHJhbnNhY3Rpb25zIGFyZSBw ZW5kaW5nIG9uIHRoYXQgc3Vic2NyaXB0aW9uLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3R3b3BoYXNlLmMgICAgICB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgIHwgMzUgKysrKysrKysr KysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hl ci5jIHwgMjIgKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC93b3JrZXIuYyAgIHwgIDMgLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdHdvcGhhc2UuaCAgICAg ICAgICAgICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hl ci5oICB8ICAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDExIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNl LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFzZS5jCmluZGV4IDgwOTBhYzku LmIwYWFlMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNl LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYwpAQCAtMjY4Miwz ICsyNjgyLDQ1IEBAIExvb2t1cEdYYWN0KGNvbnN0IGNoYXIgKmdpZCwgWExvZ1JlY1B0ciBwcmVw YXJlX2VuZF9sc24sCiAJTFdMb2NrUmVsZWFzZShUd29QaGFzZVN0YXRlTG9jayk7CiAJcmV0dXJu IGZvdW5kOwogfQorCisvKgorICogY2hlY2tHaWQKKyAqLworc3RhdGljIGJvb2wKK2NoZWNrR2lk KGNoYXIgKmdpZCwgT2lkIHN1YmlkKQoreworCWludCByZXQ7CisJT2lkIHN1YmlkX3dyaXR0ZW4s IHhpZDsKKworCXJldCA9IHNzY2FuZihnaWQsICJwZ19naWRfJXVfJXUiLCAmc3ViaWRfd3JpdHRl biwgJnhpZCk7CisKKwlpZiAocmV0ICE9IDIgfHwgc3ViaWQgIT0gc3ViaWRfd3JpdHRlbikKKwkJ cmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBMb29rdXBHWGFjdEJ5 U3ViaWQKKyAqCQlDaGVjayBpZiB0aGUgcHJlcGFyZWQgdHJhbnNhY3Rpb24gZG9uZSBieSBhcHBs eSB3b3JrZXIgZXhpc3RzLgorICovCitib29sCitMb29rdXBHWGFjdEJ5U3ViaWQoT2lkIHN1Ymlk KQoreworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwlMV0xvY2tBY3F1aXJlKFR3b1BoYXNlU3Rh dGVMb2NrLCBMV19TSEFSRUQpOworCWZvciAoaW50IGkgPSAwOyBpIDwgVHdvUGhhc2VTdGF0ZS0+ bnVtUHJlcFhhY3RzOyBpKyspCisJeworCQlHbG9iYWxUcmFuc2FjdGlvbiBneGFjdCA9IFR3b1Bo YXNlU3RhdGUtPnByZXBYYWN0c1tpXTsKKworCQkvKiBJZ25vcmUgbm90LXlldC12YWxpZCBHSURz LiAqLworCQlpZiAoZ3hhY3QtPnZhbGlkICYmCWNoZWNrR2lkKGd4YWN0LT5naWQsIHN1YmlkKSkK KwkJeworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisJTFdMb2NrUmVsZWFz ZShUd29QaGFzZVN0YXRlTG9jayk7CisJcmV0dXJuIGZvdW5kOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDVhNDdmYTkuLjgzMDY5MjkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1 ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNp bmNsdWRlICJhY2Nlc3MvdHdvcGhhc2UuaCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5o IgpAQCAtODY4LDcgKzg2OSw3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJcGdzdGF0X2NyZWF0ZV9zdWJzY3Jp cHRpb24oc3ViaWQpOwogCiAJaWYgKG9wdHMuZW5hYmxlZCkKLQkJQXBwbHlMYXVuY2hlcldha2V1 cEF0Q29tbWl0KCk7CisJCUFwcGx5TGF1bmNoZXJXYWtldXBBdEVPWGFjdCh0cnVlKTsKIAogCU9i amVjdEFkZHJlc3NTZXQobXlzZWxmLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCk7CiAK QEAgLTExNjUsNyArMTE2Niw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJewogCQkJCXN1cHBvcnRlZF9vcHRz ID0gKFNVQk9QVF9TTE9UX05BTUUgfAogCQkJCQkJCQkgIFNVQk9QVF9TWU5DSFJPTk9VU19DT01N SVQgfCBTVUJPUFRfQklOQVJZIHwKLQkJCQkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BU X0RJU0FCTEVfT05fRVJSIHwKKwkJCQkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BUX1RX T1BIQVNFX0NPTU1JVCB8CisJCQkJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwKIAkJCQkJ CQkJICBTVUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQgfAogCQkJCQkJCQkgIFNVQk9QVF9SVU5fQVNf T1dORVIgfCBTVUJPUFRfRkFJTE9WRVIgfAogCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4pOwpAQCAt MTE3Myw2ICsxMTc1LDMxIEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRp b25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywg Jm9wdHMpOwogCisJCQkJLyogWFhYICovCisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29w dHMsIFNVQk9QVF9UV09QSEFTRV9DT01NSVQpKQorCQkJCXsKKwkJCQkJLyogU3RvcCBjb3JyZXNw b25kaW5nIHdvcmtlciAqLworCQkJCQlsb2dpY2FscmVwX3dvcmtlcl9zdG9wKHN1YmlkLCBJbnZh bGlkT2lkKTsKKworCQkJCQkvKiBSZXF1ZXN0IHRvIHN0YXJ0IHdvcmtlciBhdCB0aGUgZW5kIG9m IHRyYW5zYWN0aW9uICovCisJCQkJCUFwcGx5TGF1bmNoZXJXYWtldXBBdEVPWGFjdChmYWxzZSk7 CisKKwkJCQkJLyogQ2hlY2sgd2hldGhlciB0aGUgbnVtYmVyIG9mIHByZXBhcmVkIHRyYW5zYWN0 aW9ucyAqLworCQkJCQlpZiAoIW9wdHMudHdvcGhhc2UgJiYKKwkJCQkJCWZvcm0tPnN1YnR3b3Bo YXNlc3RhdGUgPT0gTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFURV9FTkFCTEVEICYmCisJCQkJCQlM b29rdXBHWGFjdEJ5U3ViaWQoc3ViaWQpKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJ CQkJCSBlcnJtc2coImNhbm5vdCBkaXNhYmxlIHR3b19waGFzZSB3aGVuIHVuY29tbWl0dGVkIHBy ZXBhcmVkIHRyYW5zYWN0aW9ucyBwcmVzZW50IikpKTsKKworCQkJCQkvKiBDaGFuZ2Ugc3lzdGVt IGNhdGFsb2cgYWNvb3JkaW5nbHkgKi8KKwkJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1YnR3b3BoYXNlc3RhdGUgLSAxXSA9CisJCQkJCQlDaGFyR2V0RGF0dW0ob3B0cy50d29waGFz ZSA/CisJCQkJCQkJCQkgTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFURV9QRU5ESU5HIDoKKwkJCQkJ CQkJCSBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX0RJU0FCTEVEKTsKKwkJCQkJcmVwbGFjZXNb QW51bV9wZ19zdWJzY3JpcHRpb25fc3VidHdvcGhhc2VzdGF0ZSAtIDFdID0gdHJ1ZTsKKwkJCQl9 CisKIAkJCQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX1NMT1RfTkFNRSkp CiAJCQkJewogCQkJCQkvKgpAQCAtMTI5OSw3ICsxMzI2LDcgQEAgQWx0ZXJTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJcmVw bGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViZW5hYmxlZCAtIDFdID0gdHJ1ZTsKIAogCQkJ CWlmIChvcHRzLmVuYWJsZWQpCi0JCQkJCUFwcGx5TGF1bmNoZXJXYWtldXBBdENvbW1pdCgpOwor CQkJCQlBcHBseUxhdW5jaGVyV2FrZXVwQXRFT1hhY3QodHJ1ZSk7CiAKIAkJCQl1cGRhdGVfdHVw bGUgPSB0cnVlOwogCQkJCWJyZWFrOwpAQCAtMTk2Miw3ICsxOTg5LDcgQEAgQWx0ZXJTdWJzY3Jp cHRpb25Pd25lcl9pbnRlcm5hbChSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXAsIE9pZCBuZXdP d25lcklkKQogCQkJCQkJCSAgZm9ybS0+b2lkLCAwKTsKIAogCS8qIFdha2UgdXAgcmVsYXRlZCBi YWNrZ3JvdW5kIHByb2Nlc3NlcyB0byBoYW5kbGUgdGhpcyBjaGFuZ2UgcXVpY2tseS4gKi8KLQlB cHBseUxhdW5jaGVyV2FrZXVwQXRDb21taXQoKTsKKwlBcHBseUxhdW5jaGVyV2FrZXVwQXRFT1hh Y3QodHJ1ZSk7CiAJTG9naWNhbFJlcFdvcmtlcnNXYWtldXBBdENvbW1pdChmb3JtLT5vaWQpOwog fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVy LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMKaW5kZXggNjYw NzBlOS4uODk5ZWMyMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9sYXVuY2hlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNo ZXIuYwpAQCAtODksNiArODksNyBAQCBzdGF0aWMgZHNhX2FyZWEgKmxhc3Rfc3RhcnRfdGltZXNf ZHNhID0gTlVMTDsKIHN0YXRpYyBkc2hhc2hfdGFibGUgKmxhc3Rfc3RhcnRfdGltZXMgPSBOVUxM OwogCiBzdGF0aWMgYm9vbCBvbl9jb21taXRfbGF1bmNoZXJfd2FrZXVwID0gZmFsc2U7CitzdGF0 aWMgYm9vbCBsYXVuY2hlcl93YWtldXAgPSBmYWxzZTsKIAogCiBzdGF0aWMgdm9pZCBBcHBseUxh dW5jaGVyV2FrZXVwKHZvaWQpOwpAQCAtMTA4NSwxMyArMTA4NiwyMiBAQCBBcHBseUxhdW5jaGVy Rm9yZ2V0V29ya2VyU3RhcnRUaW1lKE9pZCBzdWJpZCkKIHZvaWQKIEF0RU9YYWN0X0FwcGx5TGF1 bmNoZXIoYm9vbCBpc0NvbW1pdCkKIHsKKwlib29sIGtpY2tlZCA9IGZhbHNlOworCiAJaWYgKGlz Q29tbWl0KQogCXsKIAkJaWYgKG9uX2NvbW1pdF9sYXVuY2hlcl93YWtldXApCisJCXsKIAkJCUFw cGx5TGF1bmNoZXJXYWtldXAoKTsKKwkJCWtpY2tlZCA9IHRydWU7CisJCX0KIAl9CiAKKwlpZiAo IWtpY2tlZCAmJiBsYXVuY2hlcl93YWtldXApCisJCUFwcGx5TGF1bmNoZXJXYWtldXAoKTsKKwog CW9uX2NvbW1pdF9sYXVuY2hlcl93YWtldXAgPSBmYWxzZTsKKwlsYXVuY2hlcl93YWtldXAgPSBm YWxzZTsKIH0KIAogLyoKQEAgLTExMDIsMTAgKzExMTIsMTYgQEAgQXRFT1hhY3RfQXBwbHlMYXVu Y2hlcihib29sIGlzQ29tbWl0KQogICogdHVwbGUgd2FzIGFkZGVkIHRvIHRoZSBwZ19zdWJzY3Jp cHRpb24gY2F0YWxvZy4KICovCiB2b2lkCi1BcHBseUxhdW5jaGVyV2FrZXVwQXRDb21taXQodm9p ZCkKK0FwcGx5TGF1bmNoZXJXYWtldXBBdEVPWGFjdChib29sIG9uX2NvbW1pdCkKIHsKLQlpZiAo IW9uX2NvbW1pdF9sYXVuY2hlcl93YWtldXApCi0JCW9uX2NvbW1pdF9sYXVuY2hlcl93YWtldXAg PSB0cnVlOworCWlmIChvbl9jb21taXQpCisJeworCQlpZiAoIW9uX2NvbW1pdF9sYXVuY2hlcl93 YWtldXApCisJCQlvbl9jb21taXRfbGF1bmNoZXJfd2FrZXVwID0gdHJ1ZTsKKwl9CisJZWxzZQor CQlpZiAoIWxhdW5jaGVyX3dha2V1cCkKKwkJCWxhdW5jaGVyX3dha2V1cCA9IHRydWU7CiB9CiAK IHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRl eCBiNWE4MGZlLi5jYTNkMjYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29y a2VyLmMKQEAgLTM5MTEsOSArMzkxMSw2IEBAIG1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24odm9p ZCkKIAkvKiAhc2xvdG5hbWUgc2hvdWxkIG5ldmVyIGhhcHBlbiB3aGVuIGVuYWJsZWQgaXMgdHJ1 ZS4gKi8KIAlBc3NlcnQobmV3c3ViLT5zbG90bmFtZSk7CiAKLQkvKiB0d28tcGhhc2Ugc2hvdWxk IG5vdCBiZSBhbHRlcmVkICovCi0JQXNzZXJ0KG5ld3N1Yi0+dHdvcGhhc2VzdGF0ZSA9PSBNeVN1 YnNjcmlwdGlvbi0+dHdvcGhhc2VzdGF0ZSk7Ci0KIAkvKgogCSAqIEV4aXQgaWYgYW55IHBhcmFt ZXRlciB0aGF0IGFmZmVjdHMgdGhlIHJlbW90ZSBjb25uZWN0aW9uIHdhcyBjaGFuZ2VkLgogCSAq IFRoZSBsYXVuY2hlciB3aWxsIHN0YXJ0IGEgbmV3IHdvcmtlciBidXQgbm90ZSB0aGF0IHRoZSBw YXJhbGxlbCBhcHBseQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3R3b3BoYXNlLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvdHdvcGhhc2UuaAppbmRleCA1NjI0OGMwLi5kNDkzZWQyIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdHdvcGhhc2UuaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvdHdvcGhhc2UuaApAQCAtNjIsNCArNjIsNyBAQCBleHRlcm4gdm9pZCBQcmVwYXJl UmVkb1JlbW92ZShUcmFuc2FjdGlvbklkIHhpZCwgYm9vbCBnaXZlV2FybmluZyk7CiBleHRlcm4g dm9pZCByZXN0b3JlVHdvUGhhc2VEYXRhKHZvaWQpOwogZXh0ZXJuIGJvb2wgTG9va3VwR1hhY3Qo Y29uc3QgY2hhciAqZ2lkLCBYTG9nUmVjUHRyIHByZXBhcmVfZW5kX2xzbiwKIAkJCQkJCVRpbWVz dGFtcFR6IG9yaWdpbl9wcmVwYXJlX3RpbWVzdGFtcCk7CisKK2V4dGVybiBib29sIExvb2t1cEdY YWN0QnlTdWJpZChPaWQgc3ViaWQpOworCiAjZW5kaWYJCQkJCQkJLyogVFdPUEhBU0VfSCAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmggYi9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaAppbmRleCBmZjA0MzhiLi4w NzU4NDJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNo ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaApAQCAt MjQsNyArMjQsNyBAQCBleHRlcm4gdm9pZCBBcHBseUxhdW5jaGVyU2htZW1Jbml0KHZvaWQpOwog CiBleHRlcm4gdm9pZCBBcHBseUxhdW5jaGVyRm9yZ2V0V29ya2VyU3RhcnRUaW1lKE9pZCBzdWJp ZCk7CiAKLWV4dGVybiB2b2lkIEFwcGx5TGF1bmNoZXJXYWtldXBBdENvbW1pdCh2b2lkKTsKK2V4 dGVybiB2b2lkIEFwcGx5TGF1bmNoZXJXYWtldXBBdEVPWGFjdChib29sIG9uX2NvbW1pdCk7CiBl eHRlcm4gdm9pZCBBdEVPWGFjdF9BcHBseUxhdW5jaGVyKGJvb2wgaXNDb21taXQpOwogCiBleHRl cm4gYm9vbCBJc0xvZ2ljYWxMYXVuY2hlcih2b2lkKTsKLS0gCjEuOC4zLjEKCg== --000000000000008dca06153e8a57--