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 1vdKqa-00GtjC-2L for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jan 2026 04:08:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vdKqZ-00Bj5o-1h for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jan 2026 04:08:36 +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 1vdKqZ-00Bj5g-0K for pgsql-hackers@lists.postgresql.org; Wed, 07 Jan 2026 04:08:36 +0000 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vdKqY-004eYn-1K for pgsql-hackers@lists.postgresql.org; Wed, 07 Jan 2026 04:08:35 +0000 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-b76b5afdf04so308408366b.1 for ; Tue, 06 Jan 2026 20:08:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767758913; x=1768363713; 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=Fh6aqOiVFe6h+JJTF/z6kN0mL3HY1S81kMbCi2WZMRY=; b=EiGxkTWKrghbZZ08vtMyFQy1p4HTj1ttNqNjkxcHimMGeVJJHQR6OUt+M4F7TtX9d7 Hy70w5uId+hSEvvsQPFxwVfLE/aP+I5GnI4qVnCp/Agg/rk5KzhtFs7lKZtZiW60RuVy Bdq1cmEqQKw3xZ6Rd2ADzTgnXhy0Sz5wppTVB6phHlCb2u6Jd919LXijFTddJoNjSzWQ yMzt8zd9N4JgxzpiMQxESKF98npLAPr7cZKLHOEdfjpBoOgacD5Kfc8qM8GP8k/2fs7e PJS1q/mdashg/ytsZqeG4hoqz66u/6pCC3kmEwQ32VOxGyf1TW+waLnskFwqIEBYpLTU wvJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767758913; x=1768363713; 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=Fh6aqOiVFe6h+JJTF/z6kN0mL3HY1S81kMbCi2WZMRY=; b=LgW7VfbMRi8ZKaR9eIE5oQ5o2ok//hiRhvOifB6wKaU2UGY94dJ60Cwi6dO6mhxrkS yTETqgNMCiM5+3qEV94gztVScFKjED2goPbCWm2Ih6sGjef39XSL5c8+8CmxC2zKJ4dd u7FYM9Kq3UcNAkM40JSmADFbQ63OHUzUDdi9VQODm2SRQQzHw9Eh2SoEDrz2MbhJdZcp 7HXdRrh7orWB24P82W2CVLrcsw9NBmCpFgGDdpUk27LCqQdJdyDMOaAX0xYiPUMRET8F /6+5JwVuD7n1X+35Q4vOaxb/X5ifNI+timl0sBC14B4BvZJOKwgU0iKpgCLf3eLIFi9C eUJQ== X-Forwarded-Encrypted: i=1; AJvYcCWfxmPzNinU7i/YJN14odBrLRjksJvaqEvoRJotzAy3sjgeSD6VMZvKY60mXPc7XtYo+3ZiPCR8mn/OEzmE@lists.postgresql.org X-Gm-Message-State: AOJu0YzlP4GvqmVzJC4xv6wUvxAu1X3gqa+lR2jM+v9fRQg19P1Me920 QXmE0HjZc+Fycl/TXCNPWA5HcyBdBGZSt7oYVxYx2oiyOYIXsNwgtsB7V70vzfsAHI3ozPk3uS6 D9HjLOgJQYPXGUyc42ROkjNip2A5G5ls= X-Gm-Gg: AY/fxX4YamMONzq09agUgaDNoYA9VVQAF+CkZ88QH5ubKDuxk/bgIc7CTAvRL5qJloX vPk/Psjnk0Mv2BF1wJG+DCSLyxa6ZtakttovtAOeaVFJEjFz2WIRMxwxgKvUcYaEepznyv11UnJ 9g9wORdN8LeMyzuKXCeXJp+qeLvlElUhg5q6QfqfxkAhOP7n5wMkrCXvKkMPvyoAAgVoAqHuVCM euo9wZ3JntHQJrMo1ZuOrS5XqUby9i3/G4ZiydXQlzE4QkzM8QfMsEuRn5T4CkiZGq4Z3LmcZfp 14J4hxPzPNoWq9R/li7EZMJ4vJYF26SpcsXrHJPiscDeYoywmJhMUqkFDcVg+j+ND2X5+g== X-Google-Smtp-Source: AGHT+IG8DfIAqMq4M7UB5OIYlIR1zl/8IutCIkPounylektExEsu7w1bWq3hqLIeJnaLFsLGvIoHFAlOjzp/7u0X70c= X-Received: by 2002:a17:907:9714:b0:b6d:6d66:e8e9 with SMTP id a640c23a62f3a-b84453e291emr117111466b.61.1767758912394; Tue, 06 Jan 2026 20:08:32 -0800 (PST) MIME-Version: 1.0 References: <202601011659.ikh4ku4p3ovb@alvherre.pgsql> In-Reply-To: From: Xuneng Zhou Date: Wed, 7 Jan 2026 12:08:18 +0800 X-Gm-Features: AQt7F2ppF4ARpN2808P1Q8Tv7sAtHkuPIkwicpwB14-v_GNy3Q1qOZDhzchiAPI Message-ID: Subject: Re: Implement waiting for wal lsn replay: reloaded To: Andres Freund Cc: Thomas Munro , Alexander Korotkov , =?UTF-8?Q?=C3=81lvaro_Herrera?= , Chao Li , pgsql-hackers , Michael Paquier , jian he , Tomas Vondra , Yura Sokolov Content-Type: multipart/mixed; boundary="00000000000005e1ae0647c47206" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000005e1ae0647c47206 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Wed, Jan 7, 2026 at 8:32=E2=80=AFAM Andres Freund w= rote: > > Hi, > > On 2026-01-06 18:42:59 +1300, Thomas Munro wrote: > > Could this be causing the recent flapping failures on CI/macOS in > > recovery/031_recovery_conflict? I didn't have time to dig personally > > but f30848cb looks relevant: > > > > Waiting for replication conn standby's replay_lsn to pass 0/03467F58 on= primary > > error running SQL: 'psql::1: ERROR: canceling statement due to > > conflict with recovery > > DETAIL: User was or might have been using tablespace that must be drop= ped.' > > while running 'psql --no-psqlrc --no-align --tuples-only --quiet > > --dbname port=3D25195 > > host=3D/var/folders/g9/7rkt8rt1241bwwhd3_s8ndp40000gn/T/LqcCJnsueI > > dbname=3D'postgres' --file - --variable ON_ERROR_STOP=3D1' with sql 'WA= IT > > FOR LSN '0/03467F58' WITH (MODE 'standby_replay', timeout '180s', > > no_throw);' at /Users/admin/pgsql/src/test/perl/PostgreSQL/Test/Cluster= .pm > > line 2300. > > > > https://cirrus-ci.com/task/5771274900733952 > > > > The master branch in time-descending order, macOS tasks only: > > > > task_id | substring | status > > ------------------+-----------+----------- > > 6460882231754752 | c970bdc0 | FAILED > > 5771274900733952 | 6ca8506e | FAILED > > 6217757068361728 | 63ed3bc7 | FAILED > > 5980650261446656 | ae283736 | FAILED > > 6585898394976256 | 5f13999a | COMPLETED > > 4527474786172928 | 7f9acc9b | COMPLETED > > 4826100842364928 | e8d4e94a | COMPLETED > > 4540563027918848 | b9ee5f2d | FAILED > > 6358528648019968 | c5af141c | FAILED > > 5998005284765696 | e212a0f8 | COMPLETED > > 6488580526178304 | b85d5dc0 | FAILED > > 5034091344560128 | 7dc95cc3 | ABORTED > > 5688692477526016 | bb048e31 | COMPLETED > > 5481187977723904 | d351063e | COMPLETED > > 5101831568752640 | f30848cb | COMPLETED <-- the change > > 6395317408497664 | 3f33b63d | COMPLETED > > 6741325208354816 | 877ae5db | COMPLETED > > 4594007789010944 | de746e0d | COMPLETED > > 6497208998035456 | 461b8cc9 | COMPLETED > > The failure rates of this are very high - the majority of the CI runs on = the > postgres/postgres repos failed since the change went in. Which then also = means > cfbot has a very high spurious failure rate. I think we need to revert th= is > change until the problem has been verified as fixed. This specific failure can be reproduced with this patch v1. I guess the potential race condition is: when wait_for_replay_catchup() runs WAIT FOR LSN on the standby, if a tablespace conflict fires during that wait, the WAIT FOR LSN session is killed even though it doesn't use the tablespace. In my test, the failure won't occur after applying the v2 patch. --=20 Best, Xuneng --00000000000005e1ae0647c47206 Content-Type: application/octet-stream; name="v1-0001-reproduce-the-failure-in-031_recovery_conflict.pl.patch" Content-Disposition: attachment; filename="v1-0001-reproduce-the-failure-in-031_recovery_conflict.pl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk3h750k0 RnJvbSBjYTczOTI5Njg3ZjliZjdkNGFhYTI1OGY4ZTQxM2ZmMmMzZWVhNmFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhbHRlcmVnbzY1NSA8ODI0NjYyNTI2QHFxLmNvbT4KRGF0ZTog V2VkLCA3IEphbiAyMDI2IDExOjM5OjQxICswODAwClN1YmplY3Q6IFtQQVRDSCB2MV0gcmVwcm9k dWNlIHRoZSBmYWlsdXJlIGluIDAzMV9yZWNvdmVyeV9jb25mbGljdC5wbAoKLS0tCiBzcmMvdGVz dC9yZWNvdmVyeS90LzAzMV9yZWNvdmVyeV9jb25mbGljdC5wbCB8IDE3ICsrKysrKysrKysrKysr KystCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsIGIv c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzFfcmVjb3ZlcnlfY29uZmxpY3QucGwKaW5kZXggN2E3NDBm Njk4MDYuLjM5MDYxZmNjMGE4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzMV9y ZWNvdmVyeV9jb25mbGljdC5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzMV9yZWNvdmVy eV9jb25mbGljdC5wbApAQCAtMTk4LDEwICsxOTgsMjUgQEAgbGlrZSgkcmVzLCBxci9eNjAwMCQv bSwKIAkiJHNlY3Q6IGN1cnNvciB3aXRoIGNvbmZsaWN0aW5nIHRlbXAgZmlsZSBlc3RhYmxpc2hl ZCIpOwogCiAjIERyb3AgdGhlIHRhYmxlc3BhY2UgY3VycmVudGx5IGNvbnRhaW5pbmcgc3BpbGwg ZmlsZXMgZm9yIHRoZSBxdWVyeSBvbiB0aGUKLSMgc3RhbmRieQorIyBzdGFuZGJ5LiAgV2UgcGF1 c2UgcmVwbGF5IGJlZm9yZSB0aGUgRFJPUCwgdGhlbiByZXN1bWUgaXQgdmlhIGEgYmFja2dyb3Vu ZAorIyBzZXNzaW9uLiAgVGhpcyBmb3JjZXMgd2FpdF9mb3JfcmVwbGF5X2NhdGNodXAncyBpbnRl cm5hbCBXQUlUIEZPUiBMU04gdG8gYmUKKyMgcnVubmluZyB3aGVuIHRoZSBjb25mbGljdCBmaXJl cywgZXhlcmNpc2luZyB0aGUgcmVjb3ZlcnkgY29uZmxpY3QgaGFuZGxpbmcKKyMgaW4gQ2x1c3Rl ci5wbS4KKyRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHBnX3dh bF9yZXBsYXlfcGF1c2UoKSIpOwogJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCR0ZXN0X2RiLCBx cVtEUk9QIFRBQkxFU1BBQ0UgJHRhYmxlc3BhY2UxO10pOwogCisjIFN0YXJ0IGEgYmFja2dyb3Vu ZCBzZXNzaW9uIHRoYXQgd2FpdHMgMSBzZWNvbmQgdGhlbiByZXN1bWVzIHJlcGxheS4KKyMgVGhp cyB0cmlnZ2VycyB0aGUgY29uZmxpY3Qgd2hpbGUgd2FpdF9mb3JfcmVwbGF5X2NhdGNodXAgaXMg cnVubmluZy4KK215ICRyZXN1bWVfc2Vzc2lvbiA9ICRub2RlX3N0YW5kYnktPmJhY2tncm91bmRf cHNxbCgncG9zdGdyZXMnKTsKKyRyZXN1bWVfc2Vzc2lvbi0+cXVlcnlfdW50aWwoCisJcXIvc3Rh cnQvLCBxcVsKKwlcXGVjaG8gc3RhcnQKKwlTRUxFQ1QgcGdfc2xlZXAoMSk7CisJU0VMRUNUIHBn X3dhbF9yZXBsYXlfcmVzdW1lKCk7CitdKTsKKwogJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfcmVw bGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieSk7CiskcmVzdW1lX3Nlc3Npb24tPnF1aXQ7CiAKIGNo ZWNrX2NvbmZsaWN0X2xvZygKIAkiVXNlciB3YXMgb3IgbWlnaHQgaGF2ZSBiZWVuIHVzaW5nIHRh Ymxlc3BhY2UgdGhhdCBtdXN0IGJlIGRyb3BwZWQiKTsKLS0gCjIuNTEuMAoK --00000000000005e1ae0647c47206 Content-Type: application/octet-stream; name="v2-0001-Fix-wait_for_catchup-failure-when-standby-session.patch" Content-Disposition: attachment; filename="v2-0001-Fix-wait_for_catchup-failure-when-standby-session.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk3hx36i1 RnJvbSAxZWFmMzZjYmZhZmI3NWM5MTczNDYxNTUyOWRjYzhmMGVkN2Q3OTk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhbHRlcmVnbzY1NSA8ODI0NjYyNTI2QHFxLmNvbT4KRGF0ZTog VHVlLCA2IEphbiAyMDI2IDIwOjU1OjQzICswODAwClN1YmplY3Q6IFtQQVRDSCB2Ml0gRml4IHdh aXRfZm9yX2NhdGNodXAoKSBmYWlsdXJlIHdoZW4gc3RhbmRieSBzZXNzaW9uIGlzCiBraWxsZWQg YnkgcmVjb3ZlcnkgY29uZmxpY3QKCkNvbW1pdCBmMzA4NDhjYiBvcHRpbWl6ZWQgd2FpdF9mb3Jf Y2F0Y2h1cCgpIHRvIHVzZSBXQUlUIEZPUiBMU04gb24KdGhlIHN0YW5kYnkgaW5zdGVhZCBvZiBw b2xsaW5nIHBnX3N0YXRfcmVwbGljYXRpb24gb24gdGhlIHByaW1hcnkuCkhvd2V2ZXIsIHRoaXMg aW50cm9kdWNlZCBhIGZhaWx1cmUgbW9kZTogdGhlIFdBSVQgRk9SIExTTiBzZXNzaW9uCmNhbiBi ZSBraWxsZWQgYnkgcmVjb3ZlcnkgY29uZmxpY3RzIG9uIHRoZSBzdGFuZGJ5LCBjYXVzaW5nIHRo ZQp0ZXN0IGhlbHBlciB0byBkaWUgdW5leHBlY3RlZGx5LgoKVGhpcyBtYW5pZmVzdHMgYXMgZmxh cHBpbmcgZmFpbHVyZXMgaW4gdGVzdHMgbGlrZSAwMzFfcmVjb3ZlcnlfY29uZmxpY3QsCndoZXJl IERST1AgVEFCTEVTUEFDRSBvbiB0aGUgcHJpbWFyeSB0cmlnZ2VycwpSZXNvbHZlUmVjb3ZlcnlD b25mbGljdFdpdGhUYWJsZXNwYWNlKCkgb24gdGhlIHN0YW5kYnkuIFRoYXQgZnVuY3Rpb24Ka2ls bHMgYWxsIGJhY2tlbmRzIGluZGlzY3JpbWluYXRlbHksIGluY2x1ZGluZyB0aGUgaW5ub2NlbnQg V0FJVCBGT1IKTFNOIHNlc3Npb24gdGhhdCBoYXBwZW5zIHRvIGJlIGNvbm5lY3RlZCBhdCB0aGF0 IG1vbWVudC4KCkZpeCBieSB3cmFwcGluZyB0aGUgV0FJVCBGT1IgTFNOIGNhbGwgaW4gYW4gZXZh bCBibG9jayBhbmQgZmFsbGluZwpiYWNrIHRvIHRoZSBvcmlnaW5hbCBwb2xsaW5nIGFwcHJvYWNo IHdoZW4gdGhlIHNlc3Npb24gaXMga2lsbGVkIGJ5CmEgcmVjb3ZlcnkgY29uZmxpY3QuIFRoZSBm YWxsYmFjayBpcyBzZWxlY3RpdmU6CgotIElmIFdBSVQgRk9SIExTTiBzdWNjZWVkcyB3aXRoICdz dWNjZXNzJzogcmV0dXJuIGltbWVkaWF0ZWx5Ci0gSWYgV0FJVCBGT1IgTFNOIHJldHVybnMgbm9u LXN1Y2Nlc3MgKHRpbWVvdXQsIG5vdF9pbl9yZWNvdmVyeSk6CiAgZmFpbCBpbW1lZGlhdGVseSB3 aXRoIGRpYWdub3N0aWNzCi0gSWYgdGhlIHNlc3Npb24gaXMga2lsbGVkIGJ5IGEgcmVjb3Zlcnkg Y29uZmxpY3QgKGVycm9yIGNvbnRhaW5zCiAgImNvbmZsaWN0IHdpdGggcmVjb3ZlcnkiKTogZmFs bCBiYWNrIHRvIHBvbGxpbmcgb24gdGhlIHByaW1hcnkKLSBGb3IgYW55IG90aGVyIGVycm9yOiBm YWlsIGltbWVkaWF0ZWx5IHRvIGF2b2lkIG1hc2tpbmcgcmVhbCBwcm9ibGVtcwoKVGhlIHBvbGxp bmcgZmFsbGJhY2sgaXMgaW1tdW5lIHRvIHN0YW5kYnktc2lkZSBjb25mbGljdHMgYmVjYXVzZSBp dApxdWVyaWVzIHBnX3N0YXRfcmVwbGljYXRpb24gb24gdGhlIHByaW1hcnksIG5vdCB0aGUgc3Rh bmRieS4KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIHwgNTMg KysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FM L1Rlc3QvQ2x1c3Rlci5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIu cG0KaW5kZXggYTI4ZWE4OWFhMTAuLjA4Mzc5YWViOGZiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9w ZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdy ZVNRTC9UZXN0L0NsdXN0ZXIucG0KQEAgLTM0MDEsMjIgKzM0MDEsNTIgQEAgc3ViIHdhaXRfZm9y X2NhdGNodXAKIAkJCW15ICR0aW1lb3V0ID0gJFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0aW1l b3V0X2RlZmF1bHQ7CiAJCQlteSAkd2FpdF9xdWVyeSA9CiAJCQkgIHFxW1dBSVQgRk9SIExTTiAn JHt0YXJnZXRfbHNufScgV0lUSCAoTU9ERSAnJHt3YWl0X21vZGV9JywgdGltZW91dCAnJHt0aW1l b3V0fXMnLCBub190aHJvdyk7XTsKLQkJCW15ICRvdXRwdXQgPSAkc3RhbmRieV9ub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJHdhaXRfcXVlcnkpOwotCQkJY2hvbXAoJG91dHB1dCk7CiAKLQkJ CWlmICgkb3V0cHV0IG5lICdzdWNjZXNzJykKKwkJCSMgVHJ5IFdBSVQgRk9SIExTTi4gSWYgaXQg c3VjY2VlZHMsIHdlJ3JlIGRvbmUuIElmIGl0IHJldHVybnMgYQorCQkJIyBub24tc3VjY2VzcyBz dGF0dXMgKHRpbWVvdXQsIG5vdF9pbl9yZWNvdmVyeSksIGZhaWwgaW1tZWRpYXRlbHkuCisJCQkj IElmIHRoZSBzZXNzaW9uIGlzIGludGVycnVwdGVkIChlLmcuLCBraWxsZWQgYnkgcmVjb3Zlcnkg Y29uZmxpY3QpLAorCQkJIyBmYWxsIGJhY2sgdG8gcG9sbGluZyBvbiB0aGUgdXBzdHJlYW0gd2hp Y2ggaXMgaW1tdW5lIHRvIHN0YW5kYnktCisJCQkjIHNpZGUgY29uZmxpY3RzLgorCQkJbXkgJG91 dHB1dDsKKwkJCWxvY2FsICRAOworCQkJbXkgJHdhaXRfc3VjY2VlZGVkID0gZXZhbCB7CisJCQkJ JG91dHB1dCA9ICRzdGFuZGJ5X25vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkd2FpdF9xdWVy eSk7CisJCQkJY2hvbXAoJG91dHB1dCk7CisJCQkJMTsKKwkJCX07CisKKwkJCWlmICgkd2FpdF9z dWNjZWVkZWQgJiYgJG91dHB1dCBlcSAnc3VjY2VzcycpCisJCQl7CisJCQkJcHJpbnQgImRvbmVc biI7CisJCQkJcmV0dXJuOworCQkJfQorCisJCQkjIElmIFdBSVQgRk9SIExTTiBleGVjdXRlZCBi dXQgcmV0dXJuZWQgbm9uLXN1Y2Nlc3MgKGUuZy4sIHRpbWVvdXQsCisJCQkjIG5vdF9pbl9yZWNv dmVyeSksIGZhaWwgaW1tZWRpYXRlbHkgd2l0aCBkaWFnbm9zdGljIGluZm8uIEZhbGxpbmcKKwkJ CSMgYmFjayB0byBwb2xsaW5nIHdvdWxkIGp1c3Qgd2FzdGUgdGltZS4KKwkJCWlmICgkd2FpdF9z dWNjZWVkZWQpCiAJCQl7Ci0JCQkJIyBGZXRjaCBhZGRpdGlvbmFsIGRldGFpbCBmb3IgZGVidWdn aW5nIHB1cnBvc2VzCiAJCQkJbXkgJGRldGFpbHMgPSAkc2VsZi0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCiAJCQkJCSJTRUxFQ1QgKiBGUk9NIHBnX2NhdGFsb2cucGdfc3RhdF9yZXBsaWNhdGlvbiIp OwotCQkJCWRpYWcgcXEoV0FJVCBGT1IgTFNOIGZhaWxlZCB3aXRoIHN0YXR1czoKLQkke291dHB1 dH0pOwotCQkJCWRpYWcgcXEoTGFzdCBwZ19zdGF0X3JlcGxpY2F0aW9uIGNvbnRlbnRzOgotCSR7 ZGV0YWlsc30pOwotCQkJCWNyb2FrICJmYWlsZWQgd2FpdGluZyBmb3IgY2F0Y2h1cCI7CisJCQkJ ZGlhZyBxcShXQUlUIEZPUiBMU04gcmV0dXJuZWQgJyRvdXRwdXQnCitwZ19zdGF0X3JlcGxpY2F0 aW9uIG9uIHVwc3RyZWFtOgorJHtkZXRhaWxzfSk7CisJCQkJY3JvYWsgIldBSVQgRk9SIExTTiAn JHdhaXRfbW9kZScgcmV0dXJuZWQgJyRvdXRwdXQnIjsKKwkJCX0KKworCQkJIyBXQUlUIEZPUiBM U04gd2FzIGludGVycnVwdGVkLiBPbmx5IGZhbGwgYmFjayB0byBwb2xsaW5nIGlmIHRoaXMKKwkJ CSMgbG9va3MgbGlrZSBhIHJlY292ZXJ5IGNvbmZsaWN0IC0gdGhlIGNhbm9uaWNhbCBQb3N0Z3Jl U1FMIGVycm9yCisJCQkjIG1lc3NhZ2UgY29udGFpbnMgImNvbmZsaWN0IHdpdGggcmVjb3Zlcnki LiBPdGhlciBlcnJvcnMgc2hvdWxkCisJCQkjIGZhaWwgaW1tZWRpYXRlbHkgcmF0aGVyIHRoYW4g YmVpbmcgbWFza2VkIGJ5IGEgc2lsZW50IGZhbGxiYWNrLgorCQkJaWYgKCRAID1+IC9jb25mbGlj dCB3aXRoIHJlY292ZXJ5L2kpCisJCQl7CisJCQkJZGlhZyBxcShXQUlUIEZPUiBMU04gaW50ZXJy dXB0ZWQsIGZhbGxpbmcgYmFjayB0byBwb2xsaW5nOgorJEApOworCQkJfQorCQkJZWxzZQorCQkJ eworCQkJCWNyb2FrICJXQUlUIEZPUiBMU04gZmFpbGVkOiAkQCI7CiAJCQl9Ci0JCQlwcmludCAi ZG9uZVxuIjsKLQkJCXJldHVybjsKIAkJfQogCX0KIApAQCAtMzQyNCw2ICszNDU0LDcgQEAgc3Vi IHdhaXRfZm9yX2NhdGNodXAKIAkjIC0gJ3NlbnQnIG1vZGUgKG5vIGNvcnJlc3BvbmRpbmcgV0FJ VCBGT1IgTFNOIG1vZGUpCiAJIyAtIFdoZW4gc3RhbmRieV9uYW1lIGlzIGEgc3RyaW5nIChlLmcu LCBzdWJzY3JpcHRpb24gbmFtZSkKIAkjIC0gV2hlbiB0aGUgc3RhbmRieSBpcyBubyBsb25nZXIg aW4gcmVjb3ZlcnkgKHdhcyBwcm9tb3RlZCkKKwkjIC0gV2hlbiBXQUlUIEZPUiBMU04gd2FzIGlu dGVycnVwdGVkIChlLmcuLCBraWxsZWQgYnkgYSByZWNvdmVyeSBjb25mbGljdCkKIAlteSAkcXVl cnkgPSBxcVtTRUxFQ1QgJyR0YXJnZXRfbHNuJyA8PSAke21vZGV9X2xzbiBBTkQgc3RhdGUgPSAn c3RyZWFtaW5nJwogICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX3N0YXRfcmVwbGljYXRpb24K ICAgICAgICAgIFdIRVJFIGFwcGxpY2F0aW9uX25hbWUgSU4gKCckc3RhbmRieV9uYW1lJywgJ3dh bHJlY2VpdmVyJyldOwotLSAKMi41MS4wCgo= --00000000000005e1ae0647c47206--