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 1vHbMm-00CRZt-Gc for pgsql-bugs@arkaria.postgresql.org; Sat, 08 Nov 2025 05:20:00 +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 1vHbMl-000kXy-6L for pgsql-bugs@arkaria.postgresql.org; Sat, 08 Nov 2025 05:19:59 +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.94.2) (envelope-from ) id 1vHbMk-000kXq-Sw for pgsql-bugs@lists.postgresql.org; Sat, 08 Nov 2025 05:19:58 +0000 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vHbMi-006bnM-0d for pgsql-bugs@lists.postgresql.org; Sat, 08 Nov 2025 05:19:58 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-3434700be69so1855499a91.1 for ; Fri, 07 Nov 2025 21:19:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762579194; x=1763183994; 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=f7yptGdksTUR3pK+J5CtS8XRG+L1GZmPJtRp6J17GC0=; b=Nev0LL/TAjWviBhuoqSnkTQAw7JkEBApMt34/aVyHa8/5/rdhKBa5CoEmLjGbyVEb/ qA2Z+O5LXakSXJXkAwap4IeTsCbw4D+Sa/AhT3CtndZzLjTTe0KZ3sVrBKCneZkvLniR Ffj0NaeZk1pOIII8x9l6V/LVafcJiXOcVuQf9s39zWkoYVViesT90vsjEkzHMptbZEa5 khxZhxBcer+x874r5TfXxZ8pBS/zwbxghWp195ofLvplPC3w/n6xJZHbBFbJfI5pWI5K 11xhXFyZ1H/yjv59pfh/6ZJBaMW6UjYSuFkqlMoDsbbEOBnre1gPqbpoVEEhtIszowFZ xQLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762579194; x=1763183994; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=f7yptGdksTUR3pK+J5CtS8XRG+L1GZmPJtRp6J17GC0=; b=eGZtq/TxHpT953kTwCi3KoQCujwxRb/awNvyhjMKvgcpGwCSdGeBhav7BTKSIzoKxg +d8gzA1dt1TB7K5gdShAFrS6J7/UxBybXhsNqDaxEK4RGZwY7ffG/rm7rINfsNXTB7j4 S+ZDEHosaKRyOFK6kHwVjLYP1JbZSWK2lM4kNanmTmR1lPFLJo9z4I4aMtGSCsfMOjxV sR2eZl62IsvWmlL9tCxnXwIEAEYltn9kjMG6wYCMnLiGTOIHAneShyLH27FrC/NAa1bh lOLwnE48UHh29ZEgB+S5Rv+laNEAXGQ3ObTypzLiPIGHEkk6d+Lc3dtmX75zAOEHXGHo wEHg== X-Forwarded-Encrypted: i=1; AJvYcCV7bIBQR3dReI4E5xs0RB2TtCKkKTaFhnNXCH1Caja1hg0pp7B7kHM/S4LykodILp+XHgSO8bAtZ6j0@lists.postgresql.org X-Gm-Message-State: AOJu0Yzrd3X7IJf1mp084SmJLlQcI7vFUZkFBqKymDMw0bFCauw+yDQ2 TMh1m8dC3P3zIlwf1ibc4PhEsTbRjAZ4gj1SMAlEurJ+MtAO3qxVNEIUB2np8M6HIjsnaZQJ7LE UswzF6Zluu1g22pQ55exXUnFHYSg/kzA= X-Gm-Gg: ASbGncved7ONuFxJ3ekkQssvh3zqYWfJW0Jx6enGXSOgv1wy1r3Y+6Y04dbtNUuQNF8 5Xlx+vvd8RdgrXIYFsLNNew8FnovdQCnk5rE1mlcmWahvpT0WAcjKKezDUN/Aqz5xuxmY84iYYL ajHmN0my9MZCxDxXjRC8+KcJJN1uSAY84FUNFI27UZ+m1PDoxO6gmqshWp6zee6iVX74NJ1Pq5I 6C3XRAeyHHyPndkAZzlzBaGJwLkGyyg6GmzIpkgQulI8LzxkeolYuN/pyudO+HePck3jFV0 X-Google-Smtp-Source: AGHT+IGem5CjyN8NMTZ+PwroNJdMcuM4BGR+G8PFmCfl/yXtYx/IKVTxvfTpkiyzObnxf4dXhzRwt2+/3Kak3xWZJPM= X-Received: by 2002:a17:90b:3d8a:b0:32b:65e6:ec48 with SMTP id 98e67ed59e1d1-3436cb229e8mr1862113a91.8.1762579193721; Fri, 07 Nov 2025 21:19:53 -0800 (PST) MIME-Version: 1.0 References: <19099-e05dcfa022fe553d@postgresql.org> <2960545.1761800903@sss.pgh.pa.us> <3017911.1761832112@sss.pgh.pa.us> In-Reply-To: From: Amit Langote Date: Sat, 8 Nov 2025 14:19:36 +0900 X-Gm-Features: AWmQ_bmtvTYmsStHJD8PCWf5AXpkB0sGWxm00QXUHaqZKyqYAR29pQ-f_hQlxT8 Message-ID: Subject: Re: BUG #19099: Conditional DELETE from partitioned table with non-updatable partition raises internal error To: Kirill Reshke Cc: David Rowley , Tom Lane , Tender Wang , jian he , exclusion@gmail.com, pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000bb089a06430e7248" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bb089a06430e7248 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Nov 7, 2025 at 6:23=E2=80=AFPM Amit Langote wrote: > On Fri, Nov 7, 2025 at 6:05=E2=80=AFPM Kirill Reshke wrote: > > On Fri, 7 Nov 2025 at 11:02, Amit Langote wro= te: > > > I have another idea: we can simply recognize the corner condition tha= t > > > throws this error in ExecInitModifyTable() by checking if > > > ModifyTable.resultRelations contains only the root partitioned table. > > > That can only happen for UPDATE, DELETE, or MERGE when all child > > > relations were excluded. > > > > > > Patch doing that attached. Added test cases to file_fdw's suite. > > > > I think this is an OK option for backpatching. After v2 applied, I > > found the behavior of DELETE and EXPLAIN DELETE consistent. > > Thanks for the comment. > > > The only > > remaining issue is VERBOSE output difference with or without > > enable_partition_pruning (which is v19+ issue to worry about), > > correct? > > Yes, iff we are to do anything at all about the difference. > > > Also, should we add COSTS OFF to EXPLAIN in the regression test? I > > understand that costs should be always zero, but COSTS OFF is almost > > everywhere is tests > > Yeah, a good call. > > v3 attached. Attached v4 where I have updated the commit message to mention 86dc9005. The bug doesn=E2=80=99t seem critical enough to rush the fix, so I=E2=80=99= ll hold off on committing it for next week=E2=80=99s release to leave room for further comments. --=20 Thanks, Amit Langote --000000000000bb089a06430e7248 Content-Type: application/octet-stream; name="v4-0001-Fix-bogus-ctid-requirement-for-dummy-root-partiti.patch" Content-Disposition: attachment; filename="v4-0001-Fix-bogus-ctid-requirement-for-dummy-root-partiti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhpu44wp0 RnJvbSA0NWUwNWFmY2YwNTNhOGMzOTQ4N2NjMTNmY2JjNDdiYzdkYjQ2NDc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IFNhdCwgOCBOb3YgMjAyNSAxNDoxMjoxMyArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjRd IEZpeCBib2d1cyBjdGlkIHJlcXVpcmVtZW50IGZvciBkdW1teS1yb290IHBhcnRpdGlvbmVkCiB0 YXJnZXRzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpFeGVjSW5pdE1vZGlmeVRh YmxlKCkgdW5jb25kaXRpb25hbGx5IHJlcXVpcmVkIGEgY3RpZCBqdW5rIGNvbHVtbiBldmVuCndo ZW4gdGhlIHRhcmdldCB3YXMgYSBwYXJ0aXRpb25lZCB0YWJsZS4gVGhpcyBsZWQgdG8gc3B1cmlv dXMgImNvdWxkCm5vdCBmaW5kIGp1bmsgY3RpZCBjb2x1bW4iIGVycm9ycyB3aGVuIGFsbCBjaGls ZHJlbiB3ZXJlIGV4Y2x1ZGVkIGFuZApvbmx5IHRoZSBkdW1teSByb290IHJlc3VsdCByZWxhdGlv biByZW1haW5lZC4KClJlcXVpcmUgY3RpZCBmb3IgaGVhcCByZWxhdGlvbnMgYXMgYmVmb3JlLiBG b3IgcGFydGl0aW9uZWQgdGFibGVzLApyZXF1aXJlIGl0IG9ubHkgd2hlbiBhdCBsZWFzdCBvbmUg bGVhZiByZXN1bHQgcmVsYXRpb24gcmVtYWlucyBpbiB0aGUKcGxhbi4gSWYgdGhlIHBsYW4gaGFz IG9ubHkgdGhlIGR1bW15IHJvb3QsIG5vIHJvd3MgY2FuIGJlIHByb2R1Y2VkIGFuZApjdGlkIGlz IHRodXMgbm90IG5lZWRlZC4KCkJhY2stcGF0Y2ggdG8gdjE0LCB3aGVyZSBjb21taXQgODZkYzkw MDUgcmV3b3JrZWQgVVBEQVRFL0RFTEVURQpwbGFubmluZyB0byB1c2UgYSBzaW5nbGUgc3VicGxh biBmb3IgYWxsIHRhcmdldCByZWxhdGlvbnMuICBUaGF0CmNoYW5nZSB1bmlmaWVkIGhvdyB0aGUg c3VicGxhbuKAmXMgdGFyZ2V0bGlzdCBpcyBjb25zdHJ1Y3RlZCBhbmQKaW50cm9kdWNlZCB0aGlz IGlzc3VlLgoKQnVnOiAjMTkwOTkKUmVwb3J0ZWQtYnk6IEFsZXhhbmRlciBMYWtoaW4gPGV4Y2x1 c2lvbkBnbWFpbC5jb20+CkF1dGhvcjogQW1pdCBMYW5nb3RlIDxhbWl0bGFuZ290ZTA5QGdtYWls LmNvbT4KUmV2aWV3ZWQtYnk6IFRlbmRlciBXYW5nIDx0bmRyd2FuZ0BnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tLzE5MDk5LWUwNWRjZmEwMjJmZTU1M2QlNDBwb3N0Z3Jlc3Fs Lm9yZwpCYWNrcGF0Y2gtdGhyb3VnaDogMTQKLS0tCiBjb250cmliL2ZpbGVfZmR3L2V4cGVjdGVk L2ZpbGVfZmR3Lm91dCB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiBjb250cmliL2Zp bGVfZmR3L3NxbC9maWxlX2Zkdy5zcWwgICAgICB8IDM0ICsrKysrKysrKysrKwogc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgfCAxMSArKystCiAzIGZpbGVzIGNoYW5nZWQs IDExOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9m aWxlX2Zkdy9leHBlY3RlZC9maWxlX2Zkdy5vdXQgYi9jb250cmliL2ZpbGVfZmR3L2V4cGVjdGVk L2ZpbGVfZmR3Lm91dAppbmRleCA1MTIxZTI3ZGNlNS4uNmY3YjkxNzU3MzUgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvZmlsZV9mZHcvZXhwZWN0ZWQvZmlsZV9mZHcub3V0CisrKyBiL2NvbnRyaWIvZmls ZV9mZHcvZXhwZWN0ZWQvZmlsZV9mZHcub3V0CkBAIC00NTcsNiArNDU3LDgxIEBAIFNFTEVDVCB0 YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBwMjsKICBwMiAgICAgICB8IDIgfCB4eXp6eQogKDMg cm93cykKIAorLS0gVmVyaWZ5IHRoYXQgYSBkdW1teSByb290IHBhcnRpdGlvbmVkLXRhYmxlIHJl c3VsdCByZWxhdGlvbiB3b3JrcyB3aXRob3V0CistLSBlcnJvciB3aGVuIGFsbCBjaGlsZCBwYXJ0 aXRpb25zIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwbGFuIChmb3IgZXhhbXBsZSwKKy0tIGJ5IGNv bnN0cmFpbnQgZXhjbHVzaW9uIG9yIHBydW5pbmcpLiAgSW4gdGhpcyBjYXNlLCB0aGUgZXhlY3V0 b3IgYWNjZXB0cworLS0gYSBtaXNzaW5nIGN0aWQgZm9yIHRoZSByb290IHJlc3VsdCByZWxhdGlv biBzaW5jZSBubyByb3dzIGNhbiBiZSBwcm9kdWNlZC4KKy0tIFdoZW4gYSBmb3JlaWduLXRhYmxl IGNoaWxkIGlzIHByb2Nlc3NlZCBiZWZvcmUgZXhjbHVzaW9uLCBhIHRhYmxlb2lkIGp1bmsKKy0t IGNvbHVtbiBtYXkgc3RpbGwgYXBwZWFyIGluIHRoZSB0YXJnZXRsaXN0IGFuZCBhbHNvIHdob2xl cm93IGZvciB1cGRhdGUuCistLSBEdW1teS1yb290IGNhc2VzIHdoZXJlIGFsbCBjaGlsZHJlbiBh cmUgZXhjbHVkZWQuCistLSBXaXRoIHBydW5pbmcgb2ZmLCB0aGUgZm9yZWlnbiBjaGlsZCBpcyBw cm9jZXNzZWQgZmlyc3QsIHRoZW4gZXhjbHVkZWQKKy0tIGJ5IGNvbnN0cmFpbnQgZXhjbHVzaW9u LiBFWFBMQUlOIHNob3dzIHRhYmxlb2lkIChyZXdyaXR0ZW4gdG8gTlVMTCksCistLSBhbmQgZm9y IFVQREFURSBhbHNvIHdob2xlcm93IGFzIE5VTEw6OnJlY29yZC4gTm8gY3RpZC4KK0RST1AgVEFC TEUgcDI7CitTRVQgZW5hYmxlX3BhcnRpdGlvbl9wcnVuaW5nIFRPIG9mZjsKK0VYUExBSU4gKENP U1RTIE9GRiwgVkVSQk9TRSkgREVMRVRFIEZST00gcHQgV0hFUkUgZmFsc2U7CisgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBEZWxldGUgb24gcHVibGljLnB0CisgICAtPiAgUmVzdWx0CisgICAgICAgICBPdXRwdXQ6IE5V TEw6Om9pZAorICAgICAgICAgUmVwbGFjZXM6IFNjYW4gb24gcHQKKyAgICAgICAgIE9uZS1UaW1l IEZpbHRlcjogZmFsc2UKKyg1IHJvd3MpCisKKy0tIGFsc28gY292ZXIgd2hvbGVyb3cgZm9yIFVQ REFURTsgZXhwZWN0IE5VTEw6Om9pZCBhbmQgTlVMTDo6cmVjb3JkCitFWFBMQUlOIChDT1NUUyBP RkYsIFZFUkJPU0UpIFVQREFURSBwdCBTRVQgYiA9ICd4JyBXSEVSRSBmYWxzZTsKKyAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBVcGRhdGUgb24gcHVi bGljLnB0CisgICAtPiAgUmVzdWx0CisgICAgICAgICBPdXRwdXQ6ICd4Jzo6dGV4dCwgTlVMTDo6 b2lkLCBOVUxMOjpyZWNvcmQKKyAgICAgICAgIFJlcGxhY2VzOiBTY2FuIG9uIHB0CisgICAgICAg ICBPbmUtVGltZSBGaWx0ZXI6IGZhbHNlCisoNSByb3dzKQorCistLSBNRVJHRSBiZWhhdmVzIHRo ZSBzYW1lIGhlcmU7IGV4cGVjdCBOVUxMOjpvaWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9T RSkgTUVSR0UgSU5UTyBwdCB0IFVTSU5HIChWQUxVRVMgKDEsICd4Jzo6dGV4dCkpIEFTIHMoYSwg YikKKyAgT04gZmFsc2UgV0hFTiBNQVRDSEVEIFRIRU4gVVBEQVRFIFNFVCBiID0gcy5iOworICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgTWVyZ2Ugb24gcHVibGljLnB0IHQKKyAgIC0+ICBSZXN1bHQKKyAgICAgICAgIE91 dHB1dDogTlVMTDo6b2lkCisgICAgICAgICBSZXBsYWNlczogU2NhbiBvbiB0CisgICAgICAgICBP bmUtVGltZSBGaWx0ZXI6IGZhbHNlCisoNSByb3dzKQorCistLSBXaXRoIHBydW5pbmcgb24sIHRo ZSBmb3JlaWduIGNoaWxkIGlzIHBydW5lZCBlbnRpcmVseS4gVGhlIHBsYW4gaGFzIG9ubHkKKy0t IHRoZSBkdW1teSByb290LCBhbmQgRVhQTEFJTiBzaG93cyBjdGlkIChhbmQgZm9yIFVQREFURSwg Y3RpZCBwbHVzIHRhcmdldCkuCitTRVQgZW5hYmxlX3BhcnRpdGlvbl9wcnVuaW5nIFRPIG9uOwor RVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBERUxFVEUgRlJPTSBwdCBXSEVSRSBmYWxzZTsK KyAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIERlbGV0ZSBvbiBwdWJsaWMucHQKKyAgIC0+ICBSZXN1bHQKKyAgICAgICAg IE91dHB1dDogY3RpZAorICAgICAgICAgUmVwbGFjZXM6IFNjYW4gb24gcHQKKyAgICAgICAgIE9u ZS1UaW1lIEZpbHRlcjogZmFsc2UKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVS Qk9TRSkgVVBEQVRFIHB0IFNFVCBiID0gJ3gnIFdIRVJFIGZhbHNlOworICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBV cGRhdGUgb24gcHVibGljLnB0CisgICAtPiAgUmVzdWx0CisgICAgICAgICBPdXRwdXQ6ICd4Jzo6 dGV4dCwgY3RpZAorICAgICAgICAgUmVwbGFjZXM6IFNjYW4gb24gcHQKKyAgICAgICAgIE9uZS1U aW1lIEZpbHRlcjogZmFsc2UKKyg1IHJvd3MpCisKKy0tIEZvcmVpZ24gY2hpbGQgbm90IHBydW5l ZCBhbmQgaXQgZG9lcyBub3Qgc3VwcG9ydCBERUxFVEU6IGVycm9yLgorRVhQTEFJTiAoQ09TVFMg T0ZGLCBWRVJCT1NFKSBERUxFVEUgRlJPTSBwdCBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90 IGRlbGV0ZSBmcm9tIGZvcmVpZ24gdGFibGUgInAxIgorLS0gUnVudGltZSBwcnVuaW5nIGluY2x1 ZGVzIHRoZSBmb3JlaWduIGNoaWxkIGluIHRoZSBwbGFuOyBleGVjdXRvciBlcnJvcnMKKy0tIHNp bmNlIHRoZSBmb3JlaWduIGNoaWxkIGRvZXMgbm90IHN1cHBvcnQgdGhlIGNvbW1hbmQuCitFWFBM QUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIERFTEVURSBGUk9NIHB0IFdIRVJFIChTRUxFQ1QgZmFs c2UpOworRVJST1I6ICBjYW5ub3QgZGVsZXRlIGZyb20gZm9yZWlnbiB0YWJsZSAicDEiCiBEUk9Q IFRBQkxFIHB0OwogLS0gZ2VuZXJhdGVkIGNvbHVtbiB0ZXN0cwogXHNldCBmaWxlbmFtZSA6YWJz X3NyY2RpciAnL2RhdGEvbGlzdDEuY3N2JwpkaWZmIC0tZ2l0IGEvY29udHJpYi9maWxlX2Zkdy9z cWwvZmlsZV9mZHcuc3FsIGIvY29udHJpYi9maWxlX2Zkdy9zcWwvZmlsZV9mZHcuc3FsCmluZGV4 IDFhMzk3YWQ0YmQxLi4yNTY1OGIxZjJkYyAxMDA2NDQKLS0tIGEvY29udHJpYi9maWxlX2Zkdy9z cWwvZmlsZV9mZHcuc3FsCisrKyBiL2NvbnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVfZmR3LnNxbApA QCAtMjQyLDYgKzI0Miw0MCBAQCBVUERBVEUgcHQgc2V0IGEgPSAxIHdoZXJlIGEgPSAyOyAtLSBF UlJPUgogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIHB0OwogU0VMRUNUIHRhYmxl b2lkOjpyZWdjbGFzcywgKiBGUk9NIHAxOwogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBG Uk9NIHAyOworCistLSBWZXJpZnkgdGhhdCBhIGR1bW15IHJvb3QgcGFydGl0aW9uZWQtdGFibGUg cmVzdWx0IHJlbGF0aW9uIHdvcmtzIHdpdGhvdXQKKy0tIGVycm9yIHdoZW4gYWxsIGNoaWxkIHBh cnRpdGlvbnMgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHBsYW4gKGZvciBleGFtcGxlLAorLS0gYnkg Y29uc3RyYWludCBleGNsdXNpb24gb3IgcHJ1bmluZykuICBJbiB0aGlzIGNhc2UsIHRoZSBleGVj dXRvciBhY2NlcHRzCistLSBhIG1pc3NpbmcgY3RpZCBmb3IgdGhlIHJvb3QgcmVzdWx0IHJlbGF0 aW9uIHNpbmNlIG5vIHJvd3MgY2FuIGJlIHByb2R1Y2VkLgorLS0gV2hlbiBhIGZvcmVpZ24tdGFi bGUgY2hpbGQgaXMgcHJvY2Vzc2VkIGJlZm9yZSBleGNsdXNpb24sIGEgdGFibGVvaWQganVuawor LS0gY29sdW1uIG1heSBzdGlsbCBhcHBlYXIgaW4gdGhlIHRhcmdldGxpc3QgYW5kIGFsc28gd2hv bGVyb3cgZm9yIHVwZGF0ZS4KKworLS0gRHVtbXktcm9vdCBjYXNlcyB3aGVyZSBhbGwgY2hpbGRy ZW4gYXJlIGV4Y2x1ZGVkLgorLS0gV2l0aCBwcnVuaW5nIG9mZiwgdGhlIGZvcmVpZ24gY2hpbGQg aXMgcHJvY2Vzc2VkIGZpcnN0LCB0aGVuIGV4Y2x1ZGVkCistLSBieSBjb25zdHJhaW50IGV4Y2x1 c2lvbi4gRVhQTEFJTiBzaG93cyB0YWJsZW9pZCAocmV3cml0dGVuIHRvIE5VTEwpLAorLS0gYW5k IGZvciBVUERBVEUgYWxzbyB3aG9sZXJvdyBhcyBOVUxMOjpyZWNvcmQuIE5vIGN0aWQuCitEUk9Q IFRBQkxFIHAyOworU0VUIGVuYWJsZV9wYXJ0aXRpb25fcHJ1bmluZyBUTyBvZmY7CitFWFBMQUlO IChDT1NUUyBPRkYsIFZFUkJPU0UpIERFTEVURSBGUk9NIHB0IFdIRVJFIGZhbHNlOworLS0gYWxz byBjb3ZlciB3aG9sZXJvdyBmb3IgVVBEQVRFOyBleHBlY3QgTlVMTDo6b2lkIGFuZCBOVUxMOjpy ZWNvcmQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgVVBEQVRFIHB0IFNFVCBiID0gJ3gn IFdIRVJFIGZhbHNlOworLS0gTUVSR0UgYmVoYXZlcyB0aGUgc2FtZSBoZXJlOyBleHBlY3QgTlVM TDo6b2lkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIE1FUkdFIElOVE8gcHQgdCBVU0lO RyAoVkFMVUVTICgxLCAneCc6OnRleHQpKSBBUyBzKGEsIGIpCisgIE9OIGZhbHNlIFdIRU4gTUFU Q0hFRCBUSEVOIFVQREFURSBTRVQgYiA9IHMuYjsKKworLS0gV2l0aCBwcnVuaW5nIG9uLCB0aGUg Zm9yZWlnbiBjaGlsZCBpcyBwcnVuZWQgZW50aXJlbHkuIFRoZSBwbGFuIGhhcyBvbmx5CistLSB0 aGUgZHVtbXkgcm9vdCwgYW5kIEVYUExBSU4gc2hvd3MgY3RpZCAoYW5kIGZvciBVUERBVEUsIGN0 aWQgcGx1cyB0YXJnZXQpLgorU0VUIGVuYWJsZV9wYXJ0aXRpb25fcHJ1bmluZyBUTyBvbjsKK0VY UExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgREVMRVRFIEZST00gcHQgV0hFUkUgZmFsc2U7CitF WFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFVQREFURSBwdCBTRVQgYiA9ICd4JyBXSEVSRSBm YWxzZTsKKworLS0gRm9yZWlnbiBjaGlsZCBub3QgcHJ1bmVkIGFuZCBpdCBkb2VzIG5vdCBzdXBw b3J0IERFTEVURTogZXJyb3IuCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIERFTEVURSBG Uk9NIHB0IFdIRVJFIGEgPSAxOworCistLSBSdW50aW1lIHBydW5pbmcgaW5jbHVkZXMgdGhlIGZv cmVpZ24gY2hpbGQgaW4gdGhlIHBsYW47IGV4ZWN1dG9yIGVycm9ycworLS0gc2luY2UgdGhlIGZv cmVpZ24gY2hpbGQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgY29tbWFuZC4KK0VYUExBSU4gKENPU1RT IE9GRiwgVkVSQk9TRSkgREVMRVRFIEZST00gcHQgV0hFUkUgKFNFTEVDVCBmYWxzZSk7CisKIERS T1AgVEFCTEUgcHQ7CiAKIC0tIGdlbmVyYXRlZCBjb2x1bW4gdGVzdHMKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZU1vZGlmeVRhYmxlLmMKaW5kZXggNGM1NjQ3YWMzOGEuLmI5NWY2MWY5MzExIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwpAQCAtNDg2Myw3ICs0ODYzLDE2IEBA IEV4ZWNJbml0TW9kaWZ5VGFibGUoTW9kaWZ5VGFibGUgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBp bnQgZWZsYWdzKQogCQkJewogCQkJCXJlc3VsdFJlbEluZm8tPnJpX1Jvd0lkQXR0Tm8gPQogCQkJ CQlFeGVjRmluZEp1bmtBdHRyaWJ1dGVJblRsaXN0KHN1YnBsYW4tPnRhcmdldGxpc3QsICJjdGlk Iik7Ci0JCQkJaWYgKCFBdHRyaWJ1dGVOdW1iZXJJc1ZhbGlkKHJlc3VsdFJlbEluZm8tPnJpX1Jv d0lkQXR0Tm8pKQorCisJCQkJLyoKKwkJCQkgKiBGb3IgaGVhcCByZWxhdGlvbnMsIGEgY3RpZCBq dW5rIGF0dHJpYnV0ZSBtdXN0IGJlIHByZXNlbnQuCisJCQkJICogRm9yIHBhcnRpdGlvbmVkIHRh YmxlcywgcmVxdWlyZSBpdCBvbmx5IHdoZW4gYXQgbGVhc3Qgb25lCisJCQkJICogbGVhZiByZXN1 bHQgcmVsYXRpb24gcmVtYWlucyBpbiB0aGUgcGxhbi4gIElmIHRoZSBwbGFuIGhhcworCQkJCSAq IG9ubHkgdGhlIGR1bW15IHJvb3QgKG5vIGxlYXZlcyksIG5vIHJvd3MgY2FuIGJlIHByb2R1Y2Vk CisJCQkJICogYW5kIGN0aWQgaXMgbm90IG5lZWRlZC4KKwkJCQkgKi8KKwkJCQlpZiAoIUF0dHJp YnV0ZU51bWJlcklzVmFsaWQocmVzdWx0UmVsSW5mby0+cmlfUm93SWRBdHRObykgJiYKKwkJCQkJ KHJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fCBucmVscyA+IDEpKQogCQkJ CQllbG9nKEVSUk9SLCAiY291bGQgbm90IGZpbmQganVuayBjdGlkIGNvbHVtbiIpOwogCQkJfQog CQkJZWxzZSBpZiAocmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCi0tIAoyLjQ3LjMK Cg== --000000000000bb089a06430e7248--