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 1vmdQg-00EcIJ-2p for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Feb 2026 19:48:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vmdPe-00AOPi-1J for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Feb 2026 19:47:15 +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 1vmdPd-00AOPa-2d for pgsql-hackers@lists.postgresql.org; Sun, 01 Feb 2026 19:47:14 +0000 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vmdPc-000000004rr-1nOp for pgsql-hackers@lists.postgresql.org; Sun, 01 Feb 2026 19:47:13 +0000 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-59b6d5bd575so3638880e87.1 for ; Sun, 01 Feb 2026 11:47:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769975230; cv=none; d=google.com; s=arc-20240605; b=gXSLiCYgOp6otH/hyuKmDcuFSDaY5dLBbbNNeNpXay9MagxGVcf27oovP0+pzJMQR4 f9CIywpWq9TKIBOhg17YwXLr1CqdGzGP5BGgqx/A4dRQdG7oKtrwSOaSIngKdEPY/Y5m d2vimC2vfurf214fhBI3SD91h5XyGnAWTAiYX6V4O/6Z/H7nUhr5jMqzrBVzqs9EdBP0 EZuX/nJGiyZMwn876djZIvk2olXl3cs4XsM0TflifQhil9oVRW7am8FV42fUtd+ej7r5 0AGqN4zsSyOz9Xpo+9ulAPK9OV6B8DchDJWTqwr8N2ZD279LqkSD0hvGStQE4x9ly1Dj Y8JQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=qflZJ65CymW7UNk4qc3/s1pegOgI1MWVOXXtg4H1phQ=; fh=P7ELQtCu12yl7KH6WT2wo9W/N8yxM4piNLDnb5/KRZs=; b=cogJbL/FRjtfehIdQT9KjWQJ/flevL1lxxd88/kPkhiVYGzB8nasmXcgZDZGNdnPvG zlSzs9/qbShD9t3LLbs7Hnr+sn9woBc/3iDWvrllWJCcdBPUoyBSECKfBAr3JgX09TV1 2MZbJZTcFtLQ0LZMhc+MHCKcNH9MdKjkz5+iIxm3waAnrzNXl30s6KtIjp6JzNvq/Arg MvEHfgeFYsxnN7Y0uwyjh7RO3TMk0J6/0KSlfNP1uXxzcGWPTDC4ud5oQY6zB+fAtzi0 XtV90MUsPExsTCfDKaZquYedTi0PNNMDeGstR1aUhvRPWIT0u6Q+FZQwnyklZGnnoQNZ FnLA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769975230; x=1770580030; 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=qflZJ65CymW7UNk4qc3/s1pegOgI1MWVOXXtg4H1phQ=; b=lh89Uslc/lYHPJcGmgDGgS0y6enEkZzRz8MpDMfexyqxdiI38uub/WTl3aEU04QMO7 6pjMxjUV20VjHW8r/Vq33AVNNF19BigjVY3e0Nka76eOGUVK6psAzm3maQY7wzt9CWSN +x6m7NEXO52yJqeEwRSPeIdhHv78MlSyajYlIuLReF5ltkVoe8G7GsVt51sumWi4MCuO HnKrgTs/DR+JOxZa5GEFxGVyOBhNm/3bL9SbsGDs626d+Eli67qAWERNe0Tvmx1s1Ucq 9zM4dnxDL2q0IlRylrM+gOez8PFu5ozwLesaZt6aAGJC6BjwvhRTc/bY1AAlf2rwkI0x IPVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769975230; x=1770580030; 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=qflZJ65CymW7UNk4qc3/s1pegOgI1MWVOXXtg4H1phQ=; b=KzYGImjv+5xIo1/IjkympSOa+FtaZL4TWfqkFC8v4Ue/JGxl/FbiXChjkKmvrjFJU8 NIbIki9rdgLy5B54hxzUnzR6oH7j/XjrBDjO96COZgDr3Mpe6OGpOOjk39+9lH6WIZ4o 9NK2TLMH8YlbKy8Xzs7ZucyaRX6Sd263uLRP3li9kj0KKVctIDXsh1bdSd4Q1p3gcf0F FuvXhO8AuHGuHUZVBMVd+75yuk5zwLRDWAQNKVTm78V97vLlmBbtXzX8g1cNJ66GhecN oRvctw346G3jVAijDXtos6fuA56/PIqymg5ZgxhIHxhgBBKJwmRnopc21QbfUgxhAS7q k87Q== X-Forwarded-Encrypted: i=1; AJvYcCWuZmSlM389vtEmzDjgyJrHORNLZ0W3OMo/oaXyESTfCJSW4n61uVLspgKGADH6NqDOn16wShjoH9CKrl2B@lists.postgresql.org X-Gm-Message-State: AOJu0YyIU3tLk8H9IRLv3Mp6QOeqyvmdxk78uMgNvRemiiI07wFPdTbS hLFropWfrmoifSbQEup2dgSi4/jXE+/npVTTX4WkuYoTK6Min2iIx7GxPLnQ0t2mXsXe69XvenY 1nlt83I4+qFK3lY/FH+l+DFm/GQc8h04= X-Gm-Gg: AZuq6aJdjUOq2g6qnqbn83Zi3VpIDLun37dC1p6npb3NkedIsc29F1p22qfcwVCtEmV RYyVQKUffTIUJVNrT9qfXaUSdrG0l57/zCYWTPNigtxQWkpZ8SxcDUwtBAj3og4nvIhMPBIs0Wh B02N1Zs6doiIPcAD3wE1/zCKO/+8ZkSk70WTzwvczb2XR9TAkEx9L/GO0+ZFtkOQWt5QL4bjJie ziKsL7GDTZgSkHLcxFoOlY013Q2Xff7OxplIqua0nHDkKuP19oX1tydM+k2jRBKLwNUN8fz30d2 eSiOeHNRfxVcLlmYivfEvYRG1q4slhAf433PfKvmY7aWOEidMvsbIcRv X-Received: by 2002:a05:6512:131b:b0:59e:1c0e:6735 with SMTP id 2adb3069b0e04-59e1c0e6807mr2446999e87.15.1769975229339; Sun, 01 Feb 2026 11:47:09 -0800 (PST) MIME-Version: 1.0 References: <202512151349.vlq3mpfniyk3@alvherre.pgsql> <11247.1767609087@localhost> <11558.1767609632@localhost> <141054.1767891540@localhost> <137668.1768235610@localhost> <74802.1769071060@localhost> <3901.1769412880@localhost> <88003.1769511456@localhost> <57210.1769801636@localhost> In-Reply-To: <57210.1769801636@localhost> From: Mihail Nikalayeu Date: Sun, 1 Feb 2026 20:46:31 +0100 X-Gm-Features: AZwV_QisNzYR5-mxs6OvUfTEFW6iJeDTR6Hhn6S2yY-5PhlG-rgz9Hi9DQ3G_AE Message-ID: Subject: Re: Adding REPACK [concurrently] To: Antonin Houska Cc: Alvaro Herrera , Pg Hackers , Robert Treat Content-Type: multipart/mixed; boundary="000000000000ce6fd20649c878eb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ce6fd20649c878eb Content-Type: multipart/alternative; boundary="000000000000ce6fd10649c878e9" --000000000000ce6fd10649c878e9 Content-Type: text/plain; charset="UTF-8" Hello! PART 1: -------------- Something still wrong with 0006, check: 'pgbench: error: client 12 script 0 aborted in command 2 query 0: ERROR: attempted to overwrite invisible tuple https://cirrus-ci.com/task/6385612527239168?logs=test_world#L300 But it is hard to reproduce - happened once. -------------- Also, once I got [16:25:18.641] # at /tmp/cirrus-ci-build/contrib/amcheck/t/ 007_repack_concurrently.pl line 57. [16:25:18.641] # 'pgbench: error: client 6 script 0 aborted in command 2 query 0: ERROR: relation 21856 deleted while still in use https://cirrus-ci.com/task/4686014242881536?logs=test_world#L384 It was the PROC_IN_REPACK version (see below), but I think it is not related to it. But I'm not 100% sure. PART 2: > I'm considering a special kind of relation whose catalog entries remain in the > catalog cache and are never written to the catalog tables. (Unlike temporary > relation, it'd be WAL logged so that REPACK can be replayed on standby.) I think it is too complicated, especially including replication logic. Approach with catalog-only xid is much simpler, it was even committed (yes, reverted but because of another reason). Essentially we have two issues: 1) make sure catalog entities are not dropped because the vacuum 2) make sure data in new table is not vacuumed also For the first PROC_IN_REPACK is enough. For second - depends if MVCC-safe (original xmin/xmax) are preserved. If yes - looks like nothing more needed. If not - just prevent the vacuum from touching the table (but, looks like it is done already, because lock is held on NewHeap until commit). And additionally reset snapshots during the index building itself, but it is scope of another patch. I have implemented PROC_IN_REPACK POC in the attached patch. Also, I am still not sure if MVCC-safe implementation is worth its complexity compared with "relcheckxmin"approach [0]. [0]: https://www.postgresql.org/message-id/CADzfLwUEH5%2BLjCN%2B6kRfSsXwuou8rKXyVV42Wi-O_TG0360Kug%40mail.gmail.com Best regards, Mikhail. --000000000000ce6fd10649c878e9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello!


