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 1vYBhw-00FUpn-1b for pgsql-hackers@arkaria.postgresql.org; Tue, 23 Dec 2025 23:22:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vYBhv-002Xzh-1O for pgsql-hackers@arkaria.postgresql.org; Tue, 23 Dec 2025 23:22:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vYBhv-002XzZ-03 for pgsql-hackers@lists.postgresql.org; Tue, 23 Dec 2025 23:22:23 +0000 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vYBht-002PD7-0O for pgsql-hackers@lists.postgresql.org; Tue, 23 Dec 2025 23:22:23 +0000 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-598efcf3a89so5480841e87.1 for ; Tue, 23 Dec 2025 15:22:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766532140; x=1767136940; 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=BubEYKCsKTKREb3UB+vEmyNS2LGBcH/BirQ8agaBV6A=; b=AxSfwk/TEbyriEnmT7XunyBBJ91mrM/1rVB3S6mzqbTqmQq/Xaw/ycGABmRTl7g6nW 1XJGNEZB6K10vnNe5GHHRP5UkXJL4AM7tosFFiQi32d57r26p9EQyfENmLGgK6q51HZs XC86qvYxpOg515phNrX+Kk21gbGpqJ+S/J/VOGrP0rRKSyCIUKxTzNwL3zZfOMvQoR5z USCD3fWBko6kzIpXV8hLMs6lU6aDxLxbkxkVSPSOS8HCsnpMIVmQW2Cqw9xjWU4To6VX F+NgItEabD1Eaq9ppjwDjqKOUrP/EAHncNzNPCPCMfiojjiAM0hTut5eAv3ZrBKMaDYs bMNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766532140; x=1767136940; 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=BubEYKCsKTKREb3UB+vEmyNS2LGBcH/BirQ8agaBV6A=; b=FK+gkCutpD2hHYs2UDfO0IUVvg2Cnb4qcAR7Ike9lnOrFDgs631x4UKsg8sywR8ex3 MeyX+nBgtaj9S7FFc8NGxdlNozhAy0ELL9kMF/avhfOH/QzVjckI2vyrS5RbbRHQ+PQU N1448tYg0cs5Kc153dzv17GWssoi+ULMpMWIvPQO/UgN2HLqmi1djKWKF1Rrsmcfm2QU La1CpRG2QnoNP7REbxETgyhZqzhczKVFKIBjwYHbFmS8U6NCHgxajDT7T/XQf0w8nSsi d6bjTS17Zf7BKbl5Yx/vYURoNwrKN/IQD8+Te+/LJiSBptOk21bRyw0ZqlL/3pezbmar O/lg== X-Forwarded-Encrypted: i=1; AJvYcCXpAWwScTgL/lOrKtfbLscMnCFmG6vzG0ts2Ln3z3cm490kE+mHyFsR4GPu/q4GCDPS2oaiUmZLdlQQ0Htz@lists.postgresql.org X-Gm-Message-State: AOJu0Yz6gm+VSrzbpju0GW+1DcgoQJI7uLQ1GkICZ+ssH9p3yUsK2N77 F1S/ECqBIWsLVxvqNoY1cl4iRTtqpUqpmSODmsU9sZVJembCm0F6fZYqKqztBVzcs4v21CE9KMO +jy66vbmq5l6UwDSTVixyB/prFFSYRt4= X-Gm-Gg: AY/fxX6yzTEudie+t0z2l6sFI8mRzOR7XJ1rGDFl+x77WF/I4kmJLGktB8liiJTy8+V G4yFjHOS2lM6BorNvZjDKwbLPstjnWUygAVs44R6/Rcvfsn9ND4wLPxFCTeXHc+qUow7B6bBRSf mGK7vrHV6zg3zCUnhDR9xOFWFekG+P8epmUxA84BZgjNHs+TRGsvZJuZOuY3Qzcmauq/t3ti1Nm monWcg/gjf589niST4T+HjdpZpGGGFkttYSFg4qu8Pwf24q1wfMfXKzfW4JHxSjO5aYdt5HAY3Y 9Uc= X-Google-Smtp-Source: AGHT+IF3wRPF8vjVq6b/OqTH+BpZL4oycbktyBpTvnc8R065SSN1ZrowdgJG92hBshiFxL3UgKmLQ+30dIVGYcy2qvI= X-Received: by 2002:a2e:a555:0:b0:37f:d614:9ead with SMTP id 38308e7fff4ca-381216b1a1amr49918451fa.34.1766532139671; Tue, 23 Dec 2025 15:22:19 -0800 (PST) MIME-Version: 1.0 References: <48261e54-c4f1-4bde-a4a9-4f3698a6b380@app.fastmail.com> In-Reply-To: From: Gyan Sreejith Date: Tue, 23 Dec 2025 18:22:11 -0500 X-Gm-Features: AQt7F2qsS6PquN7haCxDJmAgumBHU5lKi8KkA6y2FTzQwNqXevz8DPI-dxno7uc Message-ID: Subject: Re: [Proposal] Adding Log File Capability to pg_createsubscriber To: Amit Kapila Cc: Euler Taveira , vignesh C , "kuroda.hayato@fujitsu.com" , "pgsql-hackers@lists.postgresql.org" , Peter Smith Content-Type: multipart/mixed; boundary="000000000000ab8beb0646a6d044" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ab8beb0646a6d044 Content-Type: multipart/alternative; boundary="000000000000ab8be90646a6d042" --000000000000ab8be90646a6d042 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thank you for the feedback everybody. As I read through this email chain, I found differing opinions on how logging should be implemented. This ambiguity leaves me unsure as to which solution(s) to pursue. As of right now, I have attached the git-format patch like Hayato Kuroda recommended (but it does not have any new changes). I am willing to implement whatever solution when we reach a consensus. Thank you for all of the help, Gyan Sreejith On Thu, Dec 18, 2025 at 1:49=E2=80=AFAM Amit Kapila wrote: > On Thu, Dec 18, 2025 at 6:59=E2=80=AFAM Euler Taveira = wrote: > > > > On Wed, Dec 17, 2025, at 7:07 AM, vignesh C wrote: > > > > > > By providing this as an option, users can store the log files outside > > > the data directory, eliminating the need for any additional handling > > > during backups. > > > > > > > Do we really need an option to capture the stdout / stderr output to a > file? I > > doubt it. There is already various ways to capture. psql and pg_upgrade > are the > > only tools that have this option. > > > > pg_ctl also has the -l option. I think any place where long > text/errors can be outputted, a log file is preferred because one > could later parse it to know the exact details. Also, splitting the > log as proposed here or in pg_upgrade helps to navigate the LOG like > is the problem in start/stop of the server or a pub-sub setup? > Similarly the log can be splitted for pub/sub specific information. > There appears to be some useful information like: > > pg_createsubscriber: warning: two_phase option will not be enabled for > replication slots > pg_createsubscriber: detail: Subscriptions will be created with the > two_phase option disabled. Prepared transactions will be replicated at > COMMIT PREPARED. > pg_createsubscriber: hint: You can use the command-line option > --enable-two-phase to enable two_phase. > > I think it will be useful to LOG this separately from the main LOG [1] > (which can contain server specific info as follows) so that users can > consider running pg_createsubscriber with additional options or > changing the subscriber configuration once setup is complete. > > [1]: > [startup] LOG: database system was interrupted; last known up at > 2025-12-17 14:46:07 IST > [startup] LOG: starting backup recovery with redo LSN 0/06000028, > checkpoint LSN 0/06000080, on timeline ID 1 > [startup] LOG: entering standby mode > [startup] LOG: redo starts at 0/06000028 > [startup] LOG: completed backup recovery with redo LSN 0/06000028 and > end LSN 0/06000120 > [startup] LOG: consistent recovery state reached at 0/06000120 > > -- > With Regards, > Amit Kapila. > --000000000000ab8be90646a6d042 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thank you for the feedback everybody. As I read through th= is email chain, I found differing opinions on how logging should be impleme= nted. This ambiguity leaves me unsure as to which solution(s) to pursue. As= of right now, I have attached the git-format patch like=C2=A0Hayato Kuroda= recommended (but it does not have any new changes). I am willing to implem= ent whatever solution when we reach a consensus.=C2=A0

