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 1vUoKA-007opW-04 for pgsql-hackers@arkaria.postgresql.org; Sun, 14 Dec 2025 15:47:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vUoK8-00DX96-38 for pgsql-hackers@arkaria.postgresql.org; Sun, 14 Dec 2025 15:47:53 +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 1vUoK8-00DX8x-1K for pgsql-hackers@lists.postgresql.org; Sun, 14 Dec 2025 15:47:53 +0000 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vUoK7-000dpA-25 for pgsql-hackers@lists.postgresql.org; Sun, 14 Dec 2025 15:47:52 +0000 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-597d57d8bb3so2446058e87.3 for ; Sun, 14 Dec 2025 07:47:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765727269; x=1766332069; 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=BJ9gfdr5zzOHYdK/tBxqxE7lPY1mcGcr6lWz+HqZOqw=; b=auwEpZU0BkHgg/eJcUG9E08nqHl6nP3i5zvlLuYyoh3d7KhH4GaNc+eEKk43CgV723 4gIg4uELN8e54/xM4jt2BuKbZ0wLKwA/uCl5zmQEAoh1B2TJZNYgcNiB04p0xz5hcdrO csgXpK1uEZAGaUt6/Us3lskuwx9QgDxc1SYQ0l2vgooHtGvi+t4p8KRV7U7zadIqsd02 kf0Ehant4r3mpvC5cAqGtr4WCooYtt9u3yPmKsiHeJVselSa231YlIdPu6N5DBoBB1GY 9uv7L1vCHyWvxVCa4hjdNaVn7zywprPaOKtVVAcb1CgK+gJiGWSv6kI6z//WQ4MhGFj9 oOeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765727269; x=1766332069; 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=BJ9gfdr5zzOHYdK/tBxqxE7lPY1mcGcr6lWz+HqZOqw=; b=P3EOfaAEBH7yE1rLakfgUS0T12jlrlDB64yDiSN3rngxgL8b0Kkzl8HIZySJtc8q5q qz6Ju9uWUWU9EUtrVUkEERbs+wurU3AVFtQShlDhaPpyAUBXnkvM+WAe1trZznR1/cBc 7vjU9EA/WOxUs23epJQ0+BY2ADACiU9L5lTUD5rXQqHQBwxncHtt9cyvwHmyGe5Ac1Vm YNilN4Pt9TPnjF9qx8ucbllCSymZ/9QYC2zm0CLWbhnM63CTB1uae1EvLvBpUI/PjBjq QlVp4LeJD8UGo+Y95I4qYFZbVtmHgccseBHPMV2USYJ74kHfCqcYcIWi0x5r1tZ5SLU1 8F5w== X-Gm-Message-State: AOJu0YwLZqK+C9q/q4zfyGmqBR0wQSG9VDrjkVB9KtJalKzI2/f+282Z 0AgQ8e7hazQfPv1t7OZvdHTHatH1OT0/MJ6fCKOt+izarNVcFzVeHtn3GlUpv2ZPEs1JcrqEjmo 7C54oiKby1QyGfI6G87piZdU1Cp4jm9U= X-Gm-Gg: AY/fxX7jnsoQbdXhGNQp4c+0IBcQeMHYyrVImL1TGBtTNYOUD0NVA8xNFQSKOEH9W8o 1aiJpXYI3hZIgyceXno9RoAunT/mPUl2AZO9lxLQwtATAK9lKVT9DRUkBVgapCKviaNhCfCXAGr TPiym+ibuw2n/lsqOHZoqcvxcsINbFJ2FrQ/EGYZz+M6TmjLKRggcaghfPMcwV5zWOXBP0+OR4I M63PLOfLwNJXqmG4qBywAh/ZlDDD/MpnAibV6Hx5x9R66C8YHIgdnG8lckw0y1l++FR X-Google-Smtp-Source: AGHT+IEsrKfi8YG+/zMBhJc5iJHXSLywjJOvso5UPS7uTwcVOyH8wrjvemEeXHV9UAUSCz+VClpDCRnosHl5IFYsmRE= X-Received: by 2002:ac2:4849:0:b0:598:fac9:fdb7 with SMTP id 2adb3069b0e04-598fac9ffddmr1774845e87.35.1765727268880; Sun, 14 Dec 2025 07:47:48 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Gyan Sreejith Date: Sun, 14 Dec 2025 10:47:36 -0500 X-Gm-Features: AQt7F2oV1U-6Ii4J7MNBf7Mwn36jCJ5bztO054ysYF0hGqS0iowGoRblK8_NJlo Message-ID: Subject: Re: [Proposal] Adding Log File Capability to pg_createsubscriber To: Peter Smith Cc: pgsql-hackers@lists.postgresql.org, vignesh C Content-Type: multipart/mixed; boundary="000000000000a1e1940645eb6a6d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a1e1940645eb6a6d Content-Type: multipart/alternative; boundary="000000000000a1e1920645eb6a6b" --000000000000a1e1920645eb6a6b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I have included the patch file after making the changes to the SGML docs. Thanks for your help, Gyan Sreejith On Thu, Dec 11, 2025 at 8:33=E2=80=AFPM Gyan Sreejith wrote: > Thanks for the feedback, Peter. > > I am currently working on the SGML docs update, and will promptly get bac= k > with an update. > > For your second point, currently, all output goes directly to the console= . > I thought it made more sense to break it up into multiple files depending > on what was being invoked. Do you have another opinion? > > Thank you once again, > Gyan Sreejith > > On Thu, Dec 11, 2025 at 2:29=E2=80=AFAM Peter Smith wrote: > >> On Wed, Dec 10, 2025 at 9:17=E2=80=AFAM Gyan Sreejith >> wrote: >> > >> > Background: >> > >> > pg_createsubscriber currently outputs all messages (internal validatio= n >> messages, standby server start/stop logs, recovery progress output, and >> output from utilities) directly to the console. As a result, users may f= ind >> debugging and handling errors difficult. It would be more convenient if >> messages were separated and stored in different log files. There is alre= ady >> a similar implementation in pg_upgrade. >> > >> > Proposed Solution: >> > >> > Based on issues mentioned previously, I would like to propose a new >> argument -l which can be specified for pg_createsubscriber. Usi= ng >> it would create the following log files: >> > >> > logdir/pg_createsubscriber_server.log which captures all logs related >> to starting and stopping the standby server. >> > >> > logdir/pg_createsubscriber_resetwal.log which captures the output of >> pg_resetwal >> > >> > logdir/pg_createsubscriber_internal.log which captures internal >> diagnostic output from pg_createsubscriber (validations, checks, etc.) >> > >> > Overall, this proposed solution could make the pg_createsubscriber >> command output messages more organized. The command would be easier to u= se >> as users will only have to read individual log files rather than parse >> through lots of possibly irrelevant output messages. I have attached the >> patch for this change. >> > >> > Special thanks to Vignesh C. for his offlist guidance on this project. >> > >> > >> > Regards, Gyan Sreejith >> > >> >> Hi Gyan. >> >> I haven't yet looked at this patch in any detail, but here are some >> quick comments: >> >> =3D=3D=3D=3D=3D=3D >> >> 1. >> + printf(_(" -l, --logdir=3DLOGDIR location for the new log >> directory\n")); >> >> The patch is missing SGML docs updates for pg_createsubscriber new >> option, and any explanation of the split of logfiles. >> >> 2. >> I might be mistaken, but IIUC it seems the splitting of the logfile >> only works when --logdir is specified. Is that correct? >> Why should --logdir have any side-effect other than assigning the log >> destination folder? >> >> =3D=3D=3D=3D=3D=3D >> Kind Regards, >> Peter Smith. >> Fujitsu Australia >> > --000000000000a1e1920645eb6a6b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I have included the patch file after making the changes to= the SGML docs.=C2=A0

