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 1voj7Z-00Cx4O-2I for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Feb 2026 14:17:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1voj7X-006qy9-2T for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Feb 2026 14:17:11 +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 1voj7X-006qy0-0W for pgsql-hackers@lists.postgresql.org; Sat, 07 Feb 2026 14:17:11 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1voj7U-00000000zzA-24aj for pgsql-hackers@lists.postgresql.org; Sat, 07 Feb 2026 14:17:09 +0000 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-59b77f2e43aso4562077e87.1 for ; Sat, 07 Feb 2026 06:17:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770473825; cv=none; d=google.com; s=arc-20240605; b=fW0FNN7RRAUvFthn31RFVReGT0mUTkLsy3xJjS/CJcv7r1sQj9RbrnUNSFr9Xn7LWw d29wLFxhNFgSNtKHFhuL0WIbA99EzyhOe9lI/DcQHuu2jd6PsSNlGiTigjuZZ9w0lOaG jZL/rtgvZEmUp28YUjVG5GnsqkQdyuogZYCWHQ3VKFdLYhQBfAcpW6tzRzyGYBhAfvUr i7vHUAWmSRr7/COtF/+W5qnJ3iBTlfDFyCLLot27O0p/jEzVXHCg/yeODyVEFHYU8hjd 6WOo7XyU4trH+N3IjMHIYUfaeNQq8G+JuBsoM7uHXe1qwlN8Q94MBf2GZ/FQyfAQtOGt 09Kw== 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=BHIx9oEiauZV1x2I80rlpH9QO0aVDEBtW6R88OoG9Go=; fh=w9Z/By4ajUlhK6tEnEjHra/kI6wBh9XbT+nszjnm23k=; b=JQP9zd4dkNb2wG8k3YJyJqia0HBiiryW76aSm155joYhUFFbbb8hl4d1Bsyj4rqgXc vbnXOUEbvRxTPIdajGu7ymmg5qWxX91EYGOI7ibdZxly4cT/CMfcYrjiN2jN3zlkWSWh e4mUuRFWdMJezjTbhykRbF8cfrQiSvIBvyHwWCvJl08d9lpW5GWUUsAGQztMVvxxs+M2 FxKqc209+IAO2uzWhXhIERAedtulCDjtI45urAPKCz2HzT3Swc9laJBrCAdBeBEuwnR7 zj5YNe7bLgNcBgxtN2P/JCNOAvQHC0/6KgOwlOJ6P6Nvrp/YrnlQosizhrxyO6wiO9Ab jYDA==; 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=1770473825; x=1771078625; 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=BHIx9oEiauZV1x2I80rlpH9QO0aVDEBtW6R88OoG9Go=; b=TX/N6bvhTwj3UALT0TugmUtCim8sZJIPe+8mY26+Bkfrijn4XjAO/KcxiLHtUbJMMZ kG1cw26kiISwb5Nb6CTcngBbptsgmi8cm76snix+7+G2jB8LMOPuOPrFxTwDJ/8D4CgJ vDDc2QR4h/fzlWooYOQybcOSHzr5agrnLAlHO75OkGhhJkNph8qvIeNxuGjQCvjAJWwB qoDrgq43EiUo9N3v7OBlARk1Nf7XnkfZeu6wpQRPurtQSzF6N4lvFAd/UkQwZ7Gcr80x yLArxq+mwd5Hi9yF23RD5te7yEmn5xNdCE8mZDQShBMpIqlEia2AAIb3pM8qgmKn/YHs Fszw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770473825; x=1771078625; 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=BHIx9oEiauZV1x2I80rlpH9QO0aVDEBtW6R88OoG9Go=; b=dk5j/slio8zbloeV/boO2jwL5Nn6I2P1zZDD+x9ys4k+KG2mnyLrpLy2XIG9lUOoJr 87OwWecMsxXD5g1anGmLVSBnxcidn0nkN3PXjm//by4rlnP6DGSphss9WWliOy2KkkKM hnH/vPk6CiYkCG3U4Pas/NwnI8XFe2o0hkBhhZJVWoE+IYAZnqQrbZDQre/wDBPEmh2Z lIBe5K6UM4K1xO3P34HjNrSU6KhNdX00x4D89pXBTNj5hjCUhLP7RnAiFX1/ws2OsvF5 sJwTXts+2+GRH5Ct7DfqSF4sLZgZX4fHoIiPM7ogEwnPkba5meCHh87AiGALTFS28Tih g8lA== X-Forwarded-Encrypted: i=1; AJvYcCU7TlfC+/nUWhlNd9kxGst6CRCcmBCid6Gj9REkRbFErawZuvXgO/oL/IkooUB0u6u/FomZ7V8xr+jx1ZSg@lists.postgresql.org X-Gm-Message-State: AOJu0YzHwQNc0vwC9bMQBQZkZtVJJHB8lyTAqy5WDhn48ulPZiC1YUjL 79ZwXnPT5dO91rDF4Zq3dgnOPmlHljznosaeZc+6KYmhA9bUmXzLWP5QikP0++U/MwhjOUiTpku PjMZT3h0LnGo3PBOn7qnDKazjVPPqJCo= X-Gm-Gg: AZuq6aIe0YiwdpRn0mI2GqYSlM8gWknc88XIBChv4MZu2Hj6je/6/F5BvevU8mZrzTf cR6wAXm9uTMYjc5WKOmuE0AUVj/OxDaq/3KIu12MLKPmo7e1wOl+xik+sui8wAnaCYQfeMjUP/2 KiIBo6Qg6nBIrUiEfMaNCJsX4mb+eUlIzapNggMejRg1T+v02AY4VuSKN7bd1Z1dT4tP5277Crd lH5k8rSNOk71JmVDCs3QEFCoDDc95ZKZ7YCr6yoZYYBJuKZ+zXcwtWFZAAqM7Iw/0Ja380WMs3G Q88rbiua7yi/kjqHknRHIhKFBT6YGoNWRlfhnjuw0vXj9/CRtpTBaprB X-Received: by 2002:a05:6512:b26:b0:59b:6a9c:530b with SMTP id 2adb3069b0e04-59e44cdb2demr1987522e87.26.1770473824424; Sat, 07 Feb 2026 06:17:04 -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> <8029.1770024929@localhost> <27597.1770395398@localhost> In-Reply-To: <27597.1770395398@localhost> From: Mihail Nikalayeu Date: Sat, 7 Feb 2026 15:16:27 +0100 X-Gm-Features: AZwV_QiGi1N-40lgSs-zHCbhEYZxBHHENV9oWsw8Ielu3Q5hifcPof6DR9Ksr5w Message-ID: Subject: Re: Adding REPACK [concurrently] To: Antonin Houska Cc: Alvaro Herrera , Pg Hackers , Robert Treat Content-Type: multipart/mixed; boundary="00000000000063b046064a3c8f11" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000063b046064a3c8f11 Content-Type: multipart/alternative; boundary="00000000000063b044064a3c8f0f" --00000000000063b044064a3c8f0f Content-Type: text/plain; charset="UTF-8" Hi! > Indeed, the server log seems to indicate relationship to > VACUUM: > 2026-02-01 16:44:58.878 UTC autovacuum worker[22589] LOG: automatic vacuum of table "postgres.pg_catalog.pg_class": index scans: 1 O, it's a good clue! I have added some vacuum calls for pg_class in a stress test - and now it fails much more often (check attachment). It is "ERROR: cache lookup failed for relation" - but I think it may share the cause with "attempted to overwrite invisible tuple. See: https://cirrus-ci.com/build/4852126532239360 - with "Use multiple snapshots to copy the data." https://cirrus-ci.com/build/6429084491710464 - with "Use background worker to do logical decoding." But I am unable to reproduce the issue with only "Add CONCURRENTLY option to REPACK command." https://cirrus-ci.com/build/6467070524653568 Best regards, Mikhail. --00000000000063b044064a3c8f0f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi!