PART 1:

=
--------------

Something still wrong with 000= 6, check:

'pgbench: error: client 12 script 0 aborted in = command 2 query 0: ERROR: =C2=A0attempted to overwrite invisible tuple

But it is hard to re= produce - happened once.

--------------
=
Also, once I got
[16:25:18.641] # =C2=A0 at /tmp/c= irrus-ci-build/contrib/amcheck/t/007_repack_concurrently.pl line 57.
[16:25:18.641] # =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'pgbench: error: c= lient 6 script 0 aborted in command 2 query 0: ERROR: =C2=A0relation 21856 = deleted while still in use

It was the PR= OC_IN_REPACK version (see below), but I think it is not related to it. But = I'm not 100% sure.


= PART 2:

> I'm consi= dering a special kind of relation whose catalog entries remain in the
&g= t;=C2=A0 catalog cache and are never written to the catalog tables. (Unlike= temporary
>=C2=A0 relation, it'd be WAL logged so that REPACK ca= n be replayed on standby.)

I think it = is too complicated, especially including=C2=A0replication logic.
= Approach=C2=A0with catalog-only xid is much simpler, it was even committed = (yes, reverted but because of another reason).

Ess= entially we have two issues:
1) make sure catalog entities are no= t dropped because the vacuum
2) make sure data=C2=A0in new table = is not vacuumed also