Thanks for your help,
Gy= an Sreejith

On Thu, Dec 11, 2025 at 8:33=E2=80=AFPM Gyan Sreejith <= gyan.sreejith@= gmail.com> wrote:
Thanks for the feedback, Peter.

I am cur= rently working on the SGML docs update, and will promptly get back with an = update.=C2=A0

For your second point, currently, all outp= ut goes=C2=A0directly to the console. I thought it made more sense to break= it up into multiple files depending on what was being invoked. Do you have= another opinion?=C2=A0

Thank you once again,
Gyan Sreejith
=

= On Thu, Dec 11, 2025 at 2:29=E2=80=AFAM Peter Smith <smithpb2250@gmail.com> wrote= :
On Wed, Dec 10= , 2025 at 9:17=E2=80=AFAM Gyan Sreejith <gyan.sreejith@gmail.com> wrote:
>
> Background:
>
> pg_createsubscriber currently outputs all messages (internal validatio= n messages, standby server start/stop logs, recovery progress output, and o= utput from utilities) directly to the console. As a result, users may find = debugging and handling errors difficult. It would be more convenient if mes= sages were separated and stored in different log files. There is already a = similar implementation in pg_upgrade.
>
> Proposed Solution:
>
> Based on issues mentioned previously, I would like to propose a new ar= gument -l <logdir> which can be specified for pg_createsubscriber. Us= ing it would create the following log files:
>
> logdir/pg_createsubscriber_server.log which captures all logs related = to starting and stopping the standby server.
>
> logdir/pg_createsubscriber_resetwal.log which captures the output of p= g_resetwal
>
> logdir/pg_createsubscriber_internal.log which captures internal diagno= stic output from pg_createsubscriber (validations, checks, etc.)
>
> Overall, this proposed solution could make the pg_createsubscriber com= mand output messages more organized. The command would be easier to use as = users will only have to read individual log files rather than parse through= lots of possibly irrelevant output messages. I have attached the patch for= this change.
>
> Special thanks to Vignesh C. for his offlist guidance on this project.=
>
>
> Regards, Gyan Sreejith
>