Thank you for= all of the help,
Gyan Sreejith

On Thu, Dec 18, 2025 at 1:49=E2=80=AFAM A= mit Kapila <amit.kapila16@gmail.com> wrote:
On Thu, Dec 18, 2025 at 6:59=E2=80=AFAM Euler Tavei= ra <euler@eulerto= .com> wrote:
>
> On Wed, Dec 17, 2025, at 7:07 AM, vignesh C wrote:
> >
> > By providing this as an option, users can store the log files out= side
> > the data directory, eliminating the need for any additional handl= ing
> > during backups.
> >
>
> Do we really need an option to capture the stdout / stderr output to a= file? I
> doubt it. There is already various ways to capture. psql and pg_upgrad= e are the
> only tools that have this option.
>

pg_ctl also has the -l option. I think any place where long
text/errors can be outputted, a log file is preferred because one
could later parse it to know the exact details. Also, splitting the
log as proposed here or in pg_upgrade helps to navigate the LOG like
is the problem in start/stop of the server or a pub-sub setup?
Similarly the log can be splitted for pub/sub specific information.
There appears to be some useful information like:

pg_createsubscriber: warning: two_phase option will not be enabled for
replication slots
pg_createsubscriber: detail: Subscriptions will be created with the
two_phase option disabled. Prepared transactions will be replicated at
COMMIT PREPARED.
pg_createsubscriber: hint: You can use the command-line option
--enable-two-phase to enable two_phase.