For the first PROC_IN_REPACK = is enough.
For second - depends if MVCC-safe (original xmin/xmax)= are preserved. If yes - looks like nothing more needed.

If not - just=C2=A0prevent the vacuum from touching=C2=A0the table (= but, looks like it is done already, because lock is held on NewHeap until c= ommit).
And additionally reset snapshots during the index buildin= g itself, but it is scope of another patch.

I have= implemented PROC_IN_REPACK POC=C2=A0 in the attached patch.

=
Also, I am still not sure if MVCC-safe implementation is worth i= ts=C2=A0complexity compared with "relcheckxmin"approach [0].

Best regards,
Mikhail.

--000000000000ce6fd10649c878e9-- --000000000000ce6fd20649c878eb Content-Type: application/octet-stream; name="vX-0001-Handle-VACUUM-interaction-with-REPACK-CONCURRENTL.patch" Content-Disposition: attachment; filename="vX-0001-Handle-VACUUM-interaction-with-REPACK-CONCURRENTL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ml3w2zu50 RnJvbSAyZWRhZjZkOWE0MjdjOWY2ODM5ODliZDhlYjFlZDRkYTk1Nzk1NDFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtoYWlsIE5pa2FsYXlldSA8bWloYWlsbmlrYWxheWV1QGdt YWlsLmNvbT4KRGF0ZTogU3VuLCAxIEZlYiAyMDI2IDE0OjIxOjQxICswMTAwClN1YmplY3Q6IFtQ QVRDSCB2WF0gSGFuZGxlIFZBQ1VVTSBpbnRlcmFjdGlvbiB3aXRoIFJFUEFDSyBDT05DVVJSRU5U TFkgYW5kCiBzZXBhcmF0ZSBjYXRhbG9nL2RhdGEgaG9yaXpvbnMsIGJhc2VkIG9uIGQ5ZDA3NjIy MmY1CgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYyAgICAgIHwgMzIgKysrKysr KysrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMg fCAzNiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9w cm9jLmggICAgICAgICAgfCAgNiArKystLQogMyBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9j bHVzdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMKaW5kZXggNDAzYmRjZGEz MmUuLjVhZmQ2ZTgwODhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVy LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jCkBAIC0yOTIsNyArMjkyLDcg QEAgc3RhdGljIHZvaWQgZXhwb3J0X3NuYXBzaG90KFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJ CURlY29kaW5nV29ya2VyU2hhcmVkICpzaGFyZWQpOwogc3RhdGljIHZvaWQgUHJvY2Vzc1JlcGFj a01lc3NhZ2UoU3RyaW5nSW5mbyBtc2cpOwogc3RhdGljIGNvbnN0IGNoYXIgKlJlcGFja0NvbW1h bmRBc1N0cmluZyhSZXBhY2tDb21tYW5kIGNtZCk7Ci0KK3N0YXRpYyB2b2lkIHNldF9pbl9yZXBh Y2tfcHJvY2ZsYWdzKHZvaWQpOwogCiAjZGVmaW5lIFJFUExfUExVR0lOX05BTUUgICAicGdvdXRw dXRfcmVwYWNrIgogCkBAIC0zNTUsNiArMzU1LDE0IEBAIEV4ZWNSZXBhY2soUGFyc2VTdGF0ZSAq cHN0YXRlLCBSZXBhY2tTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCQkJCXBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIG9wdC0+bG9jYXRpb24pKTsKIAl9CiAKKwlpZiAoKHBhcmFtcy5v cHRpb25zICYgQ0xVT1BUX0NPTkNVUlJFTlQpICE9IDApCisJeworCQlJbnZhbGlkYXRlQ2F0YWxv Z1NuYXBzaG90KCk7CisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CisJCXNldF9pbl9yZXBhY2tfcHJv Y2ZsYWdzKCk7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkp OworCX0KKwogCS8qCiAJICogRGV0ZXJtaW5lIHRoZSBsb2NrIG1vZGUgZXhwZWN0ZWQgYnkgY2x1 c3Rlcl9yZWwoKS4KIAkgKgpAQCAtNTA5LDYgKzUxNywxMiBAQCBFeGVjUmVwYWNrKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUmVwYWNrU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJY29udGlu dWU7CiAJCX0KIAorCQlpZiAoKHBhcmFtcy5vcHRpb25zICYgQ0xVT1BUX0NPTkNVUlJFTlQpICE9 IDApCisJCXsKKwkJCUludmFsaWRhdGVDYXRhbG9nU25hcHNob3QoKTsKKwkJCXNldF9pbl9yZXBh Y2tfcHJvY2ZsYWdzKCk7CisJCX0KKwogCQkvKiBmdW5jdGlvbnMgaW4gaW5kZXhlcyBtYXkgd2Fu dCBhIHNuYXBzaG90IHNldCAqLwogCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25T bmFwc2hvdCgpKTsKIApAQCAtNDM1NywzICs0MzcxLDE5IEBAIFByb2Nlc3NSZXBhY2tNZXNzYWdl KFN0cmluZ0luZm8gbXNnKQogCQkJfQogCX0KIH0KKworc3RhdGljIHZvaWQKK3NldF9pbl9yZXBh Y2tfcHJvY2ZsYWdzKHZvaWQpCit7CisJLyoKKwkgKiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxl ZCBiZWZvcmUgaW5zdGFsbGluZyB4aWQgb3IgeG1pbiBpbiBNeVByb2M7CisJICogb3RoZXJ3aXNl LCBjb25jdXJyZW50IHByb2Nlc3NlcyBjb3VsZCBzZWUgYW4gWG1pbiB0aGF0IG1vdmVzIGJhY2t3 YXJkcy4KKwkgKi8KKwlBc3NlcnQoTXlQcm9jLT54aWQgPT0gSW52YWxpZFRyYW5zYWN0aW9uSWQg JiYKKwkJICAgTXlQcm9jLT54bWluID09IEludmFsaWRUcmFuc2FjdGlvbklkKTsKKworCUxXTG9j a0FjcXVpcmUoUHJvY0FycmF5TG9jaywgTFdfRVhDTFVTSVZFKTsKKwlNeVByb2MtPnN0YXR1c0Zs YWdzIHw9IFBST0NfSU5fUkVQQUNLOworCVByb2NHbG9iYWwtPnN0YXR1c0ZsYWdzW015UHJvYy0+ cGd4YWN0b2ZmXSA9IE15UHJvYy0+c3RhdHVzRmxhZ3M7CisJTFdMb2NrUmVsZWFzZShQcm9jQXJy YXlMb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJh eS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggNmJlNTY1MTU1 YWIuLjljZWRlMDYzMzhhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9j YXJyYXkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtMTY0 Miw3ICsxNjQyLDEyIEBAIFRyYW5zYWN0aW9uSWRJc0luUHJvZ3Jlc3MoVHJhbnNhY3Rpb25JZCB4 aWQpCiAgKiByZWxhdGlvbnMgdGhhdCdzIG5vdCByZXF1aXJlZCwgc2luY2Ugb25seSBiYWNrZW5k cyBpbiBteSBvd24gZGF0YWJhc2UgY291bGQKICAqIGV2ZXIgc2VlIHRoZSB0dXBsZXMgaW4gdGhl bS4gQWxzbywgd2UgY2FuIGlnbm9yZSBjb25jdXJyZW50bHkgcnVubmluZyBsYXp5CiAgKiBWQUNV VU1zIGJlY2F1c2UgKGEpIHRoZXkgbXVzdCBiZSB3b3JraW5nIG9uIG90aGVyIHRhYmxlcywgYW5k IChiKSB0aGV5Ci0gKiBkb24ndCBuZWVkIHRvIGRvIHNuYXBzaG90LWJhc2VkIGxvb2t1cHMuCisg KiBkb24ndCBuZWVkIHRvIGRvIHNuYXBzaG90LWJhc2VkIGxvb2t1cHMuICBTaW1pbGFybHksIGZv ciB0aGUgbm9uLWNhdGFsb2cKKyAqIGhvcml6b24sIHdlIGNhbiBpZ25vcmUgUkVQQUNLIENPTkNV UlJFTlRMWSBmb3IgdGhlCisgKiBzYW1lIHJlYXNvbnMgYW5kIGJlY2F1c2UgdGhleSBjYW4ndCBy dW4gaW4gdHJhbnNhY3Rpb24gYmxvY2tzLiAgKFRoZXkgYXJlCisgKiBub3QgcG9zc2libGUgdG8g aWdub3JlIGZvciBjYXRhbG9ncywgYmVjYXVzZSBSRVBBQ0sgZG8gc29tZSBjYXRhbG9nCisgKiBv cGVyYXRpb25zLikgIERvIG5vdGUgdGhhdCB0aGlzIG1lYW5zIHRoYXQgUkVQQUNLIG11c3QgdXNl IGEgbG9jayBsZXZlbAorICogdGhhdCBjb25mbGljdHMgd2l0aCBWQUNVVU0uCiAgKgogICogVGhp cyBhbHNvIGNvbXB1dGVzIGEgaG9yaXpvbiB1c2VkIHRvIHRydW5jYXRlIHBnX3N1YnRyYW5zLiBG b3IgdGhhdAogICogYmFja2VuZHMgaW4gYWxsIGRhdGFiYXNlcyBoYXZlIHRvIGJlIGNvbnNpZGVy ZWQsIGFuZCBjb25jdXJyZW50bHkgcnVubmluZwpAQCAtMTY4OSw5ICsxNjk0LDYgQEAgQ29tcHV0 ZVhpZEhvcml6b25zKENvbXB1dGVYaWRIb3Jpem9uc1Jlc3VsdCAqaCkKIAlib29sCQlpbl9yZWNv dmVyeSA9IFJlY292ZXJ5SW5Qcm9ncmVzcygpOwogCVRyYW5zYWN0aW9uSWQgKm90aGVyX3hpZHMg PSBQcm9jR2xvYmFsLT54aWRzOwogCi0JLyogaW5mZXJyZWQgYWZ0ZXIgUHJvY0FycmF5TG9jayBp cyByZWxlYXNlZCAqLwotCWgtPmNhdGFsb2dfb2xkZXN0X25vbnJlbW92YWJsZSA9IEludmFsaWRU cmFuc2FjdGlvbklkOwotCiAJTFdMb2NrQWNxdWlyZShQcm9jQXJyYXlMb2NrLCBMV19TSEFSRUQp OwogCiAJaC0+bGF0ZXN0X2NvbXBsZXRlZCA9IFRyYW5zYW1WYXJpYWJsZXMtPmxhdGVzdENvbXBs ZXRlZFhpZDsKQEAgLTE3MTEsNiArMTcxMyw3IEBAIENvbXB1dGVYaWRIb3Jpem9ucyhDb21wdXRl WGlkSG9yaXpvbnNSZXN1bHQgKmgpCiAKIAkJaC0+b2xkZXN0X2NvbnNpZGVyZWRfcnVubmluZyA9 IGluaXRpYWw7CiAJCWgtPnNoYXJlZF9vbGRlc3Rfbm9ucmVtb3ZhYmxlID0gaW5pdGlhbDsKKwkJ aC0+Y2F0YWxvZ19vbGRlc3Rfbm9ucmVtb3ZhYmxlID0gaW5pdGlhbDsKIAkJaC0+ZGF0YV9vbGRl c3Rfbm9ucmVtb3ZhYmxlID0gaW5pdGlhbDsKIAogCQkvKgpAQCAtMTgwOSwxMSArMTgxMiwyNiBA QCBDb21wdXRlWGlkSG9yaXpvbnMoQ29tcHV0ZVhpZEhvcml6b25zUmVzdWx0ICpoKQogCQkJKHN0 YXR1c0ZsYWdzICYgUFJPQ19BRkZFQ1RTX0FMTF9IT1JJWk9OUykgfHwKIAkJCWluX3JlY292ZXJ5 KQogCQl7Ci0JCQloLT5kYXRhX29sZGVzdF9ub25yZW1vdmFibGUgPQotCQkJCVRyYW5zYWN0aW9u SWRPbGRlcihoLT5kYXRhX29sZGVzdF9ub25yZW1vdmFibGUsIHhtaW4pOworCQkJLyoKKwkJCSAq IFdlIGNhbiBpZ25vcmUgdGhpcyBiYWNrZW5kIGlmIGl0J3MgcnVubmluZyBSRVBBQ0sKKwkJCSAq IENPTkNVUlJFTlRMWSAtIGJ1dAorCQkJICogb25seSBvbiB2YWN1dW1zIG9mIHVzZXItZGVmaW5l ZCB0YWJsZXMuCisJCQkgKi8KKwkJCWlmICghKHN0YXR1c0ZsYWdzICYgUFJPQ19JTl9SRVBBQ0sp KQorCQkJCWgtPmRhdGFfb2xkZXN0X25vbnJlbW92YWJsZSA9CisJCQkJCVRyYW5zYWN0aW9uSWRP bGRlcihoLT5kYXRhX29sZGVzdF9ub25yZW1vdmFibGUsIHhtaW4pOworCisJCQkvKiBDYXRhbG9n IHRhYmxlcyBuZWVkIHRvIGNvbnNpZGVyIGFsbCBiYWNrZW5kcyBpbiB0aGlzIGRiICovCisJCQlo LT5jYXRhbG9nX29sZGVzdF9ub25yZW1vdmFibGUgPQorCQkJCVRyYW5zYWN0aW9uSWRPbGRlciho LT5jYXRhbG9nX29sZGVzdF9ub25yZW1vdmFibGUsIHhtaW4pOworCiAJCX0KIAl9CiAKKwkvKiBj YXRhbG9nIGhvcml6b24gc2hvdWxkIG5ldmVyIGJlIGxhdGVyIHRoYW4gZGF0YSAqLworCUFzc2Vy dChUcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhoLT5jYXRhbG9nX29sZGVzdF9ub25yZW1v dmFibGUsCisJCQkJCQkJCQkJIGgtPmRhdGFfb2xkZXN0X25vbnJlbW92YWJsZSkpOworCiAJLyoK IAkgKiBJZiBpbiByZWNvdmVyeSBmZXRjaCBvbGRlc3QgeGlkIGluIEtub3duQXNzaWduZWRYaWRz LCB3aWxsIGJlIGFwcGxpZWQKIAkgKiBhZnRlciBsb2NrIGlzIHJlbGVhc2VkLgpAQCAtMTgzNSw2 ICsxODUzLDggQEAgQ29tcHV0ZVhpZEhvcml6b25zKENvbXB1dGVYaWRIb3Jpem9uc1Jlc3VsdCAq aCkKIAkJCVRyYW5zYWN0aW9uSWRPbGRlcihoLT5zaGFyZWRfb2xkZXN0X25vbnJlbW92YWJsZSwg a2F4bWluKTsKIAkJaC0+ZGF0YV9vbGRlc3Rfbm9ucmVtb3ZhYmxlID0KIAkJCVRyYW5zYWN0aW9u SWRPbGRlcihoLT5kYXRhX29sZGVzdF9ub25yZW1vdmFibGUsIGtheG1pbik7CisJCWgtPmNhdGFs b2dfb2xkZXN0X25vbnJlbW92YWJsZSA9CisJCQlUcmFuc2FjdGlvbklkT2xkZXIoaC0+Y2F0YWxv Z19vbGRlc3Rfbm9ucmVtb3ZhYmxlLCBrYXhtaW4pOwogCQkvKiB0ZW1wIHJlbGF0aW9ucyBjYW5u b3QgYmUgYWNjZXNzZWQgaW4gcmVjb3ZlcnkgKi8KIAl9CiAKQEAgLTE4NjIsNyArMTg4Miw5IEBA IENvbXB1dGVYaWRIb3Jpem9ucyhDb21wdXRlWGlkSG9yaXpvbnNSZXN1bHQgKmgpCiAJaC0+c2hh cmVkX29sZGVzdF9ub25yZW1vdmFibGUgPQogCQlUcmFuc2FjdGlvbklkT2xkZXIoaC0+c2hhcmVk X29sZGVzdF9ub25yZW1vdmFibGUsCiAJCQkJCQkgICBoLT5zbG90X2NhdGFsb2dfeG1pbik7Ci0J aC0+Y2F0YWxvZ19vbGRlc3Rfbm9ucmVtb3ZhYmxlID0gaC0+ZGF0YV9vbGRlc3Rfbm9ucmVtb3Zh YmxlOworCWgtPmNhdGFsb2dfb2xkZXN0X25vbnJlbW92YWJsZSA9CisJCVRyYW5zYWN0aW9uSWRP bGRlcihoLT5jYXRhbG9nX29sZGVzdF9ub25yZW1vdmFibGUsCisJCQkJCQkgICBoLT5zbG90X3ht aW4pOwogCWgtPmNhdGFsb2dfb2xkZXN0X25vbnJlbW92YWJsZSA9CiAJCVRyYW5zYWN0aW9uSWRP bGRlcihoLT5jYXRhbG9nX29sZGVzdF9ub25yZW1vdmFibGUsCiAJCQkJCQkgICBoLT5zbG90X2Nh dGFsb2dfeG1pbik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCBiL3Ny Yy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oCmluZGV4IDAzOWJjODM1M2JlLi41Mzk2NjgwZDJiOSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKKysrIGIvc3JjL2luY2x1ZGUv c3RvcmFnZS9wcm9jLmgKQEAgLTY2LDE2ICs2NiwxOCBAQCBzdHJ1Y3QgWGlkQ2FjaGUKICNkZWZp bmUJCVBST0NfQUZGRUNUU19BTExfSE9SSVpPTlMJMHgyMAkvKiB0aGlzIHByb2MncyB4bWluIG11 c3QgYmUKIAkJCQkJCQkJCQkJCSAqIGluY2x1ZGVkIGluIHZhY3V1bSBob3Jpem9ucwogCQkJCQkJ CQkJCQkJICogaW4gYWxsIGRhdGFiYXNlcyAqLworI2RlZmluZQkJUFJPQ19JTl9SRVBBQ0sJCQkJ MHg0MAorCiAKIC8qIGZsYWdzIHJlc2V0IGF0IEVPWGFjdCAqLwogI2RlZmluZQkJUFJPQ19WQUNV VU1fU1RBVEVfTUFTSyBcCi0JKFBST0NfSU5fVkFDVVVNIHwgUFJPQ19JTl9TQUZFX0lDIHwgUFJP Q19WQUNVVU1fRk9SX1dSQVBBUk9VTkQpCisJKFBST0NfSU5fVkFDVVVNIHwgUFJPQ19JTl9TQUZF X0lDIHwgUFJPQ19WQUNVVU1fRk9SX1dSQVBBUk9VTkQgfCBQUk9DX0lOX1JFUEFDSykKIAogLyoK ICAqIFhtaW4tcmVsYXRlZCBmbGFncy4gTWFrZSBzdXJlIGFueSBmbGFncyB0aGF0IGFmZmVjdCBo b3cgdGhlIHByb2Nlc3MnIFhtaW4KICAqIHZhbHVlIGlzIGludGVycHJldGVkIGJ5IFZBQ1VVTSBh cmUgaW5jbHVkZWQgaGVyZS4KICAqLwotI2RlZmluZQkJUFJPQ19YTUlOX0ZMQUdTIChQUk9DX0lO X1ZBQ1VVTSB8IFBST0NfSU5fU0FGRV9JQykKKyNkZWZpbmUJCVBST0NfWE1JTl9GTEFHUyAoUFJP Q19JTl9WQUNVVU0gfCBQUk9DX0lOX1NBRkVfSUMgfCBQUk9DX0lOX1JFUEFDSykKIAogLyoKICAq IFdlIGFsbG93IGEgbGltaXRlZCBudW1iZXIgb2YgIndlYWsiIHJlbGF0aW9uIGxvY2tzIChBY2Nl c3NTaGFyZUxvY2ssCi0tIAoyLjQzLjAKCg== --000000000000ce6fd20649c878eb--