Hi Gyan.

I haven't yet looked at this patch in any detail, but here are some
quick comments:

=3D=3D=3D=3D=3D=3D

1.
+ printf(_("=C2=A0 -l, --logdir=3DLOGDIR=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0location for the new log
directory\n"));

The patch is missing SGML docs updates for pg_createsubscriber new
option, and any explanation of the split of logfiles.

2.
I might be mistaken, but IIUC it seems the splitting of the logfile
only works when --logdir is specified. Is that correct?
Why should --logdir have any side-effect other than assigning the log
destination folder?

=3D=3D=3D=3D=3D=3D
Kind Regards,
Peter Smith.
Fujitsu Australia
--000000000000a1e1920645eb6a6b-- --000000000000a1e1940645eb6a6d Content-Type: application/x-patch; name="diff.patch" Content-Disposition: attachment; filename="diff.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj5vhhbq0 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKaW5kZXggYmI5Y2M3MjU3 NmMuLjVlMjRhMjk3NTY2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1 YnNjcmliZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIu c2dtbApAQCAtMTM2LDYgKzEzNiwzMyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAg PC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgIDx0ZXJtPjxvcHRpb24+LWwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRpcmVj dG9yeTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICA8dGVybT48b3B0aW9uPi0t bG9nZGlyPTxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kaXJlY3Rvcnk8L3JlcGxhY2Vh YmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAg ICAgVGhlIHRhcmdldCBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGZvbGxvd2luZyB0aHJlZSBsb2cg ZmlsZXMgd2lsbCBiZSBjcmVhdGVkOgorICAgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJf c2VydmVyLmxvZyB3aGljaCBjYXB0dXJlcyBsb2dzIHJlbGF0ZWQgdG8gc3RvcHBpbmcgYW5kIHN0 YXJ0aW5nIHRoZSBzdGFuZGJ5IHNlcnZlciwKKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAg cGdfY3JlYXRlc3Vic2NyaWJlcl9yZXNldHdhbC5sb2cgd2hpY2ggY2FwdHVyZXMgdGhlIG91dHB1 dCBvZiBwZ19yZXNldHdhbCwgYW5kCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0 ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIHBnX2Ny ZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIHdoaWNoIGNhcHR1cmVzIGludGVybmFsIGRpYWdu b3N0aWMgb3V0cHV0ICh2YWxpZGF0aW9ucywgY2hlY2tzLCBldGMuKQorICAgICAgICAgPC9wYXJh PgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxp c3RlbnRyeT4KICAgICAgPHRlcm0+PG9wdGlvbj4tbjwvb3B0aW9uPjwvdGVybT4KICAgICAgPHRl cm0+PG9wdGlvbj4tLWRyeS1ydW48L29wdGlvbj48L3Rlcm0+CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFj a3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwppbmRleCBmNTljMjkzZDg3NS4uZThkN2IwNzMwZTkg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMK KysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwpAQCAtMzYs NiArMzYsNyBAQAogc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zCiB7CiAJY2hhcgkgICAq Y29uZmlnX2ZpbGU7CS8qIGNvbmZpZ3VyYXRpb24gZmlsZSAqLworCWNoYXIJICAgKmxvZ19kaXI7 CQkvKiBsb2cgZGlyZWN0b3J5ICovCiAJY2hhcgkgICAqcHViX2Nvbm5pbmZvX3N0cjsJLyogcHVi bGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nICovCiAJY2hhcgkgICAqc29ja2V0X2RpcjsJCS8qIGRp cmVjdG9yeSBmb3IgVW5peC1kb21haW4gc29ja2V0LCBpZiBhbnkgKi8KIAljaGFyCSAgICpzdWJf cG9ydDsJCS8qIHN1YnNjcmliZXIgcG9ydCBudW1iZXIgKi8KQEAgLTE1MCw2ICsxNTEsOCBAQCBz dGF0aWMgcGdfcHJuZ19zdGF0ZSBwcm5nX3N0YXRlOwogc3RhdGljIGNoYXIgKnBnX2N0bF9wYXRo ID0gTlVMTDsKIHN0YXRpYyBjaGFyICpwZ19yZXNldHdhbF9wYXRoID0gTlVMTDsKIAorc3RhdGlj IGNoYXIgKmludGVybmFsX2xvZ19maWxlID0gTlVMTDsKKwogLyogc3RhbmRieSAvIHN1YnNjcmli ZXIgZGF0YSBkaXJlY3RvcnkgKi8KIHN0YXRpYyBjaGFyICpzdWJzY3JpYmVyX2RpciA9IE5VTEw7 CiAKQEAgLTI1MSw2ICsyNTQsNyBAQCB1c2FnZSh2b2lkKQogCQkJICIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YWJhc2VzIGFuZCBkYXRhYmFzZXMgdGhhdCBkb24ndCBhbGxv dyBjb25uZWN0aW9uc1xuIikpOwogCXByaW50ZihfKCIgIC1kLCAtLWRhdGFiYXNlPURCTkFNRSAg ICAgICAgICAgZGF0YWJhc2UgaW4gd2hpY2ggdG8gY3JlYXRlIGEgc3Vic2NyaXB0aW9uXG4iKSk7 CiAJcHJpbnRmKF8oIiAgLUQsIC0tcGdkYXRhPURBVEFESVIgICAgICAgICAgICBsb2NhdGlvbiBm b3IgdGhlIHN1YnNjcmliZXIgZGF0YSBkaXJlY3RvcnlcbiIpKTsKKwlwcmludGYoXygiICAtbCwg LS1sb2dkaXI9TE9HRElSICAgICAgICAgICAgIGxvY2F0aW9uIGZvciB0aGUgbmV3IGxvZyBkaXJl Y3RvcnlcbiIpKTsKIAlwcmludGYoXygiICAtbiwgLS1kcnktcnVuICAgICAgICAgICAgICAgICAg IGRyeSBydW4sIGp1c3Qgc2hvdyB3aGF0IHdvdWxkIGJlIGRvbmVcbiIpKTsKIAlwcmludGYoXygi ICAtcCwgLS1zdWJzY3JpYmVyLXBvcnQ9UE9SVCAgICAgIHN1YnNjcmliZXIgcG9ydCBudW1iZXIg KGRlZmF1bHQgJXMpXG4iKSwgREVGQVVMVF9TVUJfUE9SVCk7CiAJcHJpbnRmKF8oIiAgLVAsIC0t cHVibGlzaGVyLXNlcnZlcj1DT05OU1RSICBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmdcbiIp KTsKQEAgLTY3MCw2ICs2NzQsNyBAQCBtb2RpZnlfc3Vic2NyaWJlcl9zeXNpZChjb25zdCBzdHJ1 Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKIAlib29sCQljcmNfb2s7CiAJc3RydWN0 IHRpbWV2YWwgdHY7CiAKKwljaGFyCSAgICpvdXRfZmlsZTsKIAljaGFyCSAgICpjbWRfc3RyOwog CiAJcGdfbG9nX2luZm8oIm1vZGlmeWluZyBzeXN0ZW0gaWRlbnRpZmllciBvZiBzdWJzY3JpYmVy Iik7CkBAIC03MDMsOCArNzA4LDE0IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0IHN0 cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCWVsc2UKIAkJcGdfbG9nX2luZm8o InJ1bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsKIAorCisJaWYgKG9wdC0+ bG9nX2RpciAhPSBOVUxMKQorCQlvdXRfZmlsZSA9IHBzcHJpbnRmKCIlcy9wZ19jcmVhdGVzdWJz Y3JpYmVyX3Jlc2V0d2FsLmxvZyIsIG9wdC0+bG9nX2Rpcik7CisJZWxzZQorCQlvdXRfZmlsZSA9 IERFVk5VTEw7CisKIAljbWRfc3RyID0gcHNwcmludGYoIlwiJXNcIiAtRCBcIiVzXCIgPiBcIiVz XCIiLCBwZ19yZXNldHdhbF9wYXRoLAotCQkJCQkgICBzdWJzY3JpYmVyX2RpciwgREVWTlVMTCk7 CisJCQkJCSAgIHN1YnNjcmliZXJfZGlyLCBvdXRfZmlsZSk7CiAKIAlwZ19sb2dfZGVidWcoInBn X3Jlc2V0d2FsIGNvbW1hbmQgaXM6ICVzIiwgY21kX3N0cik7CiAKQEAgLTg5Myw4ICs5MDQsMTgg QEAgY2hlY2tfcHVibGlzaGVyKGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQog CWludAkJCWN1cl93YWxzZW5kZXJzOwogCWludAkJCW1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnM7 CiAJY2hhcgkgICAqbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZTsKKwlGSUxFCSAgICpmcDsKIAotCXBn X2xvZ19pbmZvKCJjaGVja2luZyBzZXR0aW5ncyBvbiBwdWJsaXNoZXIiKTsKKwlpZiAoaW50ZXJu YWxfbG9nX2ZpbGUgIT0gTlVMTCkKKwl7CisJCWlmICgoZnAgPSBmb3BlbihpbnRlcm5hbF9sb2df ZmlsZSwgImEiKSkgPT0gTlVMTCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgd3JpdGUgdG8gbG9n IGZpbGUgXCIlc1wiOiAlbSIsIGludGVybmFsX2xvZ19maWxlKTsKKworCQlmcHJpbnRmKGZwLCAi Y2hlY2tpbmcgc2V0dGluZ3Mgb24gcHVibGlzaGVyXG4iKTsKKwkJZmNsb3NlKGZwKTsKKwl9CisJ ZWxzZQorCQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgc2V0dGluZ3Mgb24gcHVibGlzaGVyIik7CiAK IAljb25uID0gY29ubmVjdF9kYXRhYmFzZShkYmluZm9bMF0ucHViY29ubmluZm8sIHRydWUpOwog CkBAIC0xMDI4LDggKzEwNDksMTggQEAgY2hlY2tfc3Vic2NyaWJlcihjb25zdCBzdHJ1Y3QgTG9n aWNhbFJlcEluZm8gKmRiaW5mbykKIAlpbnQJCQltYXhfbHJ3b3JrZXJzOwogCWludAkJCW1heF9y ZXBvcmlnaW5zOwogCWludAkJCW1heF93cHJvY3M7CisJRklMRQkgICAqZnA7CiAKLQlwZ19sb2df aW5mbygiY2hlY2tpbmcgc2V0dGluZ3Mgb24gc3Vic2NyaWJlciIpOworCWlmIChpbnRlcm5hbF9s b2dfZmlsZSAhPSBOVUxMKQorCXsKKwkJaWYgKChmcCA9IGZvcGVuKGludGVybmFsX2xvZ19maWxl LCAiYSIpKSA9PSBOVUxMKQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSB0byBsb2cgZmls ZSBcIiVzXCI6ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOworCisJCWZwcmludGYoZnAsICJjaGVj a2luZyBzZXR0aW5ncyBvbiBzdWJzY3JpYmVyXG4iKTsKKwkJZmNsb3NlKGZwKTsKKwl9CisJZWxz ZQorCQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgc2V0dGluZ3Mgb24gc3Vic2NyaWJlciIpOwogCiAJ Y29ubiA9IGNvbm5lY3RfZGF0YWJhc2UoZGJpbmZvWzBdLnN1YmNvbm5pbmZvLCB0cnVlKTsKIApA QCAtMTU0OCw2ICsxNTc5LDExIEBAIHN0YXJ0X3N0YW5kYnlfc2VydmVyKGNvbnN0IHN0cnVjdCBD cmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0LCBib29sIHJlc3RyaWN0ZWRfCiAJaWYgKHJlc3Ry aWN0X2xvZ2ljYWxfd29ya2VyKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ19jdGxfY21kLCAi IC1vIFwiLWMgbWF4X2xvZ2ljYWxfcmVwbGljYXRpb25fd29ya2Vycz0wXCIiKTsKIAorCWlmIChv cHQtPmxvZ19kaXIgIT0gTlVMTCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHBnX2N0bF9jbWQs ICIgLWwgJXMvcGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIubG9nIiwgb3B0LT5sb2dfZGlyKTsK Kwl9CisKIAlwZ19sb2dfZGVidWcoInBnX2N0bCBjb21tYW5kIGlzOiAlcyIsIHBnX2N0bF9jbWQt PmRhdGEpOwogCXJjID0gc3lzdGVtKHBnX2N0bF9jbWQtPmRhdGEpOwogCXBnX2N0bF9zdGF0dXMo cGdfY3RsX2NtZC0+ZGF0YSwgcmMpOwpAQCAtMjA3MSw2ICsyMTA3LDcgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAJCXsiYWxsIiwgbm9fYXJndW1lbnQsIE5VTEwsICdhJ30sCiAJCXsi ZGF0YWJhc2UiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2QnfSwKIAkJeyJwZ2RhdGEiLCBy ZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ0QnfSwKKwkJeyJsb2dkaXIiLCByZXF1aXJlZF9hcmd1 bWVudCwgTlVMTCwgJ2wnfSwKIAkJeyJkcnktcnVuIiwgbm9fYXJndW1lbnQsIE5VTEwsICduJ30s CiAJCXsic3Vic2NyaWJlci1wb3J0IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdwJ30sCiAJ CXsicHVibGlzaGVyLXNlcnZlciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnUCd9LApAQCAt MjEyOSw2ICsyMTY2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJLyogRGVmYXVs dCBzZXR0aW5ncyAqLwogCXN1YnNjcmliZXJfZGlyID0gTlVMTDsKIAlvcHQuY29uZmlnX2ZpbGUg PSBOVUxMOworCW9wdC5sb2dfZGlyID0gTlVMTDsKIAlvcHQucHViX2Nvbm5pbmZvX3N0ciA9IE5V TEw7CiAJb3B0LnNvY2tldF9kaXIgPSBOVUxMOwogCW9wdC5zdWJfcG9ydCA9IERFRkFVTFRfU1VC X1BPUlQ7CkBAIC0yMTU3LDcgKzIxOTUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK IAogCWdldF9yZXN0cmljdGVkX3Rva2VuKCk7CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhh cmdjLCBhcmd2LCAiYWQ6RDpucDpQOnM6dDpUVTp2IiwKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9u ZyhhcmdjLCBhcmd2LCAiYWQ6RDpsOm5wOlA6czp0OlRVOnYiLAogCQkJCQkJCWxvbmdfb3B0aW9u cywgJm9wdGlvbl9pbmRleCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAtMjE3OCw2ICsy MjE2LDIzIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCXN1YnNjcmliZXJfZGly ID0gcGdfc3RyZHVwKG9wdGFyZyk7CiAJCQkJY2Fub25pY2FsaXplX3BhdGgoc3Vic2NyaWJlcl9k aXIpOwogCQkJCWJyZWFrOworCQkJY2FzZSAnbCc6CisJCQkJb3B0LmxvZ19kaXIgPSBwZ19zdHJk dXAob3B0YXJnKTsKKwkJCQljYW5vbmljYWxpemVfcGF0aChvcHQubG9nX2Rpcik7CisKKwkJCQlp ZiAoc3RhdChvcHQubG9nX2RpciwgJnN0YXRidWYpICE9IDApCisJCQkJeworCQkJCQlpZiAoZXJy bm8gPT0gRU5PRU5UKQorCQkJCQl7CisJCQkJCQlta2RpcihvcHQubG9nX2RpciwgU19JUldYVSk7 CisJCQkJCQlwZ19sb2dfaW5mbygibG9nIGRpcmVjdG9yeSBjcmVhdGVkIik7CisJCQkJCX0KKwkJ CQkJZWxzZQorCQkJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBhY2Nlc3MgZGlyZWN0b3J5IFwiJXNc IjogJW0iLCBvcHQubG9nX2Rpcik7CisJCQkJfQorCisJCQkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBw c3ByaW50ZigiJXMvcGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2ciLCBvcHQubG9nX2Rp cik7CisJCQkJYnJlYWs7CiAJCQljYXNlICduJzoKIAkJCQlkcnlfcnVuID0gdHJ1ZTsKIAkJCQli cmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVz dWJzY3JpYmVyLnBsIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNj cmliZXIucGwKaW5kZXggM2Q2MDg2ZGM0ODkuLjE3MTJhZGMwNDM5IDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbAorKysgYi9zcmMv YmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbApAQCAtMTMsNyAr MTMsOCBAQCBwcm9ncmFtX2hlbHBfb2soJ3BnX2NyZWF0ZXN1YnNjcmliZXInKTsKIHByb2dyYW1f dmVyc2lvbl9vaygncGdfY3JlYXRlc3Vic2NyaWJlcicpOwogcHJvZ3JhbV9vcHRpb25zX2hhbmRs aW5nX29rKCdwZ19jcmVhdGVzdWJzY3JpYmVyJyk7CiAKLW15ICRkYXRhZGlyID0gUG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM6OnRlbXBkaXI7CitteSAkZGF0YWRpciA9IFBvc3RncmVTUUw6OlRlc3Q6 OlV0aWxzOjp0ZW1wZGlyICsgIi9kYXRhZGlyIjsKK215ICRsb2dkaXIgPSBQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dGVtcGRpciArICIvbG9nZGlyIjsKIAogIyBHZW5lcmF0ZSBhIGRhdGFiYXNl IHdpdGggYSBuYW1lIG1hZGUgb2YgYSByYW5nZSBvZiBBU0NJSSBjaGFyYWN0ZXJzLgogIyBFeHRy YWN0ZWQgZnJvbSAwMDJfcGdfdXBncmFkZS5wbC4KQEAgLTUzNywxMCArNTM4LDQzIEBAIG15ICRz eXNpZF9zID0gJG5vZGVfcy0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJJ1NFTEVDVCBzeXN0ZW1f aWRlbnRpZmllciBGUk9NIHBnX2NvbnRyb2xfc3lzdGVtKCknKTsKIGlzbnQoJHN5c2lkX3AsICRz eXNpZF9zLCAnc3lzdGVtIGlkZW50aWZpZXIgd2FzIGNoYW5nZWQnKTsKIAorJG5vZGVfcC0+YmFj a3VwKCdiYWNrdXBfMycpOworCisjIFNldCB1cCBub2RlIFIgYXMgYSBsb2dpY2FsIHJlcGxpY2Eg bm9kZQorbXkgJG5vZGVfciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZV9y Jyk7Ciskbm9kZV9yLT5pbml0X2Zyb21fYmFja3VwKCRub2RlX3AsICdiYWNrdXBfMycsIGhhc19z dHJlYW1pbmcgPT4gMSk7Ciskbm9kZV9yLT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25m JywgcXFbCitwcmltYXJ5X2Nvbm5pbmZvID0gJyRwY29ubnN0ciBkYm5hbWU9cG9zdGdyZXMnCito b3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCitdKTsKKyRub2RlX3ItPnNldF9zdGFuZGJ5X21vZGUo KTsKKworIyBUZXN0IHRoYXQgLS1sb2dkaXIgd29ya3MgZm9yIHBnX2NyZWF0ZXN1YnNjcmliZXIK K2NvbW1hbmRfb2soCisJWworCQkncGdfY3JlYXRlc3Vic2NyaWJlcicsCisJCSctLXZlcmJvc2Un LAorCQknLS1wZ2RhdGEnID0+ICRub2RlX3ItPmRhdGFfZGlyLAorCQknLS1wdWJsaXNoZXItc2Vy dmVyJyA9PiAkcGNvbm5zdHIsCisJCSctLWRhdGFiYXNlJyA9PiAncG9zdGdyZXMnLAorCQknLS1s b2dkaXInID0+ICRsb2dkaXIsCisJXSwKKwknY2hlY2sgZm9yIGxvZyBmaWxlIGNyZWF0aW9uIGZv ciBwZ19jcmVhdGVTdWJzY3JpYmVyJyk7CisKKyMgQ2hlY2sgdGhhdCBhbGwgbG9nIGZpbGVzIHdl cmUgY3JlYXRlZAorb2soIC1mICIkbG9nZGlyL3BnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxv ZyIsCisJJ3BnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyBmaWxlIHdhcyBjcmVhdGVkJyk7 CitvaygtZiAiJGxvZ2Rpci9wZ19jcmVhdGVzdWJzY3JpYmVyX3Jlc2V0d2FsLmxvZyIsCisJJ3Bn X3Jlc2V0d2FsLmxvZyBmaWxlIHdhcyBjcmVhdGVkJyk7CitvayggLWYgIiRsb2dkaXIvcGdfY3Jl YXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2ciLAorCSdwZ19jcmVhdGVzdWJzcmliZXIubG9nIGZp bGUgd2FzIGNyZWF0ZWQnKTsKKwogIyBjbGVhbiB1cAogJG5vZGVfcC0+dGVhcmRvd25fbm9kZTsK ICRub2RlX3MtPnRlYXJkb3duX25vZGU7CiAkbm9kZV90LT50ZWFyZG93bl9ub2RlOwogJG5vZGVf Zi0+dGVhcmRvd25fbm9kZTsKKyRub2RlX3ItPnRlYXJkb3duX25vZGU7CiAKIGRvbmVfdGVzdGlu ZygpOwo= --000000000000a1e1940645eb6a6d--