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 1uOs2Y-00Ckik-Vq for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Jun 2025 06:00:55 +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 1uOs2W-000NG0-T5 for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Jun 2025 06:00:53 +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 1uOs2W-000NFs-B2 for pgsql-hackers@lists.postgresql.org; Tue, 10 Jun 2025 06:00:53 +0000 Received: from mail-vk1-xa30.google.com ([2607:f8b0:4864:20::a30]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uOs2V-001CNH-0b for pgsql-hackers@postgresql.org; Tue, 10 Jun 2025 06:00:52 +0000 Received: by mail-vk1-xa30.google.com with SMTP id 71dfb90a1353d-53119fe46d8so30178e0c.1 for ; Mon, 09 Jun 2025 23:00:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749535250; x=1750140050; darn=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=Ubct0N3/M/EK6euGlhuyzvHAca9nkCLwdmPFoKzqgwc=; b=cQ5Zylmf8OzbTlP/pr+O3y3STViX+iaavi7906DJ+q/TFUcxm/1LoeWfODDr/BC2/9 LLtw80A7UBy+0+sFseVaMvQBPQE3tBMqt5vySYPPhhft4YJDZtOlpRBwFsrKSwBXxHdw cVUd0C56C1/0yGm46ACugoo//g4mjEOxT2hN5qZCgy/6rll796W9qUpEvkIOnJ+RH5tx xMnasAsENvbmkHeP9mAtq38CzRKZoi91eHJLuEMZRePUp3PLVNKxjLtJGlVLNbU9DGpW iux+eyQqz5tnl+a7MW5u4rHZszTFug45qA7m9P7WwtQTyLIXDOhCuXIBQ30/VeBx5Uve LY/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749535250; x=1750140050; 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=Ubct0N3/M/EK6euGlhuyzvHAca9nkCLwdmPFoKzqgwc=; b=tdFqb0sCo2wbpQcviDIvbRpv2D0gyq5nwf0+yVRBLwXutRbs0KCYsICj3mbWwedIw+ xekycjMnFM4DDQMtGSuVp6VDALwNNj8GxCfOMAqnylM8sCxvQqS8987/Ab0yCNv5oQBQ zqxftoR+VHtGVf2br3R5aDYgFDJQPWuDP8z1f2DpFk/A/cpK4OdI5Y7i8qn7ha0X3xoI qI+ZFiGWtnyME9gvBcieleyl8IaAarb+xFxdnwE48OKoP0TUdc6HfndAHlWwB986g28U bGNGFPBcufZlAhAvWXIcuYYP6C8RjV/QzETl+cxjL+ATiD5iJ61Ao7k1SWyUaOttmM8Y XDRA== X-Forwarded-Encrypted: i=1; AJvYcCXbJKRIyeKQwc+UlodX1GgFd9SHe6OgRfuwKzm7VRFQnIdms+UD8PSY8zNghUsIRTOohS0SvgreJYcnzxSj@postgresql.org X-Gm-Message-State: AOJu0YzP4W6O/XcbLuhgQOgVOF8L3ivz0Q8g9xBGoIdPjHR5tm9nQFMM 8oISheMN6T8NBNjCjWEKZvqJv/wV/3w5A+1+MqlYNiMH7B2Afoa6+Y7u9mjh4ZUQJxmek0lvYfi Q952HOve5gwNVppziSY1maKbvKqen01M= X-Gm-Gg: ASbGncsw0VXN6htbjHyyyRRa7s4PpxmZnhpPBkT8LJlgp7oNxt/oxrvfOQmTtFIsmaH eLeffUM5MjBIATtusev0BrphO5lhoa9bnGDvet6n2WPWyYmtmv10AgPyAGc5USR1YOJMmFZ4ePx UxDehiJxRCuXbA7lRdRbGv/5B4DmeioFXAiLjTnSegJxg= X-Google-Smtp-Source: AGHT+IGSoJNpg/NEh+hcQSbvGaeeM5d824iRylHKQt9dfjH0RByjunDmoCEjjKe6cZ0TYgMCtynd4KxdNM4In3zpSGA= X-Received: by 2002:a05:6122:641b:10b0:530:6dc2:ba97 with SMTP id 71dfb90a1353d-53114a7ebc9mr625458e0c.2.1749535250300; Mon, 09 Jun 2025 23:00:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Mihail Nikalayeu Date: Tue, 10 Jun 2025 08:00:00 +0200 X-Gm-Features: AX0GCFtiDN26FXVQkzQgAa2GROPTUzoecXU1PVSmU-GK7psXLNVvu3kMpzP17_8 Message-ID: Subject: Re: [BUG?] check_exclusion_or_unique_constraint false negative To: "Zhijie Hou (Fujitsu)" , Peter Geoghegan Cc: Amit Kapila , "Hayato Kuroda (Fujitsu)" , PostgreSQL Hackers , Andres Freund Content-Type: multipart/mixed; boundary="0000000000001de6440637316b56" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001de6440637316b56 Content-Type: text/plain; charset="UTF-8" Hello! Rebased\reworked to align with the changes of [0]. Best regards. [0]: https://www.postgresql.org/message-id/flat/CAH2-WznZBhWqDBDVGh1VhVBLgLqaYHEkPhmVV7mJCr1Y3ZQhQQ%40mail.gmail.com#d6f1debb1405d1b4a983cbb46b24f41b --0000000000001de6440637316b56 Content-Type: application/x-patch; name="v7-0001-Add-an-isolation-test-to-reproduce-a-dirty-snapsh.patch" Content-Disposition: attachment; filename="v7-0001-Add-an-isolation-test-to-reproduce-a-dirty-snapsh.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbpm0hui1 RnJvbSAxMzkzNGJkMGIzNTg4ZTcxYTk2MjI4ZjMxMzk1YWI2NjFlMGU3NDlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyMyBOb3YgMjAyNCAxMzoyNToxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjcgMS8y XSBBZGQgYW4gaXNvbGF0aW9uIHRlc3QgdG8gcmVwcm9kdWNlIGEgZGlydHkgc25hcHNob3QKIHNj YW4gaXNzdWUKClRoaXMgY29tbWl0IGludHJvZHVjZXMgYW4gaXNvbGF0aW9uIHRlc3QgdG8gcmVs aWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZSB3aGVyZSBub24tTVZDQyBpbmRleCBzY2FucyB1c2lu ZyBTbmFwc2hvdERpcnR5IGNhbiBtaXNzIHR1cGxlcyBkdWUgdG8gY29uY3VycmVudCBtb2RpZmlj YXRpb25zLgpXaGVuIHVzaW5nIG5vbi1NVkNDIHNuYXBzaG90IHR5cGVzLCBhIHNjYW4gY291bGQg bWlzcyB0dXBsZXMgaWYgY29uY3VycmVudCB0cmFuc2FjdGlvbnMgZGVsZXRlIGV4aXN0aW5nIHR1 cGxlcyBhbmQgaW5zZXJ0IG5ldyBvbmUgd2l0aCBkaWZmZXJlbnQgVElEcyBvbiB0aGUgc2FtZSBw YWdlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMgICAgICAgICAgICB8 ICA4ICsrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jICAgICAgICAgICB8 ICAzICsrCiBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUgICAgfCAg MiArLQogLi4uL2V4cGVjdGVkL2RpcnR5X2luZGV4X3NjYW4ub3V0ICAgICAgICAgICAgIHwgMjcg KysrKysrKysrKysrKysKIHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5i dWlsZCB8ICAxICsKIC4uLi9zcGVjcy9kaXJ0eV9pbmRleF9zY2FuLnNwZWMgICAgICAgICAgICAg ICB8IDM3ICsrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMv aW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9kaXJ0eV9pbmRleF9zY2FuLm91dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9kaXJ0eV9p bmRleF9zY2FuLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5k ZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwppbmRleCAyMTlkZjE5 NzFkYS4uNjc2ZTA2YzA5NWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9p bmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtNTcs NiArNTcsNyBAQAogI2luY2x1ZGUgInV0aWxzL3J1bGV1dGlscy5oIgogI2luY2x1ZGUgInV0aWxz L3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxz L2luamVjdGlvbl9wb2ludC5oIgogCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTc0MSw2ICs3NDIsMTMgQEAg aW5kZXhfZ2V0bmV4dF9zbG90KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXJl Y3Rpb24sIFR1cGxlVGFibGVTbG90ICoKIAkJICogdGhlIGluZGV4LgogCQkgKi8KIAkJQXNzZXJ0 KEl0ZW1Qb2ludGVySXNWYWxpZCgmc2Nhbi0+eHNfaGVhcHRpZCkpOworI2lmZGVmIFVTRV9JTkpF Q1RJT05fUE9JTlRTCisJCWlmICghSXNDYXRhbG9nUmVsYXRpb25PaWQoc2Nhbi0+aW5kZXhSZWxh dGlvbi0+cmRfaWQpKQorCQl7CisJCQlJTkpFQ1RJT05fUE9JTlQoImluZGV4X2dldG5leHRfc2xv dF9iZWZvcmVfZmV0Y2giLCBOVUxMKTsKKwkJfQorI2VuZGlmCisKIAkJaWYgKGluZGV4X2ZldGNo X2hlYXAoc2Nhbiwgc2xvdCkpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCmluZGV4IGJkZjg2MmIyNDA2Li4zNjc0OGIzOWU2OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0luZGV4aW5nLmMKQEAgLTExNyw2ICsxMTcsNyBAQAogI2luY2x1ZGUgInV0aWxz L211bHRpcmFuZ2V0eXBlcy5oIgogI2luY2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNpbmNs dWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50Lmgi CiAKIC8qIHdhaXRNb2RlIGFyZ3VtZW50IHRvIGNoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29u c3RyYWludCgpICovCiB0eXBlZGVmIGVudW0KQEAgLTk0Myw2ICs5NDQsOCBAQCByZXRyeToKIAog CUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3QoZXhpc3Rpbmdfc2xvdCk7CiAKKwlpZiAoIWNv bmZsaWN0KQorCQlJTkpFQ1RJT05fUE9JTlQoImNoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29u c3RyYWludF9ub19jb25mbGljdCIsIE5VTEwpOwogCXJldHVybiAhY29uZmxpY3Q7CiB9CiAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZSBiL3Ny Yy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQppbmRleCBlNjgwOTkxZjhk NC4uYjczZjhhYzgwZjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3Bv aW50cy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFr ZWZpbGUKQEAgLTE0LDcgKzE0LDcgQEAgUEdGSUxFREVTQyA9ICJpbmplY3Rpb25fcG9pbnRzIC0g ZmFjaWxpdHkgZm9yIGluamVjdGlvbiBwb2ludHMiCiBSRUdSRVNTID0gaW5qZWN0aW9uX3BvaW50 cyBoYXNoYWdnIHJlaW5kZXhfY29uYwogUkVHUkVTU19PUFRTID0gLS1kbHBhdGg9JCh0b3BfYnVp bGRkaXIpL3NyYy90ZXN0L3JlZ3Jlc3MKIAotSVNPTEFUSU9OID0gYmFzaWMgaW5wbGFjZSBzeXNj YWNoZS11cGRhdGUtcHJ1bmVkCitJU09MQVRJT04gPSBiYXNpYyBpbnBsYWNlIHN5c2NhY2hlLXVw ZGF0ZS1wcnVuZWQgZGlydHlfaW5kZXhfc2NhbgogCiBUQVBfVEVTVFMgPSAxCiAKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9kaXJ0eV9pbmRl eF9zY2FuLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9k aXJ0eV9pbmRleF9zY2FuLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uYzI4NmE5ZmQ1YjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvZXhwZWN0ZWQvZGlydHlfaW5kZXhfc2Nhbi5vdXQKQEAgLTAsMCArMSwyNyBA QAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDMgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRp b246IHMxX3MxIHMyX3MxIHMzX3MxCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAg czFfczE6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUyg0MiwgMSkgb24gY29uZmxpY3QoaSkg ZG8gdXBkYXRlIHNldCBuID0gRVhDTFVERUQubiArIDE7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJf czE6IFVQREFURSB0ZXN0LnRibCBTRVQgbiA9IG4gKyAxIFdIRVJFIGkgPSA0MjsgPHdhaXRpbmcg Li4uPgorc3RlcCBzM19zMTogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdpbmRl eF9nZXRuZXh0X3Nsb3RfYmVmb3JlX2ZldGNoJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNf d2FrZXVwKCdpbmRleF9nZXRuZXh0X3Nsb3RfYmVmb3JlX2ZldGNoJyk7CisgPHdhaXRpbmcgLi4u Pgorc3RlcCBzMV9zMTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyX3MxOiA8Li4uIGNvbXBsZXRl ZD4KK3N0ZXAgczNfczE6IDwuLi4gY29tcGxldGVkPgoraW5qZWN0aW9uX3BvaW50c19kZXRhY2gK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93 KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21v ZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9tZXNvbi5idWlsZAppbmRleCBkNjExNDk3MTJmZC4uYmIzODY5ZjlhNzUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5idWls ZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQKQEAg LTQ3LDYgKzQ3LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ2Jhc2ljJywKICAgICAgICdpbnBsYWNl JywKICAgICAgICdzeXNjYWNoZS11cGRhdGUtcHJ1bmVkJywKKyAgICAgICdkaXJ0eV9pbmRleF9z Y2FuJywKICAgICBdLAogICAgICdydW5uaW5nY2hlY2snOiBmYWxzZSwgIyBzZWUgc3lzY2FjaGUt dXBkYXRlLXBydW5lZAogICB9LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rp b25fcG9pbnRzL3NwZWNzL2RpcnR5X2luZGV4X3NjYW4uc3BlYyBiL3NyYy90ZXN0L21vZHVsZXMv aW5qZWN0aW9uX3BvaW50cy9zcGVjcy9kaXJ0eV9pbmRleF9zY2FuLnNwZWMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM3M2JjYWY0OTI5Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2RpcnR5X2luZGV4X3Nj YW4uc3BlYwpAQCAtMCwwICsxLDM3IEBACitzZXR1cAoreworCUNSRUFURSBFWFRFTlNJT04gaW5q ZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFVOTE9HR0VEIFRB QkxFIHRlc3QudGJsKGkgaW50IHByaW1hcnkga2V5LCBuIGludCk7CisJQ1JFQVRFIElOREVYIHRi bF9uX2lkeCBPTiB0ZXN0LnRibChuKTsKKwlJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoNDIs MSk7Cit9CisKK3RlYXJkb3duCit7CisJRFJPUCBTQ0hFTUEgdGVzdCBDQVNDQURFOworCURST1Ag RVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9CisKK3Nlc3Npb24gczEKK3NldHVwCXsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19hdHRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25m bGljdCcsICdlcnJvcicpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnaW5kZXhf Z2V0bmV4dF9zbG90X2JlZm9yZV9mZXRjaCcsICd3YWl0Jyk7Cit9CisKK3N0ZXAgczFfczEJeyBJ TlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoNDIsIDEpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0 ZSBzZXQgbiA9IEVYQ0xVREVELm4gKyAxOyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgczJfczEJeyBV UERBVEUgdGVzdC50YmwgU0VUIG4gPSBuICsgMSBXSEVSRSBpID0gNDI7IH0KKworc2Vzc2lvbiBz Mworc3RlcCBzM19zMQkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnaW5kZXhf Z2V0bmV4dF9zbG90X2JlZm9yZV9mZXRjaCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgnaW5kZXhfZ2V0bmV4dF9zbG90X2JlZm9yZV9mZXRjaCcpOworfQorCitwZXJtdXRhdGlv bgorCXMxX3MxCisJczJfczEoKikKKwlzM19zMShzMV9zMSkKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCi0tIAoyLjQzLjAKCg== --0000000000001de6440637316b56 Content-Type: application/x-patch; name="v7-0002-Fix-btree-index-scan-concurrency-issues-with-dirt.patch" Content-Disposition: attachment; filename="v7-0002-Fix-btree-index-scan-concurrency-issues-with-dirt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbpm0hud0 RnJvbSAyNjEzNjFiMDAxNmE3MjlhNDZiNmI4YTI0NTQ4NjQ1ZjExOGZkNzliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtoYWlsIE5pa2FsYXlldSA8bWloYWlsbmlrYWxheWV1QGdt YWlsLmNvbT4KRGF0ZTogTW9uLCA5IEp1biAyMDI1IDIzOjMxOjE4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCB2NyAyLzJdIEZpeCBidHJlZSBpbmRleCBzY2FuIGNvbmN1cnJlbmN5IGlzc3VlcyB3aXRo IGRpcnR5IAogc25hcHNob3RzCgpUaGlzIHBhdGNoIGFkZHJlc3NlcyBhbiBpc3N1ZSB3aGVyZSBu b24tTVZDQyBpbmRleCBzY2FucyB1c2luZyBTbmFwc2hvdERpcnR5Cm9yIFNuYXBzaG90U2VsZiBj b3VsZCBtaXNzIHR1cGxlcyBkdWUgdG8gY29uY3VycmVudCBtb2RpZmljYXRpb25zLiBUaGUgZml4 CnJldGFpbnMgcmVhZCBsb2NrcyBvbiBwYWdlcyBmb3IgdGhlc2Ugc3BlY2lhbCBzbmFwc2hvdCB0 eXBlcyB1bnRpbCB0aGUgc2NhbgppcyBkb25lIHdpdGggdGhlIHBhZ2UncyB0dXBsZXMsIHByZXZl bnRpbmcgY29uY3VycmVudCBtb2RpZmljYXRpb25zIGZyb20KY2F1c2luZyBpbmNvbnNpc3RlbnQg cmVzdWx0cy4KClVwZGF0ZWQgUkVBRE1FIHRvIGRvY3VtZW50IHRoaXMgc3BlY2lhbCBjYXNlIGlu IHRoZSBidHJlZSBsb2NraW5nIG1lY2hhbmlzbS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL1JFQURNRSAgICAgIHwgMTMgKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnRyZWUuYyAgICB8IDE5ICsrKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c2VhcmNoLmMgfCAxNiArKysrKysrKysrKystLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMgIHwgIDQgKysrLQogc3JjL2luY2x1ZGUvYWNjZXNz L25idHJlZS5oICAgICAgICAgICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL1JFQURNRSBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvUkVBRE1FCmluZGV4IDUzZDRh NjFkYzNmLi5hOTI4MDQxNTYzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9SRUFETUUKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9SRUFETUUKQEAgLTg1LDcg Kzg1LDggQEAgbW92ZSByaWdodCB1bnRpbCB3ZSBmaW5kIGEgcGFnZSB3aG9zZSByaWdodC1saW5r IG1hdGNoZXMgdGhlIHBhZ2Ugd2UKIGNhbWUgZnJvbS4gIChBY3R1YWxseSwgaXQncyBldmVuIGhh cmRlciB0aGFuIHRoYXQ7IHNlZSBwYWdlIGRlbGV0aW9uCiBkaXNjdXNzaW9uIGJlbG93LikKIAot UGFnZSByZWFkIGxvY2tzIGFyZSBoZWxkIG9ubHkgZm9yIGFzIGxvbmcgYXMgYSBzY2FuIGlzIGV4 YW1pbmluZyBhIHBhZ2UuCitQYWdlIHJlYWQgbG9ja3MgYXJlIGhlbGQgb25seSBmb3IgYXMgbG9u ZyBhcyBhIHNjYW4gaXMgZXhhbWluaW5nIGEgcGFnZQorKHdpdGggZXhjZXB0aW9uIGZvciBTbmFw c2hvdERpcnR5IGFuZCBTbmFwc2hvdFNlbGYgc2NhbnMgLSBzZWUgYmVsb3cpLgogVG8gbWluaW1p emUgbG9jay91bmxvY2sgdHJhZmZpYywgYW4gaW5kZXggc2NhbiBhbHdheXMgc2VhcmNoZXMgYSBs ZWFmIHBhZ2UKIHRvIGlkZW50aWZ5IGFsbCB0aGUgbWF0Y2hpbmcgaXRlbXMgYXQgb25jZSwgY29w eWluZyB0aGVpciBoZWFwIHR1cGxlIElEcwogaW50byBiYWNrZW5kLWxvY2FsIHN0b3JhZ2UuICBU aGUgaGVhcCB0dXBsZSBJRHMgYXJlIHRoZW4gcHJvY2Vzc2VkIHdoaWxlCkBAIC0xMDMsNiArMTA0 LDE2IEBAIFdlIGFsc28gcmVtZW1iZXIgdGhlIGxlZnQtbGluaywgYW5kIGZvbGxvdyBpdCB3aGVu IHRoZSBzY2FuIG1vdmVzIGJhY2t3YXJkcwogKHRob3VnaCB0aGlzIHJlcXVpcmVzIGV4dHJhIGhh bmRsaW5nIHRvIGFjY291bnQgZm9yIGNvbmN1cnJlbnQgc3BsaXRzIG9mCiB0aGUgbGVmdCBzaWJs aW5nOyBzZWUgZGV0YWlsZWQgbW92ZS1sZWZ0IGFsZ29yaXRobSBiZWxvdykuCiAKK0Rlc3BpdGUg dGhlIGRlc2NyaWJlZCBtZWNoYW5pY3MgaW4gcGxhY2UsIGluY29uc2lzdGVudCByZXN1bHRzIG1h eSBzdGlsbCBvY2N1cgorZHVyaW5nIG5vbi1NVkNDIHNjYW5zIChTbmFwc2hvdERpcnR5IGFuZCBT bmFwc2hvdFNlbGYpLiBUaGlzIGlzc3VlIGNhbiBvY2N1ciBpZiBhIAorY29uY3VycmVudCB0cmFu c2FjdGlvbiBkZWxldGVzIGEgdHVwbGUgYW5kIGluc2VydHMgYSBuZXcgdHVwbGUgd2l0aCBhIG5l dyBUSUQgaW4gdGhlIAorc2FtZSBwYWdlLiBJZiB0aGUgc2NhbiBoYXMgYWxyZWFkeSB2aXNpdGVk IHRoZSBwYWdlIGFuZCBjYWNoZWQgaXRzIGNvbnRlbnQgaW4gdGhlCitiYWNrZW5kLWxvY2FsIHN0 b3JhZ2UsIGl0IG1pZ2h0IHNraXAgdGhlIG9sZCB0dXBsZSBkdWUgdG8gZGVsZXRpb24gYW5kIG1p c3MgdGhlIG5ldyAKK3R1cGxlIGJlY2F1c2UgdGhlIHNjYW4gZG9lcyBub3QgcmUtcmVhZCB0aGUg cGFnZS4gVG8gYWRkcmVzcyB0aGlzIGlzc3VlLCBmb3IgCitTbmFwc2hvdERpcnR5IGFuZCBTbmFw c2hvdFNlbGYgc2NhbnMsIHdlIHJldGFpbiB0aGUgcmVhZCBsb2NrIG9uIHRoZSBwYWdlIHVudGls IAord2UncmUgY29tcGxldGVseSBkb25lIHByb2Nlc3NpbmcgYWxsIHRoZSB0dXBsZXMgZnJvbSB0 aGF0IHBhZ2UsIHByZXZlbnRpbmcgCitjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMgdGhhdCBjb3Vs ZCBsZWFkIHRvIGluY29uc2lzdGVudCByZXN1bHRzLgorCiBJbiBtb3N0IGNhc2VzIHdlIHJlbGVh c2Ugb3VyIGxvY2sgYW5kIHBpbiBvbiBhIHBhZ2UgYmVmb3JlIGF0dGVtcHRpbmcKIHRvIGFjcXVp cmUgcGluIGFuZCBsb2NrIG9uIHRoZSBwYWdlIHdlIGFyZSBtb3ZpbmcgdG8uICBJbiBhIGZldyBw bGFjZXMKIGl0IGlzIG5lY2Vzc2FyeSB0byBsb2NrIHRoZSBuZXh0IHBhZ2UgYmVmb3JlIHJlbGVh c2luZyB0aGUgY3VycmVudCBvbmUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHJlZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwppbmRleCAw M2ExZDdiMDI3YS4uZjllZjI1NjU2MWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwpA QCAtMzkzLDEwICszOTMsMjIgQEAgYnRyZXNjYW4oSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuS2V5 IHNjYW5rZXksIGludCBuc2NhbmtleXMsCiAJCS8qIEJlZm9yZSBsZWF2aW5nIGN1cnJlbnQgcGFn ZSwgZGVhbCB3aXRoIGFueSBraWxsZWQgaXRlbXMgKi8KIAkJaWYgKHNvLT5udW1LaWxsZWQgPiAw KQogCQkJX2J0X2tpbGxpdGVtcyhzY2FuKTsKKwkJZWxzZSBpZiAoIXNvLT5kcm9wTG9jaykgLyog X2J0X2tpbGxpdGVtcyBhbHdheXMgcmVsZWFzZXMgbG9jayAqLworCQkJX2J0X3VubG9ja2J1Zihz Y2FuLT5pbmRleFJlbGF0aW9uLCBzby0+Y3VyclBvcy5idWYpOwogCQlCVFNjYW5Qb3NVbnBpbklm UGlubmVkKHNvLT5jdXJyUG9zKTsKIAkJQlRTY2FuUG9zSW52YWxpZGF0ZShzby0+Y3VyclBvcyk7 CiAJfQogCisJLyoKKwkgKiBGb3IgU25hcHNob3REaXJ0eSBhbmQgU25hcHNob3RTZWxmIHNjYW5z LCB3ZSBkb24ndCB1bmxvY2sgdGhlIGJ1ZmZlcgorCSAqIGFuZCBrZWVwIHRoZSBsb2NrIHNob3Vs ZCBiZSB1bnRpbCB3ZSdyZSBjb21wbGV0ZWx5IGRvbmUgd2l0aCB0aGlzIHBhZ2UuCisJICogVGhp cyBwcmV2ZW50cyBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMgZnJvbSBjYXVzaW5nIGluY29uc2lz dGVudAorCSAqIHJlc3VsdHMgZHVyaW5nIG5vbi1NVkNDIHNjYW5zLgorCSAqCisJICogU2VlIG5i dHJlZS9SRUFETUUgZm9yIGluZm9ybWF0aW9uIGFib3V0IFNuYXBzaG90RGlydHkgYW5kIFNuYXBz aG90U2VsZi4KKwkgKi8KKwlzby0+ZHJvcExvY2sgPSBzY2FuLT54c19zbmFwc2hvdC0+c25hcHNo b3RfdHlwZSAhPSBTTkFQU0hPVF9ESVJUWQorCQkJCQkmJiBzY2FuLT54c19zbmFwc2hvdC0+c25h cHNob3RfdHlwZSAhPSBTTkFQU0hPVF9TRUxGOwogCS8qCiAJICogV2UgcHJlZmVyIHRvIGVhZ2Vy bHkgZHJvcCBsZWFmIHBhZ2UgcGlucyBiZWZvcmUgYnRnZXR0dXBsZSByZXR1cm5zLgogCSAqIFRo aXMgYXZvaWRzIG1ha2luZyBWQUNVVU0gd2FpdCB0byBhY3F1aXJlIGEgY2xlYW51cCBsb2NrIG9u IHRoZSBwYWdlLgpAQCAtNDE4LDcgKzQzMCw4IEBAIGJ0cmVzY2FuKEluZGV4U2NhbkRlc2Mgc2Nh biwgU2NhbktleSBzY2Fua2V5LCBpbnQgbnNjYW5rZXlzLAogCSAqCiAJICogU2VlIG5idHJlZS9S RUFETUUgc2VjdGlvbiBvbiBtYWtpbmcgY29uY3VycmVudCBUSUQgcmVjeWNsaW5nIHNhZmUuCiAJ ICovCi0Jc28tPmRyb3BQaW4gPSAoIXNjYW4tPnhzX3dhbnRfaXR1cCAmJgorCXNvLT5kcm9wUGlu ID0gKHNvLT5kcm9wTG9jayAmJgorCQkJCSAgICFzY2FuLT54c193YW50X2l0dXAgJiYKIAkJCQkg ICBJc01WQ0NTbmFwc2hvdChzY2FuLT54c19zbmFwc2hvdCkgJiYKIAkJCQkgICBSZWxhdGlvbk5l ZWRzV0FMKHNjYW4tPmluZGV4UmVsYXRpb24pICYmCiAJCQkJICAgc2Nhbi0+aGVhcFJlbGF0aW9u ICE9IE5VTEwpOwpAQCAtNDc1LDYgKzQ4OCw4IEBAIGJ0ZW5kc2NhbihJbmRleFNjYW5EZXNjIHNj YW4pCiAJCS8qIEJlZm9yZSBsZWF2aW5nIGN1cnJlbnQgcGFnZSwgZGVhbCB3aXRoIGFueSBraWxs ZWQgaXRlbXMgKi8KIAkJaWYgKHNvLT5udW1LaWxsZWQgPiAwKQogCQkJX2J0X2tpbGxpdGVtcyhz Y2FuKTsKKwkJZWxzZSBpZiAoIXNvLT5kcm9wTG9jaykgLyogX2J0X2tpbGxpdGVtcyBhbHdheXMg cmVsZWFzZXMgbG9jayAqLworCQkJX2J0X3VubG9ja2J1ZihzY2FuLT5pbmRleFJlbGF0aW9uLCBz by0+Y3VyclBvcy5idWYpOwogCQlCVFNjYW5Qb3NVbnBpbklmUGlubmVkKHNvLT5jdXJyUG9zKTsK IAl9CiAKQEAgLTU1NSw2ICs1NzAsOCBAQCBidHJlc3RycG9zKEluZGV4U2NhbkRlc2Mgc2NhbikK IAkJCS8qIEJlZm9yZSBsZWF2aW5nIGN1cnJlbnQgcGFnZSwgZGVhbCB3aXRoIGFueSBraWxsZWQg aXRlbXMgKi8KIAkJCWlmIChzby0+bnVtS2lsbGVkID4gMCkKIAkJCQlfYnRfa2lsbGl0ZW1zKHNj YW4pOworCQkJZWxzZSBpZiAoIXNvLT5kcm9wTG9jaykgLyogX2J0X2tpbGxpdGVtcyBhbHdheXMg cmVsZWFzZXMgbG9jayAqLworCQkJCV9idF91bmxvY2tidWYoc2Nhbi0+aW5kZXhSZWxhdGlvbiwg c28tPmN1cnJQb3MuYnVmKTsKIAkJCUJUU2NhblBvc1VucGluSWZQaW5uZWQoc28tPmN1cnJQb3Mp OwogCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c2VhcmNo LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNlYXJjaC5jCmluZGV4IDA3MGYxNGM4 YjkxLi42ZTdmM2M3NjE2MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9u YnRzZWFyY2guYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNlYXJjaC5jCkBA IC01NywxMiArNTcsMTQgQEAgc3RhdGljIGJvb2wgX2J0X2VuZHBvaW50KEluZGV4U2NhbkRlc2Mg c2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpOwogLyoKICAqCV9idF9kcm9wX2xvY2tfYW5kX21heWJl X3BpbigpCiAgKgotICogVW5sb2NrIHNvLT5jdXJyUG9zLmJ1Zi4gIElmIHNjYW4gaXMgc28tPmRy b3BQaW4sIGRyb3AgdGhlIHBpbiwgdG9vLgorICogVW5sb2NrIHNvLT5jdXJyUG9zLmJ1ZiBpZiBz by0+ZHJvcExvY2suIElmIHNjYW4gaXMgc28tPmRyb3BQaW4sIGRyb3AgdGhlIHBpbiwgdG9vLgog ICogRHJvcHBpbmcgdGhlIHBpbiBwcmV2ZW50cyBWQUNVVU0gZnJvbSBibG9ja2luZyBvbiBhY3F1 aXJpbmcgYSBjbGVhbnVwIGxvY2suCiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZAogX2J0X2Ryb3Bf bG9ja19hbmRfbWF5YmVfcGluKFJlbGF0aW9uIHJlbCwgQlRTY2FuT3BhcXVlIHNvKQogeworCWlm ICghc28tPmRyb3BMb2NrKQorCQlyZXR1cm47CiAJaWYgKCFzby0+ZHJvcFBpbikKIAl7CiAJCS8q IEp1c3QgZHJvcCB0aGUgbG9jayAobm90IHRoZSBwaW4pICovCkBAIC0xNTMyLDcgKzE1MzQsOCBA QCBfYnRfZmlyc3QoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRpcikKICAqCV9i dF9uZXh0KCkgLS0gR2V0IHRoZSBuZXh0IGl0ZW0gaW4gYSBzY2FuLgogICoKICAqCQlPbiBlbnRy eSwgc28tPmN1cnJQb3MgZGVzY3JpYmVzIHRoZSBjdXJyZW50IHBhZ2UsIHdoaWNoIG1heSBiZSBw aW5uZWQKLSAqCQlidXQgaXMgbm90IGxvY2tlZCwgYW5kIHNvLT5jdXJyUG9zLml0ZW1JbmRleCBp ZGVudGlmaWVzIHdoaWNoIGl0ZW0gd2FzCisgKgkJYnV0IGlzIG5vdCBsb2NrZWQgKGV4Y2VwdCBm b3IgU25hcHNob3REaXJ0eSBhbmQgU25hcHNob3RTZWxmIHNjYW5zLCB3aGVyZQorICoJCXRoZSBw YWdlIHJlbWFpbnMgbG9ja2VkKSwgYW5kIHNvLT5jdXJyUG9zLml0ZW1JbmRleCBpZGVudGlmaWVz IHdoaWNoIGl0ZW0gd2FzCiAgKgkJcHJldmlvdXNseSByZXR1cm5lZC4KICAqCiAgKgkJT24gc3Vj Y2VzcyBleGl0LCBzby0+Y3VyclBvcyBpcyB1cGRhdGVkIGFzIG5lZWRlZCwgYW5kIF9idF9yZXR1 cm5pdGVtCkBAIC0yMTExLDcgKzIxMTQsOSBAQCBfYnRfcmV0dXJuaXRlbShJbmRleFNjYW5EZXNj IHNjYW4sIEJUU2Nhbk9wYXF1ZSBzbykKICAqIFdyYXBwZXIgb24gX2J0X3JlYWRuZXh0cGFnZSB0 aGF0IHBlcmZvcm1zIGZpbmFsIHN0ZXBzIGZvciB0aGUgY3VycmVudCBwYWdlLgogICoKICAqIE9u IGVudHJ5LCBzby0+Y3VyclBvcyBtdXN0IGJlIHZhbGlkLiAgSXRzIGJ1ZmZlciB3aWxsIGJlIHBp bm5lZCwgdGhvdWdoCi0gKiBuZXZlciBsb2NrZWQuIChBY3R1YWxseSwgd2hlbiBzby0+ZHJvcFBp biB0aGVyZSB3b24ndCBldmVuIGJlIGEgcGluIGhlbGQsCisgKiBuZXZlciBsb2NrZWQsIGV4Y2Vw dCBmb3IgU25hcHNob3REaXJ0eSBhbmQgU25hcHNob3RTZWxmIHNjYW5zIHdoZXJlIHRoZSBidWZm ZXIKKyAqIHJlbWFpbnMgbG9ja2VkIHVudGlsIHdlJ3JlIGRvbmUgd2l0aCBhbGwgdHVwbGVzIGZy b20gdGhlIHBhZ2UKKyAqIChBY3R1YWxseSwgd2hlbiBzby0+ZHJvcFBpbiB0aGVyZSB3b24ndCBl dmVuIGJlIGEgcGluIGhlbGQsCiAgKiB0aG91Z2ggc28tPmN1cnJQb3MuY3VyclBhZ2UgbXVzdCBz dGlsbCBiZSBzZXQgdG8gYSB2YWxpZCBibG9jayBudW1iZXIuKQogICovCiBzdGF0aWMgYm9vbApA QCAtMjEyNiw2ICsyMTMxLDggQEAgX2J0X3N0ZXBwYWdlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2Nh bkRpcmVjdGlvbiBkaXIpCiAJLyogQmVmb3JlIGxlYXZpbmcgY3VycmVudCBwYWdlLCBkZWFsIHdp dGggYW55IGtpbGxlZCBpdGVtcyAqLwogCWlmIChzby0+bnVtS2lsbGVkID4gMCkKIAkJX2J0X2tp bGxpdGVtcyhzY2FuKTsKKwllbHNlIGlmICghc28tPmRyb3BMb2NrKSAvKiBfYnRfa2lsbGl0ZW1z IGFsd2F5cyByZWxlYXNlcyBsb2NrICovCisJCV9idF91bmxvY2tidWYoc2Nhbi0+aW5kZXhSZWxh dGlvbiwgc28tPmN1cnJQb3MuYnVmKTsKIAogCS8qCiAJICogQmVmb3JlIHdlIG1vZGlmeSBjdXJy UG9zLCBtYWtlIGEgY29weSBvZiB0aGUgcGFnZSBkYXRhIGlmIHRoZXJlIHdhcyBhCkBAIC0yMjY1 LDcgKzIyNzIsOCBAQCBfYnRfcmVhZGZpcnN0cGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIE9mZnNl dE51bWJlciBvZmZudW0sIFNjYW5EaXJlY3Rpb24gZGlyKQogCX0KIAogCS8qIFRoZXJlJ3Mgbm8g YWN0dWFsbHktbWF0Y2hpbmcgZGF0YSBvbiB0aGUgcGFnZSBpbiBzby0+Y3VyclBvcy5idWYgKi8K LQlfYnRfdW5sb2NrYnVmKHNjYW4tPmluZGV4UmVsYXRpb24sIHNvLT5jdXJyUG9zLmJ1Zik7CisJ aWYgKHNvLT5kcm9wTG9jaykKKwkJX2J0X3VubG9ja2J1ZihzY2FuLT5pbmRleFJlbGF0aW9uLCBz by0+Y3VyclBvcy5idWYpOwogCiAJLyogQ2FsbCBfYnRfcmVhZG5leHRwYWdlIHVzaW5nIGl0cyBf YnRfc3RlcHBhZ2Ugd3JhcHBlciBmdW5jdGlvbiAqLwogCWlmICghX2J0X3N0ZXBwYWdlKHNjYW4s IGRpcikpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMKaW5kZXggMjlmMGRjYTFiMDgu LmE3OWQ4YmZjOTA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0 aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jCkBAIC0zMzY5 LDcgKzMzNjksOSBAQCBfYnRfa2lsbGl0ZW1zKEluZGV4U2NhbkRlc2Mgc2NhbikKIAkJICogY29u Y3VycmVudCBWQUNVVU1zIGZyb20gcmVjeWNsaW5nIGFueSBvZiB0aGUgVElEcyBvbiB0aGUgcGFn ZS4KIAkJICovCiAJCUFzc2VydChCVFNjYW5Qb3NJc1Bpbm5lZChzby0+Y3VyclBvcykpOwotCQlf YnRfbG9ja2J1ZihyZWwsIHNvLT5jdXJyUG9zLmJ1ZiwgQlRfUkVBRCk7CisJCS8qIExvY2sgb25s eSBpZiB0aGUgbG9jayBpcyBkcm9wcGVkLiAqLworCQlpZiAoc28tPmRyb3BMb2NrKQorCQkJX2J0 X2xvY2tidWYocmVsLCBzby0+Y3VyclBvcy5idWYsIEJUX1JFQUQpOwogCX0KIAllbHNlCiAJewpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL25idHJlZS5oCmluZGV4IGU3MDlkMmUwYWZlLi5jYThlYmQ3YTQxOCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnRy ZWUuaApAQCAtMTA3MCw2ICsxMDcwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQlRTY2FuT3BhcXVlRGF0 YQogCS8qIGluZm8gYWJvdXQga2lsbGVkIGl0ZW1zIGlmIGFueSAoa2lsbGVkSXRlbXMgaXMgTlVM TCBpZiBuZXZlciB1c2VkKSAqLwogCWludAkJICAgKmtpbGxlZEl0ZW1zOwkvKiBjdXJyUG9zLml0 ZW1zIGluZGV4ZXMgb2Yga2lsbGVkIGl0ZW1zICovCiAJaW50CQkJbnVtS2lsbGVkOwkJLyogbnVt YmVyIG9mIGN1cnJlbnRseSBzdG9yZWQgaXRlbXMgKi8KKwlib29sCQlkcm9wTG9jazsJCS8qIGRy b3AgbG9jayBvbiBiZWZvcmUgYnRnZXR0dXBsZSByZXR1cm5zPyAqLwogCWJvb2wJCWRyb3BQaW47 CQkvKiBkcm9wIGxlYWYgcGluIGJlZm9yZSBidGdldHR1cGxlIHJldHVybnM/ICovCiAKIAkvKgot LSAKMi40My4wCgo= --0000000000001de6440637316b56--