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 1prCz8-0004Ya-NH for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Apr 2023 07:21:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1prCz6-0000qF-EJ for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Apr 2023 07:21:08 +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 1prCz5-0000pI-Qw for pgsql-hackers@lists.postgresql.org; Tue, 25 Apr 2023 07:21:08 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1prCz0-001lrx-G6 for pgsql-hackers@lists.postgresql.org; Tue, 25 Apr 2023 07:21:06 +0000 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3f19ab99540so30404015e9.2 for ; Tue, 25 Apr 2023 00:21:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682407261; x=1684999261; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=Y+vD733iZpZMxTnh6chQAjSkAPf6qBVuY2SQGcVkAG4=; b=lihT0/cBpRdXJuLynZ65mGEeNjDpkmg/Q9/X7uq3QU9G/kiWgqAwa5KjmNevWV8JYe MH1FAJlbTg/S5EkL9LtPkyInbuGQDYxjORSmEnmR9H0dmFJyU2zPEI/rkznDbFjHthzo xOKKZD1mxQ+pzBFnY0MMJuX+znN4lptMxU1ouSHgEGJODdmm+O0z1S/bCCQ78h3j9ysZ tKxaldsALDDLgvDcXzLs9w+/l7JDq800AAAch79O8xog9QtbIZHDRDSPFc8pFLO/5qr1 iZTeMCgpuxUYsbZc32gHA/RDPUhoL7O/RqZ+WIesafoUlcPM/0ZvZ1CAK4bfOaUUG1N8 W42A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682407261; x=1684999261; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Y+vD733iZpZMxTnh6chQAjSkAPf6qBVuY2SQGcVkAG4=; b=MGduQRKCi/nMRkQiSw+Y0hY+kqYUgu3ke4P/Q4sI5C2pQPud80i65tpqdSp72lr/0O DA9hInYIu2rIrpBrVZh3DwGV1XBD6kFUO5BCoyMOVIkSI5sHur+gO4xHlYwKlMpA0q1e i1OgHSEz0f+Xl3oiw7TErKfM/MS5nB/YrsDI8Jc+HeDr2gnnHCgyWZapQ94mMql/s1e2 rzHNjShd4akKLPYN/ypiJjPY6K1sXSRWYZNlV+tO6jDCEKcoZHPttuKy1ZgIBzdBq4Fd 8592BjBinaN+VXlTL5FXMGTftvZ3c006GwISDtwJVQpJhWMFQShTFt1v8wsLBQ2afWZL etBw== X-Gm-Message-State: AAQBX9cVwNtOqYeHvfiyK7+f5t+KWPd6Ue0gxKVjAmB26eD7JMZgq4Mr zj1q3owRlrqmBm1cXZtLTxY= X-Google-Smtp-Source: AKy350b996Qsu51NiYhL7RaXynrJmAiIXer0mxFlKvNzfPlM8mJKJhQC+OAo6TgWL793ipmUWaW73Q== X-Received: by 2002:a7b:cd95:0:b0:3dc:55d9:ec8 with SMTP id y21-20020a7bcd95000000b003dc55d90ec8mr8100474wmj.41.1682407260771; Tue, 25 Apr 2023 00:21:00 -0700 (PDT) Received: from [192.168.7.55] ([54.239.6.186]) by smtp.gmail.com with ESMTPSA id y21-20020a05600c365500b003f182a10106sm14198996wmq.8.2023.04.25.00.20.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 25 Apr 2023 00:21:00 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------Z0vpRgApgXjzrlC41uy0x01M" Message-ID: <8679d9c4-961b-b77f-baa7-718e58f953ff@gmail.com> Date: Tue, 25 Apr 2023 09:19:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: Add two missing tests in 035_standby_logical_decoding.pl To: Amit Kapila Cc: vignesh C , PostgreSQL Hackers References: <2fefa454-5a70-2174-ddbf-4a0e41537139@gmail.com> <9ab1827c-9a57-8c48-59b2-c5fb62c21be3@gmail.com> Content-Language: en-US From: "Drouvot, Bertrand" In-Reply-To: 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. --------------Z0vpRgApgXjzrlC41uy0x01M Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, On 4/25/23 6:23 AM, Amit Kapila wrote: > On Mon, Apr 24, 2023 at 3:36 PM Drouvot, Bertrand > wrote: >> >> Without the second "pg_log_standby_snapshot()" then wait_for_subscription_sync() would be waiting >> some time on the poll for "SELECT count(1) = 0 FROM pg_subscription_rel WHERE srsubstate NOT IN ('r', 's');" >> >> Adding a comment in V3 to explain the need for the second pg_log_standby_snapshot(). >> > > Won't this still be unpredictable because it is possible that the > tablesync worker may take more time to get launched or create a > replication slot? If that happens after your second > pg_log_standby_snapshot() then wait_for_subscription_sync() will be > hanging. Oh right, that looks like a possible scenario. > Wouldn't it be better to create a subscription with > (copy_data = false) to make it predictable and then we won't need > pg_log_standby_snapshot() to be performed twice? > > If you agree with the above suggestion then you probably need to move > wait_for_subscription_sync() before Insert. > I like that idea, thanks! Done in V4 attached. Not related to the above corner case, but while re-reading the patch I also added: " $node_primary->wait_for_replay_catchup($node_standby); " between the publication creation on the primary and the subscription to the standby (to ensure the publication gets replicated before we request for the subscription creation). Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------Z0vpRgApgXjzrlC41uy0x01M Content-Type: text/plain; charset=UTF-8; name="v4-0002-Add-retained-WAL-test-in-035_standby_logical_deco.patch" Content-Disposition: attachment; filename*0="v4-0002-Add-retained-WAL-test-in-035_standby_logical_deco.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlZDkyZWE5YmYzMzg1ZDJmZTllNGVmMGQ4YTA0Yjg3YjFjN2U2YjNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJ0cmFuZCBEcm91dm90IDxiZXJ0cmFuZGRyb3V2 b3QucGdAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI1IEFwciAyMDIzIDA2OjAyOjE3ICswMDAw ClN1YmplY3Q6IFtQQVRDSCB2NCAyLzJdIEFkZCByZXRhaW5lZCBXQUwgdGVzdCBpbgogMDM1 X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbAoKQWRkaW5nIG9uZSB0ZXN0LCB0byB2ZXJp ZnkgdGhhdCBpbnZhbGlkYXRlZCBsb2dpY2FsIHNsb3RzIGRvIG5vdCBsZWFkIHRvCnJldGFp bmluZyBXQUwuCi0tLQogLi4uL3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbCAg ICAgICAgIHwgNzggKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDc2IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiAxMDAuMCUgc3JjL3Rlc3QvcmVjb3Zlcnkv dC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2lj YWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2lj YWxfZGVjb2RpbmcucGwKaW5kZXggMDMzNDZmNDRmMi4uNmFlNGZjMWUwMiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBs CisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGlu Zy5wbApAQCAtOSw2ICs5LDcgQEAgdXNlIHdhcm5pbmdzOwogdXNlIFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7CiB1c2UgVGVzdDo6 TW9yZTsKK3VzZSBUaW1lOjpIaVJlcyBxdyh1c2xlZXApOwogCiBteSAoJHN0ZGluLCAgICAg ICAgICAgICAkc3Rkb3V0LCAgICAgICAgICAgICRzdGRlcnIsCiAJJGNhc2NhZGluZ19zdGRv dXQsICAkY2FzY2FkaW5nX3N0ZGVyciwgICRzdWJzY3JpYmVyX3N0ZGluLApAQCAtNDk1LDkg KzQ5Niw4MiBAQCAkbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OwogY2hlY2tfc2xvdHNfY29uZmxp Y3Rpbmdfc3RhdHVzKDEpOwogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwotIyBWZXJpZnkgdGhhdCBpbnZhbGlkYXRlZCBsb2dpY2FsIHNs b3RzIGRvIG5vdCBsZWFkIHRvIHJldGFpbmluZyBXQUwKKyMgVmVyaWZ5IHRoYXQgaW52YWxp ZGF0ZWQgbG9naWNhbCBzbG90cyBkbyBub3QgbGVhZCB0byByZXRhaW5pbmcgV0FMLgogIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgWFhY WFggVE9ETworCisjIEdldCB0aGUgcmVzdGFydF9sc24gZnJvbSBhbiBpbnZhbGlkYXRlZCBz bG90CitteSAkcmVzdGFydF9sc24gPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIHJlc3RhcnRfbHNuIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMg V0hFUkUgc2xvdF9uYW1lID0gJ3ZhY3V1bV9mdWxsX2FjdGl2ZXNsb3QnIGFuZCBjb25mbGlj dGluZyBpcyB0cnVlOyIKKyk7CisKK2Nob21wKCRyZXN0YXJ0X2xzbik7CisKKyMgR2V0IHRo ZSBXQUwgZmlsZSBuYW1lIGFzc29jaWF0ZWQgdG8gdGhpcyBsc24gb24gdGhlIHByaW1hcnkK K215ICR3YWxmaWxlX25hbWUgPSAkbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIHBnX3dhbGZpbGVfbmFtZSgnJHJlc3RhcnRfbHNuJykiKTsKKworY2hv bXAoJHdhbGZpbGVfbmFtZSk7CisKKyMgQ2hlY2sgdGhlIFdBTCBmaWxlIGlzIHN0aWxsIG9u IHRoZSBwcmltYXJ5CitvaygtZiAkbm9kZV9wcmltYXJ5LT5kYXRhX2RpciAuICcvcGdfd2Fs LycgLiAkd2FsZmlsZV9uYW1lLAorCSJXQUwgZmlsZSBzdGlsbCBvbiB0aGUgcHJpbWFyeSIp OworCisjIEdldCB0aGUgbnVtYmVyIG9mIFdBTCBmaWxlcyBvbiB0aGUgc3RhbmRieQorbXkg JG5iX3N0YW5kYnlfZmlsZXMgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIENPVU5UKCopIEZST00gcGdfbHNfZGlyKCdwZ193YWwnKSIpOworCitj aG9tcCgkbmJfc3RhbmRieV9maWxlcyk7CisKKyMgU3dpdGNoIFdBTCBmaWxlcyBvbiB0aGUg cHJpbWFyeQorbXkgQGMgPSAoMSAuLiAkbmJfc3RhbmRieV9maWxlcyk7CisKKyRub2RlX3By aW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiY3JlYXRlIHRhYmxlIHJldGFpbl90ZXN0 KGEgaW50KSIpOworCitmb3IgKEBjKQoreworCSRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgK KwkJJ3Bvc3RncmVzJywgIlNFTEVDVCBwZ19zd2l0Y2hfd2FsKCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnQgaW50byByZXRhaW5fdGVzdCB2 YWx1ZXMoIgorCQkgIC4gJF8gLiAiKTsiKTsKK30KKworIyBBc2sgZm9yIGEgY2hlY2twb2lu dAorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdjaGVja3BvaW50Oycp OworCisjIENoZWNrIHRoYXQgdGhlIFdBTCBmaWxlIGhhcyBub3QgYmVlbiByZXRhaW5lZCBv biB0aGUgcHJpbWFyeQorb2soIS1mICRub2RlX3ByaW1hcnktPmRhdGFfZGlyIC4gJy9wZ193 YWwvJyAuICR3YWxmaWxlX25hbWUsCisJIldBTCBmaWxlIG5vdCBvbiB0aGUgcHJpbWFyeSBh bnltb3JlIik7CisKKyMgV2FpdCBmb3IgdGhlIHN0YW5kYnkgdG8gY2F0Y2ggdXAKKyRub2Rl X3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSk7CisKKyMgR2VuZXJh dGUgYW5vdGhlciBXQUwgc3dpdGNoLCBtb3JlIGFjdGl2aXR5IGFuZCBhIGNoZWNrcG9pbnQK KyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCAiU0VMRUNUIHBnX3N3 aXRjaF93YWwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5zZXJ0IGludG8gcmV0YWluX3Rlc3QgdmFsdWVzKDEpOyIpOworJG5vZGVfcHJpbWFyeS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdjaGVja3BvaW50OycpOworCisjIFdhaXQgZm9yIHRo ZSBzdGFuZGJ5IHRvIGNhdGNoIHVwCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVw KCRub2RlX3N0YW5kYnkpOworCisjIFZlcmlmeSB0aGF0IHRoZSB3YWwgZmlsZSBoYXMgbm90 IGJlZW4gcmV0YWluZWQgb24gdGhlIHN0YW5kYnkKK215ICRzdGFuZGJ5X3dhbGZpbGUgPSAk bm9kZV9zdGFuZGJ5LT5kYXRhX2RpciAuICcvcGdfd2FsLycgLiAkd2FsZmlsZV9uYW1lOwor CisjIFdlIGNhbiBub3QgdGVzdCBpZiB0aGUgV0FMIGZpbGUgc3RpbGwgZXhpc3RzIGltbWVk aWF0ZWx5LgorIyBXZSBuZWVkIHRvIGxldCBzb21lIHRpbWUgdG8gdGhlIHN0YW5kYnkgdG8g YWN0dWFsbHkgInJlbW92ZSIgaXQuCitteSAkaSA9IDA7Cit3aGlsZSAoMSkKK3sKKwlsYXN0 IGlmICEtZiAkc3RhbmRieV93YWxmaWxlOworCWlmICgkaSsrID09IDEwICogJGRlZmF1bHRf dGltZW91dCkKKwl7CisJCWRpZQorCQkgICJjb3VsZCBub3QgZGV0ZXJtaW5lIGlmIFdBTCBm aWxlIGhhcyBiZWVuIHJldGFpbmVkIG9yIG5vdCwgY2FuJ3QgY29udGludWUiOworCX0KKwl1 c2xlZXAoMTAwXzAwMCk7Cit9CisKK29rKDEsICJpbnZhbGlkYXRlZCBsb2dpY2FsIHNsb3Rz IGRvIG5vdCBsZWFkIHRvIHJldGFpbmluZyBXQUwiKTsKIAogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgUmVjb3ZlcnkgY29uZmxpY3Q6 IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xvdHMK LS0gCjIuMzQuMQoK --------------Z0vpRgApgXjzrlC41uy0x01M Content-Type: text/plain; charset=UTF-8; name="v4-0001-Add-subscribtion-to-the-standby-test-in-035_stand.patch" Content-Disposition: attachment; filename*0="v4-0001-Add-subscribtion-to-the-standby-test-in-035_stand.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1MzUwN2IzMjJjZDBhZjc5YjE1Y2I2MmVmZjhlMzk0MjJhOGY5OGM2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJ0cmFuZCBEcm91dm90IDxiZXJ0cmFuZGRyb3V2 b3QucGdAZ21haWwuY29tPgpEYXRlOiBNb24sIDI0IEFwciAyMDIzIDA1OjEzOjIzICswMDAw ClN1YmplY3Q6IFtQQVRDSCB2NCAxLzJdIEFkZCBzdWJzY3JpYnRpb24gdG8gdGhlIHN0YW5k YnkgdGVzdCBpbgogMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbAoKQWRkaW5nIG9u ZSB0ZXN0LCB0byB2ZXJpZnkgdGhhdCBzdWJzY3JpYnRpb24gdG8gdGhlIHN0YW5kYnkgaXMg cG9zc2libGUuCi0tLQogc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1c3Rlci5w bSAgICAgIHwgMTEgKystCiAuLi4vdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBs ICAgICAgICAgfCA5MSArKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDk5 IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiAgIDcuNSUgc3JjL3Rlc3QvcGVybC9Q b3N0Z3JlU1FML1Rlc3QvCiAgOTIuNCUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGIvc3JjL3Rl c3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1c3Rlci5wbQppbmRleCA2ZjdmNGU1ZGU0Li44 MTk2NjdkNDJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9D bHVzdGVyLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIu cG0KQEAgLTI2NDQsNyArMjY0NCwxNiBAQCBzdWIgd2FpdF9mb3JfY2F0Y2h1cAogCX0KIAlp ZiAoIWRlZmluZWQoJHRhcmdldF9sc24pKQogCXsKLQkJJHRhcmdldF9sc24gPSAkc2VsZi0+ bHNuKCd3cml0ZScpOworCQlteSAkaXNyZWNvdmVyeSA9ICRzZWxmLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlNFTEVDVCBwZ19pc19pbl9yZWNvdmVyeSgpIik7CisJCWNob21wKCRpc3Jl Y292ZXJ5KTsKKwkJaWYgKCRpc3JlY292ZXJ5IGVxICd0JykKKwkJeworCQkJJHRhcmdldF9s c24gPSAkc2VsZi0+bHNuKCdyZXBsYXknKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCSR0YXJn ZXRfbHNuID0gJHNlbGYtPmxzbignd3JpdGUnKTsKKwkJfQogCX0KIAlwcmludCAiV2FpdGlu ZyBmb3IgcmVwbGljYXRpb24gY29ubiAiCiAJICAuICRzdGFuZGJ5X25hbWUgLiAiJ3MgIgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsCmluZGV4IGI4ZjUzMTFmZTkuLjAzMzQ2ZjQ0ZjIgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbAorKysg Yi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwK QEAgLTEwLDEyICsxMCwxNyBAQCB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKIHVz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKIHVzZSBUZXN0OjpNb3JlOwogCi1teSAoJHN0 ZGluLCAkc3Rkb3V0LCAkc3RkZXJyLCAkY2FzY2FkaW5nX3N0ZG91dCwgJGNhc2NhZGluZ19z dGRlcnIsICRyZXQsICRoYW5kbGUsICRzbG90KTsKK215ICgkc3RkaW4sICAgICAgICAgICAg ICRzdGRvdXQsICAgICAgICAgICAgJHN0ZGVyciwKKwkkY2FzY2FkaW5nX3N0ZG91dCwgICRj YXNjYWRpbmdfc3RkZXJyLCAgJHN1YnNjcmliZXJfc3RkaW4sCisJJHN1YnNjcmliZXJfc3Rk b3V0LCAkc3Vic2NyaWJlcl9zdGRlcnIsICRyZXQsCisJJGhhbmRsZSwgICAgICAgICAgICAk c2xvdCk7CiAKIG15ICRub2RlX3ByaW1hcnkgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVy LT5uZXcoJ3ByaW1hcnknKTsKIG15ICRub2RlX3N0YW5kYnkgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3N0YW5kYnknKTsKIG15ICRub2RlX2Nhc2NhZGluZ19zdGFuZGJ5 ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdjYXNjYWRpbmdfc3RhbmRieScp OworbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygnc3Vic2NyaWJlcicpOwogbXkgJGRlZmF1bHRfdGltZW91dCA9ICRQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0OworbXkgJHBzcWxfdGltZW91dCAgICA9IElQ Qzo6UnVuOjp0aW1lcigyICogJGRlZmF1bHRfdGltZW91dCk7CiBteSAkcmVzOwogCiAjIE5h bWUgZm9yIHRoZSBwaHlzaWNhbCBzbG90IG9uIHByaW1hcnkKQEAgLTI2Nyw3ICsyNzIsOCBA QCAkbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKAogCWhhc19zdHJlYW1pbmcgPT4g MSwKIAloYXNfcmVzdG9yaW5nID0+IDEpOwogJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYo J3Bvc3RncmVzcWwuY29uZicsCi0JcXFbcHJpbWFyeV9zbG90X25hbWUgPSAnJHByaW1hcnlf c2xvdG5hbWUnXSk7CisJcXFbcHJpbWFyeV9zbG90X25hbWUgPSAnJHByaW1hcnlfc2xvdG5h bWUnCisgICAgICAgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gNV0pOwogJG5vZGVfc3RhbmRi eS0+c3RhcnQ7CiAkbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9k ZV9zdGFuZGJ5KTsKICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VM RUNUICogRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJHN0YW5k YnlfcGh5c2ljYWxfc2xvdG5hbWUnKTtdKTsKQEAgLTI4NSw2ICsyOTEsMjYgQEAgJG5vZGVf Y2FzY2FkaW5nX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAogJG5v ZGVfY2FzY2FkaW5nX3N0YW5kYnktPnN0YXJ0OwogJG5vZGVfc3RhbmRieS0+d2FpdF9mb3Jf cmVwbGF5X2NhdGNodXAoJG5vZGVfY2FzY2FkaW5nX3N0YW5kYnksICRub2RlX3ByaW1hcnkp OwogCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBJbml0aWFsaXplIHN1YnNjcmliZXIg bm9kZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyRub2RlX3N1YnNjcmliZXItPmluaXQo YWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfc3Vic2NyaWJlci0+c3Rh cnQ7CisKK215ICVwc3FsX3N1YnNjcmliZXIgPSAoCisJJ3N1YnNjcmliZXJfc3RkaW4nICA9 PiAnJywKKwknc3Vic2NyaWJlcl9zdGRvdXQnID0+ICcnLAorCSdzdWJzY3JpYmVyX3N0ZGVy cicgPT4gJycpOworJHBzcWxfc3Vic2NyaWJlcntydW59ID0gSVBDOjpSdW46OnN0YXJ0KAor CVsgJ3BzcWwnLCAnLVhBJywgJy1mJywgJy0nLCAnLWQnLCAkbm9kZV9zdWJzY3JpYmVyLT5j b25uc3RyKCdwb3N0Z3JlcycpIF0sCisJJzwnLAorCVwkcHNxbF9zdWJzY3JpYmVye3N1YnNj cmliZXJfc3RkaW59LAorCSc+JywKKwlcJHBzcWxfc3Vic2NyaWJlcntzdWJzY3JpYmVyX3N0 ZG91dH0sCisJJzI+JywKKwlcJHBzcWxfc3Vic2NyaWJlcntzdWJzY3JpYmVyX3N0ZGVycn0s CisJJHBzcWxfdGltZW91dCk7CisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRlc3QgdGhhdCBsb2dpY2FsIGRlY29kaW5nIG9uIHRo ZSBzdGFuZGJ5CiAjIGJlaGF2ZXMgY29ycmVjdGx5LgpAQCAtMzY1LDYgKzM5MSw2NyBAQCBp cyggJG5vZGVfcHJpbWFyeS0+cHNxbCgKICAgICAzLAogICAgICdyZXBsYXlpbmcgbG9naWNh bCBzbG90IGZyb20gYW5vdGhlciBkYXRhYmFzZSBmYWlscycpOwogCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgd2Ug Y2FuIHN1YnNjcmliZSBvbiB0aGUgc3RhbmRieSB3aXRoIHRoZSBwdWJsaWNhdGlvbgorIyBj cmVhdGVkIG9uIHRoZSBwcmltYXJ5LgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgYSB0YWJsZSBvbiB0aGUgcHJpbWFy eQorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJM RSB0YWJfcmVwIChhIGludCBwcmltYXJ5IGtleSkiKTsKKworIyBDcmVhdGUgYSB0YWJsZSAo c2FtZSBzdHJ1Y3R1cmUpIG9uIHRoZSBzdWJzY3JpYmVyIG5vZGUKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiX3JlcCAoYSBp bnQgcHJpbWFyeSBrZXkpIik7CisKKyMgQ3JlYXRlIGEgcHVibGljYXRpb24gb24gdGhlIHBy aW1hcnkKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg UFVCTElDQVRJT04gdGFwX3B1YiBmb3IgdGFibGUgdGFiX3JlcCIpOworCiskbm9kZV9wcmlt YXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5KTsKKworIyBTdWJz Y3JpYmUgb24gdGhlIHN0YW5kYnkKK215ICRzdGFuZGJ5X2Nvbm5zdHIgPSAkbm9kZV9zdGFu ZGJ5LT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworCisjIE5vdCB1c2luZyBzYWZl X3BzcWwoKSBoZXJlIGFzIGl0IHdvdWxkIHdhaXQgZm9yIGFjdGl2aXR5IG9uIHRoZSBwcmlt YXJ5CisjIGFuZCB3ZSB3b3VsZG4ndCBiZSBhYmxlIHRvIGxhdW5jaCBwZ19sb2dfc3RhbmRi eV9zbmFwc2hvdCgpIG9uIHRoZSBwcmltYXJ5CisjIHdoaWxlIHdhaXRpbmcuCisjIHBzcWxf c3Vic2NyaWJlcigpIGFsbG93cyB0byBub3Qgd2FpdCBzeW5jaHJvbm91c2x5LgorJHBzcWxf c3Vic2NyaWJlcntzdWJzY3JpYmVyX3N0ZGlufSAuPQorICBxcVtDUkVBVEUgU1VCU0NSSVBU SU9OIHRhcF9zdWIKKyAgICAgQ09OTkVDVElPTiAnJHN0YW5kYnlfY29ubnN0cicKKyAgICAg UFVCTElDQVRJT04gdGFwX3B1YgorICAgICBXSVRIIChjb3B5X2RhdGEgPSBvZmYpO107Cisk cHNxbF9zdWJzY3JpYmVye3N1YnNjcmliZXJfc3RkaW59IC49ICJcbiI7CisKKyRwc3FsX3N1 YnNjcmliZXJ7cnVufS0+cHVtcF9uYigpOworCisjIFNwZWVkIHVwIHRoZSBzdWJzY3JpcHRp b24gY3JlYXRpb24KKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VM RUNUIHBnX2xvZ19zdGFuZGJ5X3NuYXBzaG90KCkiKTsKKworIyBFeHBsaWNpdGx5IHNodXQg ZG93biBwc3FsIGluc3RhbmNlIGdyYWNlZnVsbHkgLSB0byBhdm9pZCBoYW5ncworIyBvciB3 b3JzZSBvbiB3aW5kb3dzCiskcHNxbF9zdWJzY3JpYmVye3N1YnNjcmliZXJfc3RkaW59IC49 ICJcXHFcbiI7CiskcHNxbF9zdWJzY3JpYmVye3J1bn0tPmZpbmlzaDsKKworJG5vZGVfc3Vi c2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfc3RhbmRieSwgJ3Rh cF9zdWInKTsKKworIyBJbnNlcnQgc29tZSByb3dzIG9uIHRoZSBwcmltYXJ5Ciskbm9kZV9w cmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxcVtJTlNFUlQgSU5UTyB0YWJfcmVw IHNlbGVjdCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7XSk7CisKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOworJG5vZGVfc3RhbmRieS0+ d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1YicpOworCisjIENoZWNrIHRoYXQgdGhlIHN1YnNj cmliZXIgY2FuIHNlZSB0aGUgcm93cyBpbnNlcnRlZCBpbiB0aGUgcHJpbWFyeQorJHJlc3Vs dCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNU IGNvdW50KCopIEZST00gdGFiX3JlcCIpOworaXMoJHJlc3VsdCwgcXEoMTApLCAnY2hlY2sg cmVwbGljYXRlZCBpbnNlcnRzIGFmdGVyIHN1YnNjcmlwdGlvbiBvbiBzdGFuZGJ5Jyk7CisK KyMgV2UgZG8gbm90IG5lZWQgdGhlIHN1YnNjcmlwdGlvbiBhbmQgdGhlIHN1YnNjcmliZXIg YW55bW9yZQorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9Q IFNVQlNDUklQVElPTiB0YXBfc3ViIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdG9wOworCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBS ZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVk aW5nIGluLXVzZSBzbG90cwogIyBTY2VuYXJpbyAxOiBob3Rfc3RhbmRieV9mZWVkYmFjayBv ZmYgYW5kIHZhY3V1bSBGVUxMCi0tIAoyLjM0LjEKCg== --------------Z0vpRgApgXjzrlC41uy0x01M--