<= /div>
>=C2=A0Indeed, the server log seems to indicate relationship t= o
> VACUUM:
> 2026-02-01 16:44:58.878 UTC autovacuum wor= ker[22589] LOG:=C2=A0 automatic vacuum of table "postgres.pg_catalog.p= g_class": index scans: 1

O, it's a go= od clue!

I have added some vacuum=C2=A0calls for p= g_class in a stress test - and now it fails much more often (check attachme= nt).

It is "ERROR: =C2=A0cache lookup failed = for relation" - but I think=C2=A0it may share the cause with "att= empted to overwrite invisible tuple.

See:
https://cirrus-ci.com/build/4852126532239360 - with "Use multipl= e snapshots to copy the data."
https://cirrus-ci.com/build/6= 429084491710464 - with "Use background worker to do logical decodi= ng."

But I am unable to reproduce the issue w= ith only "Add CONCURRENTLY option to REPACK command."
<= a href=3D"https://cirrus-ci.com/build/6467070524653568" target=3D"_blank">h= ttps://cirrus-ci.com/build/6467070524653568

Best regards,
Mikhail.

--00000000000063b044064a3c8f0f-- --00000000000063b046064a3c8f11 Content-Type: application/x-patch; name="nocfbot-vX-0001-stress-tests-for-repack-concurrently.patch" Content-Disposition: attachment; filename="nocfbot-vX-0001-stress-tests-for-repack-concurrently.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlcc8erc0 RnJvbSBjYmIzZmM0MDJlOGEwY2UxNGFiZWU0NmYzMjliMTVkZjYxNTdiN2YyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtoYWlsIE5pa2FsYXlldSA8bWloYWlsbmlrYWxheWV1QGdt YWlsLmNvbT4KRGF0ZTogVHVlLCAyNyBKYW4gMjAyNiAyMTo0MTo1NiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdlggMS8zXSBzdHJlc3MgdGVzdHMgZm9yIHJlcGFjayBjb25jdXJyZW50bHkKCi0tLQog Y29udHJpYi9hbWNoZWNrL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgfCAgIDIgKwogY29u dHJpYi9hbWNoZWNrL3QvMDA3X3JlcGFja19jb25jdXJyZW50bHkucGwgfCAxMTYgKysrKysrKysr KysrKysrKysrKwogY29udHJpYi9hbWNoZWNrL3QvMDA4X3JlcGFja19jb25jdXJyZW50bHkucGwg fCAxMDYgKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjI0IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2FtY2hlY2svdC8wMDdfcmVwYWNrX2NvbmN1 cnJlbnRseS5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvYW1jaGVjay90LzAwOF9yZXBh Y2tfY29uY3VycmVudGx5LnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL21lc29uLmJ1 aWxkIGIvY29udHJpYi9hbWNoZWNrL21lc29uLmJ1aWxkCmluZGV4IGQ1MTM3ZWY2OTFkLi5mNzI2 ZGIyZmZlMCAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL21lc29uLmJ1aWxkCisrKyBiL2Nv bnRyaWIvYW1jaGVjay9tZXNvbi5idWlsZApAQCAtNTAsNiArNTAsOCBAQCB0ZXN0cyArPSB7CiAg ICAgICAndC8wMDRfdmVyaWZ5X25idHJlZV91bmlxdWUucGwnLAogICAgICAgJ3QvMDA1X3BpdHIu cGwnLAogICAgICAgJ3QvMDA2X3ZlcmlmeV9naW4ucGwnLAorICAgICAgJ3QvMDA3X3JlcGFja19j b25jdXJyZW50bHkucGwnLAorICAgICAgJ3QvMDA4X3JlcGFja19jb25jdXJyZW50bHkucGwnLAog ICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svdC8wMDdfcmVwYWNr X2NvbmN1cnJlbnRseS5wbCBiL2NvbnRyaWIvYW1jaGVjay90LzAwN19yZXBhY2tfY29uY3VycmVu dGx5LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYjExMGIwYjU3 ZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYW1jaGVjay90LzAwN19yZXBhY2tfY29uY3Vy cmVudGx5LnBsCkBAIC0wLDAgKzEsMTE2IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjUs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgVGVzdCBSRVBBQ0sgQ09O Q1VSUkVOVExZIHdpdGggY29uY3VycmVudCBtb2RpZmljYXRpb25zCit1c2Ugc3RyaWN0OwordXNl IHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOworCit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl cjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKKwordXNlIFRlc3Q6Ok1vcmU7CisKK215 ICRub2RlOworCisjCisjIFRlc3Qgc2V0LXVwCisjCiskbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6 OkNsdXN0ZXItPm5ldygnQ0lDX3Rlc3QnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPmFwcGVuZF9j b25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAorCSdsb2NrX3RpbWVvdXQgPSAnIC4gKDEwMDAgKiAkUG9z dGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRpbWVvdXRfZGVmYXVsdCkpOworJG5vZGUtPmFwcGVuZF9j b25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3dhbF9sZXZlbCA9IGxvZ2ljYWwKK21heF93 b3JrZXJfcHJvY2Vzc2VzID0gMzIKKykpOworCitteSAkbj0xMDAwOworbXkgJG5vX2hvdCA9IGlu dChyYW5kKDIpKTsKKworJG5vZGUtPnN0YXJ0OworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxKENSRUFURSBUQUJMRSB0YmwoaSBpbnQgUFJJTUFSWSBLRVksIGogaW50KSkpOworCitpZiAo JG5vX2hvdCkKK3sKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHEoQ1JFQVRFIElOREVY IHRlc3RfaWR4IE9OIHRibChqKTspKTsKK30KK2Vsc2UKK3sKKwkkbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHEoQ1JFQVRFIElOREVYIHRlc3RfaWR4IE9OIHRibChpKTspKTsKK30KKworCisj IExvYWQgYW1jaGVjaworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFURSBFWFRF TlNJT04gYW1jaGVjaykpOworCisjIEluc2VydCAkbiByb3dzIGludG8gdGJsCiskbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHRibCBTRUxFQ1QgaSwgaSBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCRuKSBpCispKTsKKworbXkgJHN1bSA9ICRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcSgKKwlTRUxFQ1QgU1VNKGopIEFTIHN1bSBGUk9NIHRibAorKSk7CisK KworJG5vZGUtPnBnYmVuY2goCisnLS1uby12YWN1dW0gLS1jbGllbnQ9MTUgLS1qb2JzPTQgLS1l eGl0LW9uLWFib3J0IC0tdHJhbnNhY3Rpb25zPTUwMDAnLAorMCwKK1txcnthY3R1YWxseSBwcm9j ZXNzZWR9XSwKK1txcnteJH1dLAorJ2NvbmN1cnJlbnQgb3BlcmF0aW9ucyB3aXRoIFJFUEFDSyBD T05DVVJSRU5UTFknLAoreworCSdjb25jdXJyZW50X29wcycgPT4gcXEoCisJCVNFTEVDVCBwZ190 cnlfYWR2aXNvcnlfbG9jayg0Mik6OmludGVnZXIgQVMgZ290bG9jayBcXGdzZXQKKwkJXFxpZiA6 Z290bG9jaworCQkJUkVQQUNLIChDT05DVVJSRU5UTFkpIHRibCBVU0lORyBJTkRFWCB0YmxfcGtl eTsKKwkJCVNFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ3RibF9wa2V5JywgaGVhcGFsbGlu ZGV4ZWQgPT4gdHJ1ZSk7CisJCQlTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2NoZWNrKCd0ZXN0X2lk eCcsIGhlYXBhbGxpbmRleGVkID0+IHRydWUpOworCQkJXFxzbGVlcCAxMCBtcworCisJCQlSRVBB Q0sgKENPTkNVUlJFTlRMWSkgdGJsIFVTSU5HIElOREVYIHRlc3RfaWR4OworCQkJU0VMRUNUIGJ0 X2luZGV4X3BhcmVudF9jaGVjaygndGJsX3BrZXknLCBoZWFwYWxsaW5kZXhlZCA9PiB0cnVlKTsK KwkJCVNFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ3Rlc3RfaWR4JywgaGVhcGFsbGluZGV4 ZWQgPT4gdHJ1ZSk7CisJCQlcXHNsZWVwIDEwIG1zCisKKwkJCVJFUEFDSyAoQ09OQ1VSUkVOVExZ KSB0Ymw7CisJCQlTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2NoZWNrKCd0YmxfcGtleScsIGhlYXBh bGxpbmRleGVkID0+IHRydWUpOworCQkJU0VMRUNUIGJ0X2luZGV4X3BhcmVudF9jaGVjaygndGVz dF9pZHgnLCBoZWFwYWxsaW5kZXhlZCA9PiB0cnVlKTsKKwkJCVxcc2xlZXAgMTAgbXMKKworCQkJ U0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9jayg0Mik7CisJCVxcZWxzZQorCQkJXFxzZXQgbnVtX2Eg cmFuZG9tKDEsICRuKQorCQkJXFxzZXQgbnVtX2IgcmFuZG9tKDEsICRuKQorCQkJXFxzZXQgZGlm ZiByYW5kb20oMSwgMTAwMDApCisJCQlCRUdJTjsKKwkJCVVQREFURSB0YmwgU0VUIGogPSBqICsg OmRpZmYgV0hFUkUgaSA9IDpudW1fYTsKKwkJCVxcc2xlZXAgMSBtcworCQkJVVBEQVRFIHRibCBT RVQgaiA9IGogLSA6ZGlmZiBXSEVSRSBpID0gOm51bV9iOworCQkJXFxzbGVlcCAxIG1zCisJCQlD T01NSVQ7CisKKwkJCVxcc2V0IHYgcmFuZG9tKDEsIDMwMCkKKwkJCVxcIGlmIDp2ID0gMQorCQkJ CVZBQ1VVTSBBTkFMWVpFIHBnX2NhdGFsb2cucGdfY2xhc3M7CisJCQlcXCBlbmRpZgorCisJCQlC RUdJTgorCQkJLS1UUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFECisJ CQk7CisJCQlTRUxFQ1QgMTsKKwkJCVxcc2xlZXAgMSBtcworCQkJU0VMRUNUIENPQUxFU0NFKFNV TShqKSwgMCkgQVMgc3VtIEZST00gdGJsIFxcZ3NldCBwXworCQkJXFxpZiA6cF9zdW0gIT0gJHN1 bQorCQkJCUNPTU1JVDsKKwkJCQlTRUxFQ1QgKDpwX3N1bSkgLyAwOworCQkJXFxlbmRpZgorCisJ CQlDT01NSVQ7CisJCVxcZW5kaWYKKwkpCit9KTsKKworJG5vZGUtPnN0b3A7Citkb25lX3Rlc3Rp bmcoKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay90LzAwOF9yZXBhY2tfY29uY3VycmVu dGx5LnBsIGIvY29udHJpYi9hbWNoZWNrL3QvMDA4X3JlcGFja19jb25jdXJyZW50bHkucGwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMyOWU2ZDdlZDQ3Ci0tLSAvZGV2 L251bGwKKysrIGIvY29udHJpYi9hbWNoZWNrL3QvMDA4X3JlcGFja19jb25jdXJyZW50bHkucGwK QEAgLTAsMCArMSwxMDYgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNSwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IFJFUEFDSyBDT05DVVJSRU5UTFkg d2l0aCBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3Mg RkFUQUwgPT4gJ2FsbCc7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOworCit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG5vZGU7CisK KyMKKyMgVGVzdCBzZXQtdXAKKyMKKyRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+ bmV3KCdDSUNfdGVzdCcpOworJG5vZGUtPmluaXQ7Ciskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3Rn cmVzcWwuY29uZicsCisJJ2xvY2tfdGltZW91dCA9ICcgLiAoMTAwMCAqICRQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0KSk7Ciskbm9kZS0+YXBwZW5kX2NvbmYoCisJJ3Bv c3RncmVzcWwuY29uZicsIHFxKAord2FsX2xldmVsID0gbG9naWNhbAorbWF4X3dvcmtlcl9wcm9j ZXNzZXMgPSAzMgorKSk7CisKK215ICRub19ob3QgPSBpbnQocmFuZCgyKSk7CisKKyRub2RlLT5z dGFydDsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgVEFCTEUgdGJsKGkg U0VSSUFMIFBSSU1BUlkgS0VZLCBqIGludCkpKTsKK2lmICgkbm9faG90KQoreworCSRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgSU5ERVggdGVzdF9pZHggT04gdGJsKGopOykp OworfQorZWxzZQoreworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgSU5E RVggdGVzdF9pZHggT04gdGJsKGkpOykpOworfQorCisjIExvYWQgYW1jaGVjaworJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFURSBFWFRFTlNJT04gYW1jaGVjaykpOworCitteSAk c3VtID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKAorCVNFTEVDVCBTVU0oaikgQVMg c3VtIEZST00gdGJsCispKTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFU RSBVTkxPR0dFRCBTRVFVRU5DRSBsYXN0X2ogU1RBUlQgMSBJTkNSRU1FTlQgMTspKTsKKworCisk bm9kZS0+cGdiZW5jaCgKKyctLW5vLXZhY3V1bSAtLWNsaWVudD0xNSAtLWpvYnM9NCAtLWV4aXQt b24tYWJvcnQgLS10cmFuc2FjdGlvbnM9NTAwMCcsCiswLAorW3Fye2FjdHVhbGx5IHByb2Nlc3Nl ZH1dLAorW3Fye14kfV0sCisnY29uY3VycmVudCBvcGVyYXRpb25zIHdpdGggUkVQQUNLIENPTkNV UlJFTlRMWScsCit7CisJJ2NvbmN1cnJlbnRfb3BzJyA9PiBxcSgKKwkJU0VMRUNUIHBnX3RyeV9h ZHZpc29yeV9sb2NrKDQyKTo6aW50ZWdlciBBUyBnb3Rsb2NrIFxcZ3NldAorCQlcXGlmIDpnb3Rs b2NrCisJCQlSRVBBQ0sgKENPTkNVUlJFTlRMWSkgdGJsIFVTSU5HIElOREVYIHRibF9wa2V5Owor CQkJU0VMRUNUIGJ0X2luZGV4X3BhcmVudF9jaGVjaygndGJsX3BrZXknLCBoZWFwYWxsaW5kZXhl ZCA9PiB0cnVlKTsKKwkJCVNFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ3Rlc3RfaWR4Jywg aGVhcGFsbGluZGV4ZWQgPT4gdHJ1ZSk7CisJCQlcXHNsZWVwIDEwIG1zCisKKwkJCVJFUEFDSyAo Q09OQ1VSUkVOVExZKSB0YmwgVVNJTkcgSU5ERVggdGVzdF9pZHg7CisJCQlTRUxFQ1QgYnRfaW5k ZXhfcGFyZW50X2NoZWNrKCd0YmxfcGtleScsIGhlYXBhbGxpbmRleGVkID0+IHRydWUpOworCQkJ U0VMRUNUIGJ0X2luZGV4X3BhcmVudF9jaGVjaygndGVzdF9pZHgnLCBoZWFwYWxsaW5kZXhlZCA9 PiB0cnVlKTsKKwkJCVxcc2xlZXAgMTAgbXMKKworCQkJUkVQQUNLIChDT05DVVJSRU5UTFkpIHRi bDsKKwkJCVNFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ3RibF9wa2V5JywgaGVhcGFsbGlu ZGV4ZWQgPT4gdHJ1ZSk7CisJCQlTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2NoZWNrKCd0ZXN0X2lk eCcsIGhlYXBhbGxpbmRleGVkID0+IHRydWUpOworCQkJXFxzbGVlcCAxMCBtcworCisJCQlTRUxF Q1QgcGdfYWR2aXNvcnlfdW5sb2NrKDQyKTsKKwkJXFxlbHNlCisJCQlTRUxFQ1QgcGdfYWR2aXNv cnlfbG9jayg0Myk7CisJCQkJQkVHSU47CisJCQkJSU5TRVJUIElOVE8gdGJsKGopIFZBTFVFUyAo bmV4dHZhbCgnbGFzdF9qJykpIFJFVFVSTklORyBqIFxcZ3NldCBwXworCQkJCUNPTU1JVDsKKwkJ CVNFTEVDVCBwZ19hZHZpc29yeV91bmxvY2soNDMpOworCQkJXFxzbGVlcCAxIG1zCisJCQlcXHNl dCB2IHJhbmRvbSgxLCAzMDApCisJCQlcXCBpZiA6diA9IDEKKwkJCQlWQUNVVU0gQU5BTFlaRSBw Z19jYXRhbG9nLnBnX2NsYXNzOworCQkJXFwgZW5kaWYKKworCQkJQkVHSU4KKwkJCS0tVFJBTlNB Q1RJT04gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRAorCQkJOworCQkJU0VMRUNUIDE7 CisJCQlcXHNsZWVwIDEgbXMKKwkJCVNFTEVDVCBDT1VOVCgqKSBBUyBjb3VudCBGUk9NIHRibCBX SEVSRSBqIDw9IDpwX2ogXFxnc2V0IHBfCisJCQlcXGlmIDpwX2NvdW50ICE9IDpwX2oKKwkJCQlD T01NSVQ7CisJCQkJU0VMRUNUICg6cF9jb3VudCkgLyAwOworCQkJXFxlbmRpZgorCisJCQlDT01N SVQ7CisJCVxcZW5kaWYKKwkpCit9KTsKKworJG5vZGUtPnN0b3A7Citkb25lX3Rlc3RpbmcoKTsK LS0gCjIuNDMuMAoK --00000000000063b046064a3c8f11--