I think it will be useful to LOG this separately from the main LOG [1]
(which can contain server specific info as follows) so that users can
consider running pg_createsubscriber with additional options or
changing the subscriber configuration once setup is complete.

[1]:
[startup] LOG:=C2=A0 database system was interrupted; last known up at
2025-12-17 14:46:07 IST
[startup] LOG:=C2=A0 starting backup recovery with redo LSN 0/06000028,
checkpoint LSN 0/06000080, on timeline ID 1
[startup] LOG:=C2=A0 entering standby mode
[startup] LOG:=C2=A0 redo starts at 0/06000028
[startup] LOG:=C2=A0 completed backup recovery with redo LSN 0/06000028 and=
end LSN 0/06000120
[startup] LOG:=C2=A0 consistent recovery state reached at 0/06000120

--
With Regards,
Amit Kapila.
--000000000000ab8be90646a6d042-- --000000000000ab8beb0646a6d044 Content-Type: application/octet-stream; name="0001-Add-a-new-argument-l-logdir-to-pg_createsubscriber.patch" Content-Disposition: attachment; filename="0001-Add-a-new-argument-l-logdir-to-pg_createsubscriber.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjj7m7qb0 RnJvbSBjZjE4MmM2NWQyYWRkMzcwNDJmODg1MTU1MDhlOTY0Mzk5ODJlZTQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAyMyBEZWMgMjAyNSAxODowNzoxMCAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IEFkZCBhIG5ldyBhcmd1bWVudCAtbCA8bG9nZGlyPiB0byBwZ19jcmVhdGVzdWJzY3JpYmVyLgoK RW5hYmxpbmcgdGhlIG9wdGlvbiB3aWxsIGNyZWF0ZSB0aHJlZSBuZXcgbG9nIGZpbGVzIC0KMS4g bG9nZGlyL3BnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyAgLSBjYXB0dXJlcyBtZXNzYWdl cyByZWxhdGVkIHRvIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIuCjIu IGxvZ2Rpci9wZ19jcmVhdGVzdWJzY3JpYmVyX3Jlc2V0d2FsLmxvZyAtIGNhcHR1cmVzIHRoZSBv dXRwdXQgb2YgcGdfcmVzZXR3YWwuCjMuIGxvZ2Rpci9wZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVy bmFsLmxvZyAtIGNhcHR1cmVzIGludGVybmFsIGRpYWdub3N0aWMgb3V0cHV0IGZyb20gcGdfY3Jl YXRlc3Vic2NyaWJlci4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIu c2dtbCAgICAgfCAyNyArKysrKysrKwogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1 YnNjcmliZXIuYyAgIHwgNjMgKysrKysrKysrKysrKysrKystLQogLi4uL3QvMDQwX3BnX2NyZWF0 ZXN1YnNjcmliZXIucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysrKy0KIDMgZmlsZXMgY2hh bmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbAppbmRleCBiYjljYzcyNTc2Yy4uNWUyNGEyOTc1NjYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCkBAIC0xMzYsNiAr MTM2LDMzIEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICA8L2xpc3RpdGVtPgogICAg IDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PG9wdGlv bj4tbCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGlyZWN0b3J5PC9yZXBsYWNlYWJs ZT48L29wdGlvbj48L3Rlcm0+CisgICAgIDx0ZXJtPjxvcHRpb24+LS1sb2dkaXI9PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRpcmVjdG9yeTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90 ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgdGFyZ2V0IGRp cmVjdG9yeSBpbiB3aGljaCB0aGUgZm9sbG93aW5nIHRocmVlIGxvZyBmaWxlcyB3aWxsIGJlIGNy ZWF0ZWQ6CisgICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICAgPHBhcmE+CisgICAgICAgICAgcGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIubG9nIHdoaWNo IGNhcHR1cmVzIGxvZ3MgcmVsYXRlZCB0byBzdG9wcGluZyBhbmQgc3RhcnRpbmcgdGhlIHN0YW5k Ynkgc2VydmVyLAorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBwZ19jcmVhdGVzdWJzY3Jp YmVyX3Jlc2V0d2FsLmxvZyB3aGljaCBjYXB0dXJlcyB0aGUgb3V0cHV0IG9mIHBnX3Jlc2V0d2Fs LCBhbmQKKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxp c3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgcGdfY3JlYXRlc3Vic2NyaWJlcl9p bnRlcm5hbC5sb2cgd2hpY2ggY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25vc3RpYyBvdXRwdXQgKHZh bGlkYXRpb25zLCBjaGVja3MsIGV0Yy4pCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlz dGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5PgogICAgICA8 dGVybT48b3B0aW9uPi1uPC9vcHRpb24+PC90ZXJtPgogICAgICA8dGVybT48b3B0aW9uPi0tZHJ5 LXJ1bjwvb3B0aW9uPjwvdGVybT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9w Z19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vi c2NyaWJlci5jCmluZGV4IGY1OWMyOTNkODc1Li5lOGQ3YjA3MzBlOSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYworKysgYi9zcmMvYmluL3Bn X2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCkBAIC0zNiw2ICszNiw3IEBACiBzdHJ1 Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMKIHsKIAljaGFyCSAgICpjb25maWdfZmlsZTsJLyog Y29uZmlndXJhdGlvbiBmaWxlICovCisJY2hhcgkgICAqbG9nX2RpcjsJCS8qIGxvZyBkaXJlY3Rv cnkgKi8KIAljaGFyCSAgICpwdWJfY29ubmluZm9fc3RyOwkvKiBwdWJsaXNoZXIgY29ubmVjdGlv biBzdHJpbmcgKi8KIAljaGFyCSAgICpzb2NrZXRfZGlyOwkJLyogZGlyZWN0b3J5IGZvciBVbml4 LWRvbWFpbiBzb2NrZXQsIGlmIGFueSAqLwogCWNoYXIJICAgKnN1Yl9wb3J0OwkJLyogc3Vic2Ny aWJlciBwb3J0IG51bWJlciAqLwpAQCAtMTUwLDYgKzE1MSw4IEBAIHN0YXRpYyBwZ19wcm5nX3N0 YXRlIHBybmdfc3RhdGU7CiBzdGF0aWMgY2hhciAqcGdfY3RsX3BhdGggPSBOVUxMOwogc3RhdGlj IGNoYXIgKnBnX3Jlc2V0d2FsX3BhdGggPSBOVUxMOwogCitzdGF0aWMgY2hhciAqaW50ZXJuYWxf bG9nX2ZpbGUgPSBOVUxMOworCiAvKiBzdGFuZGJ5IC8gc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9y eSAqLwogc3RhdGljIGNoYXIgKnN1YnNjcmliZXJfZGlyID0gTlVMTDsKIApAQCAtMjUxLDYgKzI1 NCw3IEBAIHVzYWdlKHZvaWQpCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhYmFzZXMgYW5kIGRhdGFiYXNlcyB0aGF0IGRvbid0IGFsbG93IGNvbm5lY3Rpb25zXG4i KSk7CiAJcHJpbnRmKF8oIiAgLWQsIC0tZGF0YWJhc2U9REJOQU1FICAgICAgICAgICBkYXRhYmFz ZSBpbiB3aGljaCB0byBjcmVhdGUgYSBzdWJzY3JpcHRpb25cbiIpKTsKIAlwcmludGYoXygiICAt RCwgLS1wZ2RhdGE9REFUQURJUiAgICAgICAgICAgIGxvY2F0aW9uIGZvciB0aGUgc3Vic2NyaWJl ciBkYXRhIGRpcmVjdG9yeVxuIikpOworCXByaW50ZihfKCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIg ICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBuZXcgbG9nIGRpcmVjdG9yeVxuIikpOwogCXBy aW50ZihfKCIgIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICAgICAgICAgZHJ5IHJ1biwganVzdCBz aG93IHdoYXQgd291bGQgYmUgZG9uZVxuIikpOwogCXByaW50ZihfKCIgIC1wLCAtLXN1YnNjcmli ZXItcG9ydD1QT1JUICAgICAgc3Vic2NyaWJlciBwb3J0IG51bWJlciAoZGVmYXVsdCAlcylcbiIp LCBERUZBVUxUX1NVQl9QT1JUKTsKIAlwcmludGYoXygiICAtUCwgLS1wdWJsaXNoZXItc2VydmVy PUNPTk5TVFIgIHB1Ymxpc2hlciBjb25uZWN0aW9uIHN0cmluZ1xuIikpOwpAQCAtNjcwLDYgKzY3 NCw3IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3Jp YmVyT3B0aW9ucyAqb3B0KQogCWJvb2wJCWNyY19vazsKIAlzdHJ1Y3QgdGltZXZhbCB0djsKIAor CWNoYXIJICAgKm91dF9maWxlOwogCWNoYXIJICAgKmNtZF9zdHI7CiAKIAlwZ19sb2dfaW5mbygi bW9kaWZ5aW5nIHN5c3RlbSBpZGVudGlmaWVyIG9mIHN1YnNjcmliZXIiKTsKQEAgLTcwMyw4ICs3 MDgsMTQgQEAgbW9kaWZ5X3N1YnNjcmliZXJfc3lzaWQoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNj cmliZXJPcHRpb25zICpvcHQpCiAJZWxzZQogCQlwZ19sb2dfaW5mbygicnVubmluZyBwZ19yZXNl dHdhbCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCisKKwlpZiAob3B0LT5sb2dfZGlyICE9IE5VTEwp CisJCW91dF9maWxlID0gcHNwcmludGYoIiVzL3BnX2NyZWF0ZXN1YnNjcmliZXJfcmVzZXR3YWwu bG9nIiwgb3B0LT5sb2dfZGlyKTsKKwllbHNlCisJCW91dF9maWxlID0gREVWTlVMTDsKKwogCWNt ZF9zdHIgPSBwc3ByaW50ZigiXCIlc1wiIC1EIFwiJXNcIiA+IFwiJXNcIiIsIHBnX3Jlc2V0d2Fs X3BhdGgsCi0JCQkJCSAgIHN1YnNjcmliZXJfZGlyLCBERVZOVUxMKTsKKwkJCQkJICAgc3Vic2Ny aWJlcl9kaXIsIG91dF9maWxlKTsKIAogCXBnX2xvZ19kZWJ1ZygicGdfcmVzZXR3YWwgY29tbWFu ZCBpczogJXMiLCBjbWRfc3RyKTsKIApAQCAtODkzLDggKzkwNCwxOCBAQCBjaGVja19wdWJsaXNo ZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJaW50CQkJY3VyX3dhbHNl bmRlcnM7CiAJaW50CQkJbWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9uczsKIAljaGFyCSAgICptYXhf c2xvdF93YWxfa2VlcF9zaXplOworCUZJTEUJICAgKmZwOworCisJaWYgKGludGVybmFsX2xvZ19m aWxlICE9IE5VTEwpCisJeworCQlpZiAoKGZwID0gZm9wZW4oaW50ZXJuYWxfbG9nX2ZpbGUsICJh IikpID09IE5VTEwpCisJCQlwZ19mYXRhbCgiY291bGQgbm90IHdyaXRlIHRvIGxvZyBmaWxlIFwi JXNcIjogJW0iLCBpbnRlcm5hbF9sb2dfZmlsZSk7CiAKLQlwZ19sb2dfaW5mbygiY2hlY2tpbmcg c2V0dGluZ3Mgb24gcHVibGlzaGVyIik7CisJCWZwcmludGYoZnAsICJjaGVja2luZyBzZXR0aW5n cyBvbiBwdWJsaXNoZXJcbiIpOworCQlmY2xvc2UoZnApOworCX0KKwllbHNlCisJCXBnX2xvZ19p bmZvKCJjaGVja2luZyBzZXR0aW5ncyBvbiBwdWJsaXNoZXIiKTsKIAogCWNvbm4gPSBjb25uZWN0 X2RhdGFiYXNlKGRiaW5mb1swXS5wdWJjb25uaW5mbywgdHJ1ZSk7CiAKQEAgLTEwMjgsOCArMTA0 OSwxOCBAQCBjaGVja19zdWJzY3JpYmVyKGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJp bmZvKQogCWludAkJCW1heF9scndvcmtlcnM7CiAJaW50CQkJbWF4X3JlcG9yaWdpbnM7CiAJaW50 CQkJbWF4X3dwcm9jczsKKwlGSUxFCSAgICpmcDsKKworCWlmIChpbnRlcm5hbF9sb2dfZmlsZSAh PSBOVUxMKQorCXsKKwkJaWYgKChmcCA9IGZvcGVuKGludGVybmFsX2xvZ19maWxlLCAiYSIpKSA9 PSBOVUxMKQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSB0byBsb2cgZmlsZSBcIiVzXCI6 ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOwogCi0JcGdfbG9nX2luZm8oImNoZWNraW5nIHNldHRp bmdzIG9uIHN1YnNjcmliZXIiKTsKKwkJZnByaW50ZihmcCwgImNoZWNraW5nIHNldHRpbmdzIG9u IHN1YnNjcmliZXJcbiIpOworCQlmY2xvc2UoZnApOworCX0KKwllbHNlCisJCXBnX2xvZ19pbmZv KCJjaGVja2luZyBzZXR0aW5ncyBvbiBzdWJzY3JpYmVyIik7CiAKIAljb25uID0gY29ubmVjdF9k YXRhYmFzZShkYmluZm9bMF0uc3ViY29ubmluZm8sIHRydWUpOwogCkBAIC0xNTQ4LDYgKzE1Nzks MTEgQEAgc3RhcnRfc3RhbmRieV9zZXJ2ZXIoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJP cHRpb25zICpvcHQsIGJvb2wgcmVzdHJpY3RlZF8KIAlpZiAocmVzdHJpY3RfbG9naWNhbF93b3Jr ZXIpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnX2N0bF9jbWQsICIgLW8gXCItYyBtYXhfbG9n aWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzPTBcIiIpOwogCisJaWYgKG9wdC0+bG9nX2RpciAhPSBO VUxMKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocGdfY3RsX2NtZCwgIiAtbCAlcy9wZ19jcmVh dGVzdWJzY3JpYmVyX3NlcnZlci5sb2ciLCBvcHQtPmxvZ19kaXIpOworCX0KKwogCXBnX2xvZ19k ZWJ1ZygicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdfY3RsX2NtZC0+ZGF0YSk7CiAJcmMgPSBz eXN0ZW0ocGdfY3RsX2NtZC0+ZGF0YSk7CiAJcGdfY3RsX3N0YXR1cyhwZ19jdGxfY21kLT5kYXRh LCByYyk7CkBAIC0yMDcxLDYgKzIxMDcsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK IAkJeyJhbGwiLCBub19hcmd1bWVudCwgTlVMTCwgJ2EnfSwKIAkJeyJkYXRhYmFzZSIsIHJlcXVp cmVkX2FyZ3VtZW50LCBOVUxMLCAnZCd9LAogCQl7InBnZGF0YSIsIHJlcXVpcmVkX2FyZ3VtZW50 LCBOVUxMLCAnRCd9LAorCQl7ImxvZ2RpciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbCd9 LAogCQl7ImRyeS1ydW4iLCBub19hcmd1bWVudCwgTlVMTCwgJ24nfSwKIAkJeyJzdWJzY3JpYmVy LXBvcnQiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3AnfSwKIAkJeyJwdWJsaXNoZXItc2Vy dmVyIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdQJ30sCkBAIC0yMTI5LDYgKzIxNjYsNyBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkvKiBEZWZhdWx0IHNldHRpbmdzICovCiAJ c3Vic2NyaWJlcl9kaXIgPSBOVUxMOwogCW9wdC5jb25maWdfZmlsZSA9IE5VTEw7CisJb3B0Lmxv Z19kaXIgPSBOVUxMOwogCW9wdC5wdWJfY29ubmluZm9fc3RyID0gTlVMTDsKIAlvcHQuc29ja2V0 X2RpciA9IE5VTEw7CiAJb3B0LnN1Yl9wb3J0ID0gREVGQVVMVF9TVUJfUE9SVDsKQEAgLTIxNTcs NyArMjE5NSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJZ2V0X3Jlc3RyaWN0 ZWRfdG9rZW4oKTsKIAotCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpE Om5wOlA6czp0OlRVOnYiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJh ZDpEOmw6bnA6UDpzOnQ6VFU6diIsCiAJCQkJCQkJbG9uZ19vcHRpb25zLCAmb3B0aW9uX2luZGV4 KSkgIT0gLTEpCiAJewogCQlzd2l0Y2ggKGMpCkBAIC0yMTc4LDYgKzIyMTYsMjMgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJc3Vic2NyaWJlcl9kaXIgPSBwZ19zdHJkdXAob3B0 YXJnKTsKIAkJCQljYW5vbmljYWxpemVfcGF0aChzdWJzY3JpYmVyX2Rpcik7CiAJCQkJYnJlYWs7 CisJCQljYXNlICdsJzoKKwkJCQlvcHQubG9nX2RpciA9IHBnX3N0cmR1cChvcHRhcmcpOworCQkJ CWNhbm9uaWNhbGl6ZV9wYXRoKG9wdC5sb2dfZGlyKTsKKworCQkJCWlmIChzdGF0KG9wdC5sb2df ZGlyLCAmc3RhdGJ1ZikgIT0gMCkKKwkJCQl7CisJCQkJCWlmIChlcnJubyA9PSBFTk9FTlQpCisJ CQkJCXsKKwkJCQkJCW1rZGlyKG9wdC5sb2dfZGlyLCBTX0lSV1hVKTsKKwkJCQkJCXBnX2xvZ19p bmZvKCJsb2cgZGlyZWN0b3J5IGNyZWF0ZWQiKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQlw Z19mYXRhbCgiY291bGQgbm90IGFjY2VzcyBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIG9wdC5sb2df ZGlyKTsKKwkJCQl9CisKKwkJCQlpbnRlcm5hbF9sb2dfZmlsZSA9IHBzcHJpbnRmKCIlcy9wZ19j cmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZyIsIG9wdC5sb2dfZGlyKTsKKwkJCQlicmVhazsK IAkJCWNhc2UgJ24nOgogCQkJCWRyeV9ydW4gPSB0cnVlOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwgYi9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbAppbmRleCAz ZDYwODZkYzQ4OS4uMTcxMmFkYzA0MzkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCkBAIC0xMyw3ICsxMyw4IEBAIHByb2dyYW1f aGVscF9vaygncGdfY3JlYXRlc3Vic2NyaWJlcicpOwogcHJvZ3JhbV92ZXJzaW9uX29rKCdwZ19j cmVhdGVzdWJzY3JpYmVyJyk7CiBwcm9ncmFtX29wdGlvbnNfaGFuZGxpbmdfb2soJ3BnX2NyZWF0 ZXN1YnNjcmliZXInKTsKIAotbXkgJGRhdGFkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6 dGVtcGRpcjsKK215ICRkYXRhZGlyID0gUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRlbXBkaXIg KyAiL2RhdGFkaXIiOworbXkgJGxvZ2RpciA9IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1w ZGlyICsgIi9sb2dkaXIiOwogCiAjIEdlbmVyYXRlIGEgZGF0YWJhc2Ugd2l0aCBhIG5hbWUgbWFk ZSBvZiBhIHJhbmdlIG9mIEFTQ0lJIGNoYXJhY3RlcnMuCiAjIEV4dHJhY3RlZCBmcm9tIDAwMl9w Z191cGdyYWRlLnBsLgpAQCAtNTM3LDEwICs1MzgsNDMgQEAgbXkgJHN5c2lkX3MgPSAkbm9kZV9z LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAknU0VMRUNUIHN5c3RlbV9pZGVudGlmaWVyIEZST00g cGdfY29udHJvbF9zeXN0ZW0oKScpOwogaXNudCgkc3lzaWRfcCwgJHN5c2lkX3MsICdzeXN0ZW0g aWRlbnRpZmllciB3YXMgY2hhbmdlZCcpOwogCiskbm9kZV9wLT5iYWNrdXAoJ2JhY2t1cF8zJyk7 CisKKyMgU2V0IHVwIG5vZGUgUiBhcyBhIGxvZ2ljYWwgcmVwbGljYSBub2RlCitteSAkbm9kZV9y ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlX3InKTsKKyRub2RlX3ItPmlu aXRfZnJvbV9iYWNrdXAoJG5vZGVfcCwgJ2JhY2t1cF8zJywgaGFzX3N0cmVhbWluZyA9PiAxKTsK KyRub2RlX3ItPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcVsKK3ByaW1hcnlf Y29ubmluZm8gPSAnJHBjb25uc3RyIGRibmFtZT1wb3N0Z3JlcycKK2hvdF9zdGFuZGJ5X2ZlZWRi YWNrID0gb24KK10pOworJG5vZGVfci0+c2V0X3N0YW5kYnlfbW9kZSgpOworCisjIFRlc3QgdGhh dCAtLWxvZ2RpciB3b3JrcyBmb3IgcGdfY3JlYXRlc3Vic2NyaWJlcgorY29tbWFuZF9vaygKKwlb CisJCSdwZ19jcmVhdGVzdWJzY3JpYmVyJywKKwkJJy0tdmVyYm9zZScsCisJCSctLXBnZGF0YScg PT4gJG5vZGVfci0+ZGF0YV9kaXIsCisJCSctLXB1Ymxpc2hlci1zZXJ2ZXInID0+ICRwY29ubnN0 ciwKKwkJJy0tZGF0YWJhc2UnID0+ICdwb3N0Z3JlcycsCisJCSctLWxvZ2RpcicgPT4gJGxvZ2Rp ciwKKwldLAorCSdjaGVjayBmb3IgbG9nIGZpbGUgY3JlYXRpb24gZm9yIHBnX2NyZWF0ZVN1YnNj cmliZXInKTsKKworIyBDaGVjayB0aGF0IGFsbCBsb2cgZmlsZXMgd2VyZSBjcmVhdGVkCitvaygg LWYgIiRsb2dkaXIvcGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIubG9nIiwKKwkncGdfY3JlYXRl c3Vic2NyaWJlcl9zZXJ2ZXIubG9nIGZpbGUgd2FzIGNyZWF0ZWQnKTsKK29rKC1mICIkbG9nZGly L3BnX2NyZWF0ZXN1YnNjcmliZXJfcmVzZXR3YWwubG9nIiwKKwkncGdfcmVzZXR3YWwubG9nIGZp bGUgd2FzIGNyZWF0ZWQnKTsKK29rKCAtZiAiJGxvZ2Rpci9wZ19jcmVhdGVzdWJzY3JpYmVyX2lu dGVybmFsLmxvZyIsCisJJ3BnX2NyZWF0ZXN1YnNyaWJlci5sb2cgZmlsZSB3YXMgY3JlYXRlZCcp OworCiAjIGNsZWFuIHVwCiAkbm9kZV9wLT50ZWFyZG93bl9ub2RlOwogJG5vZGVfcy0+dGVhcmRv d25fbm9kZTsKICRub2RlX3QtPnRlYXJkb3duX25vZGU7CiAkbm9kZV9mLT50ZWFyZG93bl9ub2Rl OworJG5vZGVfci0+dGVhcmRvd25fbm9kZTsKIAogZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjQzLjAK Cg== --000000000000ab8beb0646a6d044--