Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pmd7u-00037c-QV for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Apr 2023 16:15:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pmd7t-0008MP-NR for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Apr 2023 16:15:17 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pmd7t-0008MG-5z for pgsql-hackers@lists.postgresql.org; Wed, 12 Apr 2023 16:15:17 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pmd7q-0002FH-Ar for pgsql-hackers@lists.postgresql.org; Wed, 12 Apr 2023 16:15:16 +0000 Received: by mail-wr1-x42a.google.com with SMTP id e22so11381578wra.6 for ; Wed, 12 Apr 2023 09:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681316113; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=7lC1Cn6/TZiwUYr55Ti9YfptSKtGYySO6igA+Qb+hLM=; b=UF7empViGxLk7GVJS8A5T92gyT0P3v8hkhvZqH3BBZW1NadxDqONw0u8+KP2cyJR4s X4sD2vKE+ft7CsvkDzuu2My0V162eOpQbTXxi7mA3yGrDSbOgyt0HHtKCdgP/Kg/FiRT E1hvRqi7LB94EaT+EAxaT2hRK/QT7W/I68FO/Hek+JRoCFyoQ8vY4754qfpijEVxslyE YUDR/papsMRa/J1nsTmDYSSRW/8mqWJZGEUf/X9H6WhE2wZrmGFF6bQl0+1ao8eHBHpM tAa03drx9ddzhenJZ+ChgIcwGN/4U/2PIjL9MJgwRv7TXM2lLTUcM8YYn8vA9pUxpiKT kvhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1681316113; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=7lC1Cn6/TZiwUYr55Ti9YfptSKtGYySO6igA+Qb+hLM=; b=InIFO7q8yT53/2oEkK7ax9MT43qB9acTGnXLkA+99Pb3sHBS8fI9q8Tb+aT8160lc1 JS7u+ibt9CSsFlAc4DnSbtlXurlozJdIm/JbdiErUfhsxz5dSC+QLJ5P3+uqXxbK9ri3 fmgobQg5myIk3FFG8SnMp+Ph/xlovNZnz6JDM68ES+aZPysowaPfseu63pv4VDDmb2CF YOCuBo+WCqWMHcMWpZ2uzdEbyJ/7iJE4SIEQKIxDTEoe+kYPYkj1nTrHwGzct3/C7UxU DtSxt9LH9YBqTjTmpwxi/S159+z87/LMb2vGgI2rhdRcu373Ms9P12A6f/mJp4uhpY6j AMfw== X-Gm-Message-State: AAQBX9fYMROMUF3XN3iHMXSCFeTOSAbeAv9FY6HkBWkPCsJxpAILNJVm XIxx4G2yk5NY3TMiaSYOFrz42ZARcE7fWA== X-Google-Smtp-Source: AKy350butAaMkzp6dHCPyNp17ZiOdvju98d6qEGr9gixqsS9DI/CqntpMCUQa2hxKXFiCVzDVBvyFA== X-Received: by 2002:a5d:4442:0:b0:2cf:efa5:5322 with SMTP id x2-20020a5d4442000000b002cfefa55322mr2725856wrr.14.1681316112489; Wed, 12 Apr 2023 09:15:12 -0700 (PDT) Received: from [192.168.16.12] ([54.239.6.187]) by smtp.gmail.com with ESMTPSA id n11-20020adfe34b000000b002e5f3d81c06sm17603418wrj.89.2023.04.12.09.15.11 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 12 Apr 2023 09:15:12 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------lC9Zm2JJ01b5CAx4pstQzCXV" Message-ID: <2fefa454-5a70-2174-ddbf-4a0e41537139@gmail.com> Date: Wed, 12 Apr 2023 18:15:10 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Content-Language: en-US From: "Drouvot, Bertrand" Subject: Add two missing tests in 035_standby_logical_decoding.pl To: PostgreSQL Hackers List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------lC9Zm2JJ01b5CAx4pstQzCXV Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit hi hackers, In the logical decoding on standby thread [1], Andres proposed 2 new tests (that I did not find the time to complete before the finish line): - Test that we can subscribe to the standby (with the publication created on the primary) - Verify that invalidated logical slots do not lead to retaining WAL Please find those 2 missing tests in the patch proposal attached. A few words about them: 1) Regarding the subscription test: It modifies wait_for_catchup() to take into account the case where the requesting node is in recovery mode. Indeed, without that change, wait_for_subscription_sync() was failing with: " error running SQL: 'psql::1: ERROR: recovery is in progress HINT: WAL control functions cannot be executed during recovery.' while running 'psql -XAtq -d port=61441 host=/tmp/45dt3wqs2p dbname='postgres' -f - -v ON_ERROR_STOP=1' with sql 'SELECT pg_current_wal_lsn()' " 2) Regarding the WAL file not retained test: As it's not possible to execute pg_switch_wal() and friends on a standby, this is done on the primary. Also checking that the WAL file (linked to a restart_lsn of an invalidate slot) has been removed is done directly at the os/directory level. The attached patch also removes: " -log_min_messages = 'debug2' -log_error_verbosity = verbose " as also discussed in [1]. I'm not sure if adding those 2 tests should be considered as an open item. I can add this open item if we think that makes sense. I'd be happy to do so but it looks like I don't have the privileges to edit https://wiki.postgresql.org/wiki/PostgreSQL_16_Open_Items Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com [1]: https://www.postgresql.org/message-id/6d801661-e21b-7326-be1b-f90d904da66a%40gmail.com --------------lC9Zm2JJ01b5CAx4pstQzCXV Content-Type: text/plain; charset=UTF-8; name="v1-0001-add-missing-tests.patch" Content-Disposition: attachment; filename="v1-0001-add-missing-tests.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0g Yi9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCmluZGV4IDZmN2Y0 ZTVkZTQuLjgxOTY2N2Q0MmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNR TC9UZXN0L0NsdXN0ZXIucG0KKysrIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3Qv Q2x1c3Rlci5wbQpAQCAtMjY0NCw3ICsyNjQ0LDE2IEBAIHN1YiB3YWl0X2Zvcl9jYXRjaHVw CiAJfQogCWlmICghZGVmaW5lZCgkdGFyZ2V0X2xzbikpCiAJewotCQkkdGFyZ2V0X2xzbiA9 ICRzZWxmLT5sc24oJ3dyaXRlJyk7CisJCW15ICRpc3JlY292ZXJ5ID0gJHNlbGYtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHBnX2lzX2luX3JlY292ZXJ5KCkiKTsKKwkJY2hv bXAoJGlzcmVjb3ZlcnkpOworCQlpZiAoJGlzcmVjb3ZlcnkgZXEgJ3QnKQorCQl7CisJCQkk dGFyZ2V0X2xzbiA9ICRzZWxmLT5sc24oJ3JlcGxheScpOworCQl9CisJCWVsc2UKKwkJewor CQkJJHRhcmdldF9sc24gPSAkc2VsZi0+bHNuKCd3cml0ZScpOworCQl9CiAJfQogCXByaW50 ICJXYWl0aW5nIGZvciByZXBsaWNhdGlvbiBjb25uICIKIAkgIC4gJHN0YW5kYnlfbmFtZSAu ICIncyAiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xv Z2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xv Z2ljYWxfZGVjb2RpbmcucGwKaW5kZXggOTRhODM4NGMzMS4uMDliYzQxNzM1NiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5n LnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNv ZGluZy5wbApAQCAtOSwxMyArOSwxOSBAQCB1c2Ugd2FybmluZ3M7CiB1c2UgUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3RlcjsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKIHVzZSBU ZXN0OjpNb3JlOwordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CiAKLW15ICgkc3RkaW4s ICRzdGRvdXQsICRzdGRlcnIsICRjYXNjYWRpbmdfc3Rkb3V0LCAkY2FzY2FkaW5nX3N0ZGVy ciwgJHJldCwgJGhhbmRsZSwgJHNsb3QpOworbXkgKCRzdGRpbiwgICAgICAgICAgICAgJHN0 ZG91dCwgICAgICAgICAgICAkc3RkZXJyLAorCSRjYXNjYWRpbmdfc3Rkb3V0LCAgJGNhc2Nh ZGluZ19zdGRlcnIsICAkc3Vic2NyaWJlcl9zdGRpbiwKKwkkc3Vic2NyaWJlcl9zdGRvdXQs ICRzdWJzY3JpYmVyX3N0ZGVyciwgJHJldCwKKwkkaGFuZGxlLCAgICAgICAgICAgICRzbG90 KTsKIAogbXkgJG5vZGVfcHJpbWFyeSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygncHJpbWFyeScpOwogbXkgJG5vZGVfc3RhbmRieSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNs dXN0ZXItPm5ldygnc3RhbmRieScpOwogbXkgJG5vZGVfY2FzY2FkaW5nX3N0YW5kYnkgPSBQ b3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ2Nhc2NhZGluZ19zdGFuZGJ5Jyk7Citt eSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdz dWJzY3JpYmVyJyk7CiBteSAkZGVmYXVsdF90aW1lb3V0ID0gJFBvc3RncmVTUUw6OlRlc3Q6 OlV0aWxzOjp0aW1lb3V0X2RlZmF1bHQ7CitteSAkcHNxbF90aW1lb3V0ICAgID0gSVBDOjpS dW46OnRpbWVyKDIgKiAkZGVmYXVsdF90aW1lb3V0KTsKIG15ICRyZXM7CiAKICMgTmFtZSBm b3IgdGhlIHBoeXNpY2FsIHNsb3Qgb24gcHJpbWFyeQpAQCAtMjM1LDggKzI0MSw2IEBAICRu b2RlX3ByaW1hcnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxewogd2FsX2xl dmVsID0gJ2xvZ2ljYWwnCiBtYXhfcmVwbGljYXRpb25fc2xvdHMgPSA0CiBtYXhfd2FsX3Nl bmRlcnMgPSA0Ci1sb2dfbWluX21lc3NhZ2VzID0gJ2RlYnVnMicKLWxvZ19lcnJvcl92ZXJi b3NpdHkgPSB2ZXJib3NlCiB9KTsKICRub2RlX3ByaW1hcnktPmR1bXBfaW5mbzsKICRub2Rl X3ByaW1hcnktPnN0YXJ0OwpAQCAtMjY5LDcgKzI3Myw4IEBAICRub2RlX3N0YW5kYnktPmlu aXRfZnJvbV9iYWNrdXAoCiAJaGFzX3N0cmVhbWluZyA9PiAxLAogCWhhc19yZXN0b3Jpbmcg PT4gMSk7CiAkbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywK LQlxcVtwcmltYXJ5X3Nsb3RfbmFtZSA9ICckcHJpbWFyeV9zbG90bmFtZSddKTsKKwlxcVtw cmltYXJ5X3Nsb3RfbmFtZSA9ICckcHJpbWFyeV9zbG90bmFtZScKKyAgICAgICBtYXhfcmVw bGljYXRpb25fc2xvdHMgPSA1XSk7CiAkbm9kZV9zdGFuZGJ5LT5zdGFydDsKICRub2RlX3By aW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwogJG5vZGVf c3RhbmRieS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtTRUxFQ1QgKiBGUk9NIHBnX2NyZWF0 ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckc3RhbmRieV9waHlzaWNhbF9zbG90bmFt ZScpO10pOwpAQCAtMjg3LDYgKzI5MiwyNyBAQCAkbm9kZV9jYXNjYWRpbmdfc3RhbmRieS0+ YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCiAkbm9kZV9jYXNjYWRpbmdfc3RhbmRi eS0+c3RhcnQ7CiAkbm9kZV9zdGFuZGJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9k ZV9jYXNjYWRpbmdfc3RhbmRieSwgJG5vZGVfcHJpbWFyeSk7CiAKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjIEluaXRpYWxpemUgc3Vic2NyaWJlciBub2RlCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNx bC5jb25mJywgJ21heF9yZXBsaWNhdGlvbl9zbG90cyA9IDQnKTsKKyRub2RlX3N1YnNjcmli ZXItPnN0YXJ0OworCitteSAlcHNxbF9zdWJzY3JpYmVyID0gKAorCSdzdWJzY3JpYmVyX3N0 ZGluJyAgPT4gJycsCisJJ3N1YnNjcmliZXJfc3Rkb3V0JyA9PiAnJywKKwknc3Vic2NyaWJl cl9zdGRlcnInID0+ICcnKTsKKyRwc3FsX3N1YnNjcmliZXJ7cnVufSA9IElQQzo6UnVuOjpz dGFydCgKKwlbICdwc3FsJywgJy1YQScsICctZicsICctJywgJy1kJywgJG5vZGVfc3Vic2Ny aWJlci0+Y29ubnN0cigncG9zdGdyZXMnKSBdLAorCSc8JywKKwlcJHBzcWxfc3Vic2NyaWJl cntzdWJzY3JpYmVyX3N0ZGlufSwKKwknPicsCisJXCRwc3FsX3N1YnNjcmliZXJ7c3Vic2Ny aWJlcl9zdGRvdXR9LAorCScyPicsCisJXCRwc3FsX3N1YnNjcmliZXJ7c3Vic2NyaWJlcl9z dGRlcnJ9LAorCSRwc3FsX3RpbWVvdXQpOworCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBUZXN0IHRoYXQgbG9naWNhbCBkZWNvZGlu ZyBvbiB0aGUgc3RhbmRieQogIyBiZWhhdmVzIGNvcnJlY3RseS4KQEAgLTM2Nyw2ICszOTMs NTggQEAgaXMoICRub2RlX3ByaW1hcnktPnBzcWwoCiAgICAgMywKICAgICAncmVwbGF5aW5n IGxvZ2ljYWwgc2xvdCBmcm9tIGFub3RoZXIgZGF0YWJhc2UgZmFpbHMnKTsKIAorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0 aGF0IHdlIGNhbiBzdWJzY3JpYmUgb24gdGhlIHN0YW5kYnkgd2l0aCB0aGUgcHVibGljYXRp b24KKyMgY3JlYXRlZCBvbiB0aGUgcHJpbWFyeS4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ3JlYXRlIGEgdGFibGUgb24gdGhl IHByaW1hcnkKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVB VEUgVEFCTEUgdGFiX3JlcCAoYSBpbnQgcHJpbWFyeSBrZXkpIik7CisKKyMgQ3JlYXRlIGEg dGFibGUgKHNhbWUgc3RydWN0dXJlKSBvbiB0aGUgc3Vic2NyaWJlciBub2RlCiskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYl9y ZXAgKGEgaW50IHByaW1hcnkga2V5KSIpOworCisjIENyZWF0ZSBhIHB1YmxpY2F0aW9uIG9u IHRoZSBwcmltYXJ5Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki Q1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWIgZm9yIHRhYmxlIHRhYl9yZXAiKTsKKworIyBT dWJzY3JpYmUgb24gdGhlIHN0YW5kYnkKK215ICRzdGFuZGJ5X2Nvbm5zdHIgPSAkbm9kZV9z dGFuZGJ5LT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJHBzcWxfc3Vic2NyaWJl cntzdWJzY3JpYmVyX3N0ZGlufSAuPQorICBxcVtDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9z dWIgQ09OTkVDVElPTiAnJHN0YW5kYnlfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yjtd OworJHBzcWxfc3Vic2NyaWJlcntzdWJzY3JpYmVyX3N0ZGlufSAuPSAiXG4iOworCiskcHNx bF9zdWJzY3JpYmVye3J1bn0tPnB1bXBfbmIoKTsKKworIyBTcGVlZCB1cCB0aGUgc3Vic2Ny aXB0aW9uIGNyZWF0aW9uCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IlNFTEVDVCBwZ19sb2dfc3RhbmRieV9zbmFwc2hvdCgpIik7CisKKyMgRXhwbGljaXRseSBz aHV0IGRvd24gcHNxbCBpbnN0YW5jZSBncmFjZWZ1bGx5IC0gdG8gYXZvaWQgaGFuZ3MKKyMg b3Igd29yc2Ugb24gd2luZG93cworJHBzcWxfc3Vic2NyaWJlcntzdWJzY3JpYmVyX3N0ZGlu fSAuPSAiXFxxXG4iOworJHBzcWxfc3Vic2NyaWJlcntydW59LT5maW5pc2g7CisKKyMgSW5z ZXJ0IHNvbWUgcm93cyBvbiB0aGUgcHJpbWFyeQorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJcXFbSU5TRVJUIElOVE8gdGFiX3JlcCBzZWxlY3QgZ2VuZXJhdGVf c2VyaWVzKDEsMTApO10pOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0 Y2h1cCgkbm9kZV9zdGFuZGJ5KTsKKworIyBUbyBzcGVlZCB1cCB0aGUgd2FpdF9mb3Jfc3Vi c2NyaXB0aW9uX3N5bmMKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi U0VMRUNUIHBnX2xvZ19zdGFuZGJ5X3NuYXBzaG90KCkiKTsKKyRub2RlX3N1YnNjcmliZXIt PndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3N0YW5kYnksICd0YXBfc3ViJyk7 CisKKyMgQ2hlY2sgdGhhdCB0aGUgc3Vic2NyaWJlciBjYW4gc2VlIHRoZSByb3dzIGluc2Vy dGVkIGluIHRoZSBwcmltYXJ5CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSB0YWJfcmVwIik7Citp cygkcmVzdWx0LCBxcSgxMCksICdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgYWZ0ZXIgc3Vi c2NyaXB0aW9uIG9uIHN0YW5kYnknKTsKKworIyBXZSBkbyBub3QgbmVlZCB0aGUgc3Vic2Ny aWJlciBhbnltb3JlCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkRST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWIiKTsKKyRub2RlX3N1YnNjcmliZXItPnN0b3A7 CisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CiAjIFJlY292ZXJ5IGNvbmZsaWN0OiBJbnZhbGlkYXRlIGNvbmZsaWN0aW5nIHNsb3RzLCBp bmNsdWRpbmcgaW4tdXNlIHNsb3RzCiAjIFNjZW5hcmlvIDE6IGhvdF9zdGFuZGJ5X2ZlZWRi YWNrIG9mZiBhbmQgdmFjdXVtIEZVTEwKQEAgLTQxMCw5ICs0ODgsODIgQEAgJG5vZGVfc3Rh bmRieS0+cmVzdGFydDsKIGNoZWNrX3Nsb3RzX2NvbmZsaWN0aW5nX3N0YXR1cygxKTsKIAog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMg VmVyaWZ5IHRoYXQgaW52YWxpZGF0ZWQgbG9naWNhbCBzbG90cyBkbyBub3QgbGVhZCB0byBy ZXRhaW5pbmcgV0FMCisjIFZlcmlmeSB0aGF0IGludmFsaWRhdGVkIGxvZ2ljYWwgc2xvdHMg ZG8gbm90IGxlYWQgdG8gcmV0YWluaW5nIFdBTC4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFhYWFhYIFRPRE8KKworIyBHZXQgdGhl IHJlc3RhcnRfbHNuIGZyb20gYW4gaW52YWxpZGF0ZWQgc2xvdAorbXkgJHJlc3RhcnRfbHNu ID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCByZXN0 YXJ0X2xzbiBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICd2 YWN1dW1fZnVsbF9hY3RpdmVzbG90JyBhbmQgY29uZmxpY3RpbmcgaXMgdHJ1ZTsiCispOwor CitjaG9tcCgkcmVzdGFydF9sc24pOworCisjIEdldCB0aGUgV0FMIGZpbGUgbmFtZSBhc3Nv Y2lhdGVkIHRvIHRoaXMgbHNuIG9uIHRoZSBwcmltYXJ5CitteSAkd2FsZmlsZV9uYW1lID0g JG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBwZ193YWxm aWxlX25hbWUoJyRyZXN0YXJ0X2xzbicpIik7CisKK2Nob21wKCR3YWxmaWxlX25hbWUpOwor CisjIENoZWNrIHRoZSBXQUwgZmlsZSBpcyBzdGlsbCBvbiB0aGUgcHJpbWFyeQorb2soLWYg JG5vZGVfcHJpbWFyeS0+ZGF0YV9kaXIgLiAnL3BnX3dhbC8nIC4gJHdhbGZpbGVfbmFtZSwK KwkiV0FMIGZpbGUgc3RpbGwgb24gdGhlIHByaW1hcnkiKTsKKworIyBHZXQgdGhlIG51bWJl ciBvZiBXQUwgZmlsZXMgb24gdGhlIHN0YW5kYnkKK215ICRuYl9zdGFuZGJ5X2ZpbGVzID0g JG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBDT1VOVCgq KSBGUk9NIHBnX2xzX2RpcigncGdfd2FsJykiKTsKKworY2hvbXAoJG5iX3N0YW5kYnlfZmls ZXMpOworCisjIFN3aXRjaCBXQUwgZmlsZXMgb24gdGhlIHByaW1hcnkKK215IEBjID0gKDEg Li4gJG5iX3N0YW5kYnlfZmlsZXMpOworCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgImNyZWF0ZSB0YWJsZSByZXRhaW5fdGVzdChhIGludCkiKTsKKworZm9yIChA YykKK3sKKwkkbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsICJTRUxF Q1QgcGdfc3dpdGNoX3dhbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0IGludG8gcmV0YWluX3Rlc3QgdmFsdWVzKCIKKwkJICAuICRfIC4g Iik7Iik7Cit9CisKKyMgQXNrIGZvciBhIGNoZWNrcG9pbnQKKyRub2RlX3ByaW1hcnktPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAnY2hlY2twb2ludDsnKTsKKworIyBDaGVjayB0aGF0IHRo ZSBXQUwgZmlsZSBoYXMgbm90IGJlZW4gcmV0YWluZWQgb24gdGhlIHByaW1hcnkKK29rKCEt ZiAkbm9kZV9wcmltYXJ5LT5kYXRhX2RpciAuICcvcGdfd2FsLycgLiAkd2FsZmlsZV9uYW1l LAorCSJXQUwgZmlsZSBub3Qgb24gdGhlIHByaW1hcnkgYW55bW9yZSIpOworCisjIFdhaXQg Zm9yIHRoZSBzdGFuZGJ5IHRvIGNhdGNoIHVwCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnkpOworCisjIEdlbmVyYXRlIGFub3RoZXIgV0FMIHN3aXRj aCwgbW9yZSBhY3Rpdml0eSBhbmQgYSBjaGVja3BvaW50Ciskbm9kZV9wcmltYXJ5LT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywgIlNFTEVDVCBwZ19zd2l0Y2hfd2FsKCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydCBpbnRvIHJldGFpbl90 ZXN0IHZhbHVlcygxKTsiKTsKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnY2hlY2twb2ludDsnKTsKKworIyBXYWl0IGZvciB0aGUgc3RhbmRieSB0byBjYXRjaCB1 cAorJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5KTsKKwor IyBWZXJpZnkgdGhhdCB0aGUgd2FsIGZpbGUgaGFzIG5vdCBiZWVuIHJldGFpbmVkIG9uIHRo ZSBzdGFuZGJ5CitteSAkc3RhbmRieV93YWxmaWxlID0gJG5vZGVfc3RhbmRieS0+ZGF0YV9k aXIgLiAnL3BnX3dhbC8nIC4gJHdhbGZpbGVfbmFtZTsKKworIyBXZSBjYW4gbm90IHRlc3Qg aWYgdGhlIFdBTCBmaWxlIHN0aWxsIGV4aXN0cyBpbW1lZGlhdGVseS4KKyMgV2UgbmVlZCB0 byBsZXQgc29tZSB0aW1lIHRvIHRoZSBzdGFuZGJ5IHRvIGFjdHVhbGx5ICJyZW1vdmUiIGl0 LgorbXkgJGkgPSAwOword2hpbGUgKDEpCit7CisJbGFzdCBpZiAhLWYgJHN0YW5kYnlfd2Fs ZmlsZTsKKwlpZiAoJGkrKyA9PSAxMCAqICRkZWZhdWx0X3RpbWVvdXQpCisJeworCQlkaWUK KwkJICAiY291bGQgbm90IGRldGVybWluZSBpZiBXQUwgZmlsZSBoYXMgYmVlbiByZXRhaW5l ZCBvciBub3QsIGNhbid0IGNvbnRpbnVlIjsKKwl9CisJdXNsZWVwKDEwMF8wMDApOworfQor CitvaygxLCAiaW52YWxpZGF0ZWQgbG9naWNhbCBzbG90cyBkbyBub3QgbGVhZCB0byByZXRh aW5pbmcgV0FMIik7CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCiAjIFJlY292ZXJ5IGNvbmZsaWN0OiBJbnZhbGlkYXRlIGNvbmZsaWN0 aW5nIHNsb3RzLCBpbmNsdWRpbmcgaW4tdXNlIHNsb3RzCg== --------------lC9Zm2JJ01b5CAx4pstQzCXV--