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 1whMeG-000B3j-1O for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 07:24:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whMeD-005r5c-33 for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 07:24:46 +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 1whMeD-005r5D-13 for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 07:24:46 +0000 Received: from mail-yx1-xb134.google.com ([2607:f8b0:4864:20::b134]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whMeB-000000007FG-3Dir for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 07:24:45 +0000 Received: by mail-yx1-xb134.google.com with SMTP id 956f58d0204a3-664cb440f9eso439456d50.1 for ; Wed, 08 Jul 2026 00:24:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783495483; cv=none; d=google.com; s=arc-20260327; b=n3bCK1dc3gXUX+J/Bud2J1aMo9xutp9xHAN6B8WHxjTLkXgDRNGe7PFPGbZmDKl9Xj mJZIv0yOQRxlj4pJJqeiG6/eHht74IGoNUUsx4Iyze2wSqIDRaCHXTctFAPbB02QCslQ WlGoDyF95cDH6DUo8zgA+cNXRvlwT0XokxGkNc3FXpzoc0piuYNFKDByYC9lNUUibo2t WKOwfwaoUNJXmsOo18fiQ0X/wD5etON8CcLjmpax8Ay+eluSkrXPQmAZgfUgrKmgpRMk OdQPimXY3/o51U5obGN2aupau4YWoauCh3sduM5VgzrHoxxAvonZS8cRlc2mUhS+G2tG v5uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=RVvTme9a9spbnG3ZJv2V8cQKavzwafFCX3Rnpef5juY=; fh=kfuw7BucMBtTxlvRg8xYYIt3dkKQV/KGT+vMXnnsmhM=; b=TG2X5Ovj5mMPsxpO7XXdmm0HUWXKXhnoWutogC4SGJNc00bKtnwoF6cTPIR8CfPres k3Y9ROpVccu5ehc1+kOH0jP+bJ97ga9TxkyYMWQzV2EjQN2X6iSAbuZs2Jow8lhPX3ju gQaxj02IC6W546gyPyonFYL2Ujqrq10JQUuTeM2yX7vHqZODeB/VxJxJyw1wye6BBUo7 dfQdnHinsL+chmubRv0GXAXEdSAWf4xdDbCJy0YrCqHXqI/AJgc8sO8E80/XEiFpWE5b wMZ7MEp7PU9oFxi+ZDhMdmg3RRbVuD3NoTcvX4jjhOvq3NmLN3YyTQlM7GydDYUR+Udm KMZA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783495483; x=1784100283; 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=RVvTme9a9spbnG3ZJv2V8cQKavzwafFCX3Rnpef5juY=; b=GrXCz+O5vAaLWMoqJvBrrtELMivfsUDiR6urkK00+vurPw/qJsEAB+p5wdfXQ+SPAa co6hwMic1krjSrRLtxaY4B87OGHl9tvsa7xdwG59VJAManQbvSVTku6cvJiYjLP+9eWp dqp78uoUwEEHC4QA4h3cvDSqM61D3sLyzlkJkmAH2cEJDisoMUVv0p54teJAE6JFN7H4 946wKKqGrqkLaXdVhqEpRIKqOS+7SYSDi9nfLNhZPKAtXzhSVoRNdDHb5aj3KsV1zb8m rwH4M68pkFJbeMv0mL2exOHWAbBFzz/5zQyT07aLrbPk5+3H/TAbZt/N+oHNAx4CLODY cmmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783495483; x=1784100283; 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=RVvTme9a9spbnG3ZJv2V8cQKavzwafFCX3Rnpef5juY=; b=cCgyFNA+0LYxMR0YatvMk/XiKjITdO93opeL26I6kxKADZoNvKP8r33BWz1AQ8LYks cgg220c96oBdGlnBxVt0vxpsRLkKL9XP0/Q1Tgnri0d1kV/YNCjAfJ6rVElPbR+/au0U 7UoXx90VNtfyGRLt+1oxlBb9C4gL/T1DDBmuoCldUqJUZgQVUF63acK+Qx9xzRuDX7Oa xaisbDPva19aicr45EqSCWUfckb8rUEsdIPCYqbzNQ4UClVrxIOkKEovHXnmKAvnEUET PsJhlxl1cw80QYEiP//yYYcsnpq/O9cJ/V7GOs/VbSu77n2GELgD8/zRePZATR0hrOQD TyOA== X-Forwarded-Encrypted: i=1; AHgh+Rp7XoQSb9NZSNEBWikmQYsXA0bFTlhMJSipCzPfKc7OB/0D40tuWAWQew3oDfFpKcu/qCO6MeNJZCAkTz0s@lists.postgresql.org X-Gm-Message-State: AOJu0YwAC2bmmaCFfJd/cfs3P5IIFAh3jRoWDrJ9z0zf0zIG/Bmtkhqa MlmWoSyA9b8E9ap4yQ4afyEqNX98UNqOTZXLoUdmgn+oZyJ399ANYfb5HudO9TlnJ1sXp24xSRw W8W+PsMcmuUevmETkejelnsruwZT40Vw= X-Gm-Gg: AfdE7ckYm+Bx4BwJaVXj7vnC4pO/OkzUnVglAlAZ7eDx7DpM5chIzLoXhnFnN9zcqcZ o7x7MNSLKowmZi4SmOUugGf9guXGek9djs64uGxf8HH1wpKAD27IdXI8RF6YjyiOkh/WKaBLjrN 8IAzWiZRGNI0/flxh4hfOA5SYI9rX7cDLpD9XIo1Jor4yfksAO/O65Ss/rxrZl3hq0u12VPGPxP Lz83aU0D1HSLW/0ZLcdPqhhdWp6rNmKQw6vcZmFNM8DgHAkgVEpIBiqv7Rpp/6G57FazluMAEBE /IYS76pA7Z+D38kmDbmy+rfpWjOE0F8= X-Received: by 2002:a53:ac90:0:b0:667:a285:7624 with SMTP id 956f58d0204a3-667a2858153mr485958d50.35.1783495483022; Wed, 08 Jul 2026 00:24:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Wed, 8 Jul 2026 12:54:31 +0530 X-Gm-Features: AVVi8CfHYR34IqG6os88VeNRgPOCCfcoiuc09ruQTD4t-WdNAIrwMXUhzISXPSo Message-ID: Subject: Re: Include sequences in publications created by pg_createsubscriber To: Peter Smith Cc: Shlok Kyal , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000b9d00706561466a4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b9d00706561466a4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 7 Jul 2026 at 11:50, Peter Smith wrote: > > Hi Shlok. > > Although I'd previously said "v6 LGTM", I decided to feed the v7 patch > through my AI to see what else it might come up with. > > It got a bit pedantic, but OTOH the suggestions really *do* seem like > improvements to me, so I feel obliged to pass them on. > > =3D=3D=3D=3D=3D=3D > doc/src/sgml/ref/pg_createsubscriber.sgml > > 1. > + replica from a physical standby server. By default, > + pg_createsubscriber configures > + logical replication by > + automatically creating internal publication and subscription objects.= In > + this mode, a publication and subscription are created for each databa= se, and > + the publications include all tables and sequences in their respective > + databases. > > "In this mode" is vague =E2=80=94 consider "When using internally generat= ed > publications," to be consistent with the terminology used later in the > same paragraph. Modified > ~~~ > > 2. > + which ensures each table is brought up to a synchronized state. When = using > + internally generated publications, they automatically include all seq= uences > + in the database; however, their values are not automatically synchron= ized. > > "they" is ambiguous =E2=80=94 could refer to publications or sequences. > Suggest: "however, sequence values are not automatically > synchronized." Modified > ~~~ > > 3. > + For user-specified publications, sequences are only replicated if the= y were > + explicitly added to those publications prior to running the tool, and= like > + the default mode, their values will require manual synchronization af= ter the > + upgrade. > > "their values will require manual synchronization" =E2=80=94 "will requir= e" is > slightly awkward. Suggest "their values must be manually synchronized > after the upgrade." > > Also "like the default mode" is a slightly informal comparison =E2=80=94 > consider "as with the default mode." Modified > ~~~ > > 4. > + > + To synchronize sequence values, run > + > + ALTER SUBSCRIPTION ... REFRESH SEQUENCES. > + > ``` > This is quite abrupt as a standalone paragraph. It doesn't say *when* > to run it or *which* subscription to run it against. Something like: > > "To synchronize sequence values after the upgrade, run `ALTER > SUBSCRIPTION ... REFRESH SEQUENCES` on each subscription at the target > server." We haven't stated anywhere that pg_createsubscriber is intended to be used only for upgrades, so I don't think we should mention upgrades here. I've incorporated the rest of the suggested changess > ~~~ > > 5. > + specified, pg_createsubscriber creates = a > + publication using linkend=3D"sql-createpublication-params-for-all-tables"> > + FOR ALL TABLES and > + > + ALL SEQUENCES. Otherwise, it uses the > + user-specified publication, which includes the objects defined by = that > + publication. If the option is not > + specified, the publication has the following name pattern: > > SUGGESTION avoid repeating --publication by rearranging like below: > > Create a publication and replication slot for each specified database > on the source server. If the option is > specified, the user-specified publication is used, which includes the > objects defined by that publication. Otherwise, > pg_createsubscriber creates a publication > using > FOR ALL TABLES and linkend=3D"sql-createpublication-params-for-all-sequences"> ALL > SEQUENCES. This generated publication has the > following name pattern: > pg_createsubscriber_%u_%x > (parameter: > database oid, random int). Modified > =3D=3D=3D=3D=3D=3D > src/bin/pg_basebackup/t/040_pg_createsubscriber.pl > > 6. > +$result =3D $node_p->safe_psql($db2, > + "SELECT puballtables, puballsequences FROM pg_publication"); > +is($result, qq(t|t), > + "publication is created with both all-tables and all-sequences enabled"= ); > > 6a. The query has no WHERE clause =E2=80=94 if there are multiple publica= tions > it could return multiple rows and give a misleading result. Should > filter by publication name, e.g. WHERE pubname LIKE > 'pg_createsubscriber_%'. The verification done here was not correct, I have changed it to verify the command from the log contents. > ~ > > 6b. Should there also be a test that verifies a user-specified > publication is not modified (i.e. does not have ALL SEQUENCES added) > when --publication is specified? That would give better coverage of > the two code paths. I felt this is not required as we are not doing any ALTER PUBLICATION. > =3D=3D=3D=3D=3D=3D > GENERAL > > 7. > The commit message says "Administrators can then run `ALTER > SUBSCRIPTION ... REFRESH SEQUENCES` after the upgrade" but the > documentation does not make this prominent enough. Given this is the > key action administrators need to take, it deserves a more prominent > note =E2=80=94 perhaps a `` or `` block rather than a brief > standalone paragraph. > > (I think this is related with point 4) I don't think this needs to be mentioned in the pg_createsubscriber documentation. The behavior of sequence synchronization, including the need to run ALTER SUBSCRIPTION ... REFRESH SEQUENCES is more appropriately documented with the REFRESH SEQUENCES command and the logical replication documentation. Since we have given a link to REFRESH SEQUENCES, it should be enough. > ~~~ > > 8. > There is no mention anywhere in the patch of what happens to sequence > values if the administrator forgets to run REFRESH SEQUENCES before > promoting the subscriber. A note about the risk (duplicate key > violations, incorrect nextval results) would make the documentation > more complete and help administrators understand why this step > matters. > > (Again, I think this is related with point 4) Same reason as above, it need not be mentioned here. Thanks for the comments, the attached v8 version patch has the changes for the same. This patch also includes the changes to handle Ashutosh's comment from [1] with appropriate rewording. [1] - https://www.postgresql.org/message-id/CAE9k0P%3D9rReCa4CMTWfaYe3ZhE8P= qrNCRBnv6QcVPLQm_%2BRFQw%40mail.gmail.com Regards, Vignesh --000000000000b9d00706561466a4 Content-Type: application/x-patch; name="v8-0001-Include-sequences-in-publications-created-by-pg_c.patch" Content-Disposition: attachment; filename="v8-0001-Include-sequences-in-publications-created-by-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrbr0qtg0 RnJvbSAzM2IyNzhkM2EzMjU3ZGVjYTg4Yjc0YjU1ZTE0YjgyMmUzZDEwZGIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMTkgSnVuIDIwMjYgMTk6MTQ6MjcgKzA1MzAKU3ViamVjdDogW1BBVENIIHY4XSBJbmNs dWRlIHNlcXVlbmNlcyBpbiBwdWJsaWNhdGlvbnMgY3JlYXRlZCBieQogcGdfY3JlYXRlc3Vic2Ny aWJlcgoKcGdfY3JlYXRlc3Vic2NyaWJlciBjcmVhdGVzIGEgcHVibGljYXRpb24gb24gdGhlIHB1 Ymxpc2hlciB0byBlc3RhYmxpc2gKbG9naWNhbCByZXBsaWNhdGlvbiBiZXR3ZWVuIHRoZSBvcmln aW5hbCBwcmltYXJ5IGFuZCB0aGUgY29udmVydGVkCnN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhl IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBGT1IgQUxMIFRBQkxFUywKd2hpY2ggZW5zdXJl cyB0aGF0IHRhYmxlIGRhdGEgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBkdXJpbmcgdGhlIHVwZ3Jh ZGUKcHJvY2Vzcy4KCkhvd2V2ZXIsIHNlcXVlbmNlIHN0YXRlIGlzIG5vdCByZXBsaWNhdGVkIGFz IHBhcnQgb2YgdGhpcyB3b3JrZmxvdy4KClJlY2VudCBhZGRpdGlvbnMgdG8gbG9naWNhbCByZXBs aWNhdGlvbiBpbnRyb2R1Y2VkIHN1cHBvcnQgZm9yIHB1Ymxpc2hpbmcKYWxsIHNlcXVlbmNlcyBh bmQgc3luY2hyb25pemluZyBzZXF1ZW5jZSBzdGF0ZSB0aHJvdWdoIHN1YnNjcmlwdGlvbgpyZWZy ZXNoLiBCeSBjcmVhdGluZyBwdWJsaWNhdGlvbnMgd2l0aCBGT1IgQUxMIFRBQkxFUywgQUxMIFNF UVVFTkNFUywKcGdfY3JlYXRlc3Vic2NyaWJlciBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlc2Ug Y2FwYWJpbGl0aWVzIGFuZCBhbGxvdwpzZXF1ZW5jZSBzdGF0ZSB0byBiZSBzeW5jaHJvbml6ZWQg YmVmb3JlIHRoZSB1cGdyYWRlZCBub2RlIGlzIHByb21vdGVkLgoKVGhpcyBjaGFuZ2UgbW9kaWZp ZXMgcGdfY3JlYXRlc3Vic2NyaWJlciB0byBpbmNsdWRlIEFMTCBTRVFVRU5DRVMgaW4gdGhlCnB1 YmxpY2F0aW9uIGl0IGNyZWF0ZXMuIEFkbWluaXN0cmF0b3JzIGNhbiB0aGVuIHJ1biBBTFRFUiBT VUJTQ1JJUFRJT04KLi4uIFJFRlJFU0ggU0VRVUVOQ0VTIGFmdGVyIHRoZSB1cGdyYWRlIHRvIHN5 bmNocm9uaXplIHNlcXVlbmNlIHN0YXRlLAplbnN1cmluZyBhIG1vcmUgY29tcGxldGUgYW5kIHJl bGlhYmxlIHVwZ3JhZGUgd29ya2Zsb3cuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVz dWJzY3JpYmVyLnNnbWwgICAgIHwgNTkgKysrKysrKysrKysrLS0tLS0tLQogc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwgIDQgKy0KIC4uLi90LzA0MF9wZ19j cmVhdGVzdWJzY3JpYmVyLnBsICAgICAgICAgICAgICB8IDIyICsrKysrKy0KIDMgZmlsZXMgY2hh bmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbAppbmRleCAzYjMwMzhkMTg5MS4uM2I3ZWJiMDFlYmYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCkBAIC00OCwxMSAr NDgsMTYgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICAgPHBhcmE+CiAgICA8YXBwbGlj YXRpb24+cGdfY3JlYXRlc3Vic2NyaWJlcjwvYXBwbGljYXRpb24+IGNyZWF0ZXMgYSBuZXcgbG9n aWNhbAotICAgcmVwbGljYSBmcm9tIGEgcGh5c2ljYWwgc3RhbmRieSBzZXJ2ZXIuICBBbGwgdGFi bGVzIGluIHRoZSBzcGVjaWZpZWQKLSAgIGRhdGFiYXNlIGFyZSBpbmNsdWRlZCBpbiB0aGUgPGxp bmsgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbiI+bG9naWNhbAotICAgcmVwbGljYXRpb248 L2xpbms+IHNldHVwLiAgQSBwYWlyIG9mCi0gICBwdWJsaWNhdGlvbiBhbmQgc3Vic2NyaXB0aW9u IG9iamVjdHMgYXJlIGNyZWF0ZWQgZm9yIGVhY2ggZGF0YWJhc2UuICBJdAotICAgbXVzdCBiZSBy dW4gYXQgdGhlIHRhcmdldCBzZXJ2ZXIuCisgICByZXBsaWNhIGZyb20gYSBwaHlzaWNhbCBzdGFu ZGJ5IHNlcnZlci4gIEJ5IGRlZmF1bHQsCisgICA8YXBwbGljYXRpb24+cGdfY3JlYXRlc3Vic2Ny aWJlcjwvYXBwbGljYXRpb24+IGNvbmZpZ3VyZXMKKyAgIDxsaW5rIGxpbmtlbmQ9ImxvZ2ljYWwt cmVwbGljYXRpb24iPmxvZ2ljYWwgcmVwbGljYXRpb248L2xpbms+IGJ5CisgICBhdXRvbWF0aWNh bGx5IGNyZWF0aW5nIGludGVybmFsIHB1YmxpY2F0aW9uIGFuZCBzdWJzY3JpcHRpb24gb2JqZWN0 cy4gV2hlbgorICAgdXNpbmcgaW50ZXJuYWxseSBnZW5lcmF0ZWQgcHVibGljYXRpb25zLCBhIHB1 YmxpY2F0aW9uIGFuZCBzdWJzY3JpcHRpb24gYXJlCisgICBjcmVhdGVkIGZvciBlYWNoIGRhdGFi YXNlLCBhbmQgdGhlIHB1YmxpY2F0aW9ucyBpbmNsdWRlIGFsbCB0YWJsZXMgYW5kCisgICBzZXF1 ZW5jZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBkYXRhYmFzZXMuIFdoZW4gdXNlci1zcGVjaWZpZWQg cHVibGljYXRpb25zCisgICBhcmUgdXNlZCwgdGhlIHN1YnNjcmlwdGlvbnMgcmVwbGljYXRlIG9u bHkgdGhlIG9iamVjdHMgaW5jbHVkZWQgaW4gdGhvc2UKKyAgIHB1YmxpY2F0aW9ucy4gPGFwcGxp Y2F0aW9uPnBnX2NyZWF0ZXN1YnNjcmliZXI8L2FwcGxpY2F0aW9uPiBtdXN0IGJlIHJ1biBhdAor ICAgdGhlIHRhcmdldCBzZXJ2ZXIuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTYxLDcgKzY2 LDEzIEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgcmVwbGljYXRpb24gc2V0dXAgYW5k IDxhcHBsaWNhdGlvbj5wZ19jcmVhdGVzdWJzY3JpYmVyPC9hcHBsaWNhdGlvbj4gaXMgaG93CiAg ICB0aGUgZGF0YSBzeW5jaHJvbml6YXRpb24gaXMgZG9uZS4gPGFwcGxpY2F0aW9uPnBnX2NyZWF0 ZXN1YnNjcmliZXI8L2FwcGxpY2F0aW9uPgogICAgZG9lcyBub3QgY29weSB0aGUgaW5pdGlhbCB0 YWJsZSBkYXRhLiBJdCBkb2VzIG9ubHkgdGhlIHN5bmNocm9uaXphdGlvbiBwaGFzZSwKLSAgIHdo aWNoIGVuc3VyZXMgZWFjaCB0YWJsZSBpcyBicm91Z2h0IHVwIHRvIGEgc3luY2hyb25pemVkIHN0 YXRlLgorICAgd2hpY2ggZW5zdXJlcyBlYWNoIHRhYmxlIGlzIGJyb3VnaHQgdXAgdG8gYSBzeW5j aHJvbml6ZWQgc3RhdGUuIFdoZW4gdXNpbmcKKyAgIGludGVybmFsbHkgZ2VuZXJhdGVkIHB1Ymxp Y2F0aW9ucywgdGhlIHB1YmxpY2F0aW9ucyBhdXRvbWF0aWNhbGx5IGluY2x1ZGUKKyAgIGFsbCBz ZXF1ZW5jZXMgaW4gdGhlIGRhdGFiYXNlOyBob3dldmVyLCBzZXF1ZW5jZSB2YWx1ZXMgYXJlIG5v dAorICAgYXV0b21hdGljYWxseSBzeW5jaHJvbml6ZWQuIEZvciB1c2VyLXNwZWNpZmllZCBwdWJs aWNhdGlvbnMsIHNlcXVlbmNlcyBhcmUKKyAgIG9ubHkgcmVwbGljYXRlZCBpZiB0aGV5IHdlcmUg ZXhwbGljaXRseSBhZGRlZCB0byB0aG9zZSBwdWJsaWNhdGlvbnMgcHJpb3IgdG8KKyAgIHJ1bm5p bmcgdGhlIHRvb2wsIGFuZCBhcyB3aXRoIHRoZSBkZWZhdWx0IG1vZGUsIHNlcXVlbmNlIHZhbHVl cyBtdXN0IGJlCisgICBtYW51YWxseSBzeW5jaHJvbml6ZWQgd2hlbiBuZWVkZWQuCiAgIDwvcGFy YT4KIAogICA8cGFyYT4KQEAgLTc1LDcgKzg2LDEzIEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgogICAgc3luY2hyb25pemF0aW9uLiAgRm9yIGRldGFpbHMsIHNlZSB0aGUgPGNvbW1hbmQ+Q1JF QVRFIFNVQlNDUklQVElPTjwvY29tbWFuZD4KICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVz dWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29weS1kYXRhIj4KICAgIDxsaXRlcmFsPmNvcHlfZGF0 YTwvbGl0ZXJhbD48L2xpbms+IG9wdGlvbi4KKyAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgVG8g c3luY2hyb25pemUgc2VxdWVuY2UgdmFsdWVzLCBydW4KKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1h bHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtcmVmcmVzaC1zZXF1ZW5jZXMiPgorICAgPGNvbW1hbmQ+ QUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFNFUVVFTkNFUzwvY29tbWFuZD48L2xpbms+ IG9uIGVhY2gKKyAgIHN1YnNjcmlwdGlvbiBhdCB0aGUgdGFyZ2V0IHNlcnZlci4KICAgPC9wYXJh PgogIDwvcmVmc2VjdDE+CiAKQEAgLTI3NSwxMCArMjkyLDEwIEBAIFBvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICA8 bGl0ZXJhbD5wdWJsaWNhdGlvbnM8L2xpdGVyYWw+OgotICAgICAgICAgIFRoZSA8bGl0ZXJhbD5G T1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gcHVibGljYXRpb25zIGVzdGFibGlzaGVkIGZvciB0aGlz Ci0gICAgICAgICAgc3Vic2NyaWJlciBhcmUgYWx3YXlzIGRyb3BwZWQ7IHNwZWNpZnlpbmcgdGhp cyBvYmplY3QgdHlwZSBjYXVzZXMgYWxsCi0gICAgICAgICAgb3RoZXIgcHVibGljYXRpb25zIHJl cGxpY2F0ZWQgZnJvbSB0aGUgc291cmNlIHNlcnZlciB0byBiZSBkcm9wcGVkIGFzCi0gICAgICAg ICAgd2VsbC4KKyAgICAgICAgICBUaGUgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVMsIEFMTCBTRVFV RU5DRVM8L2xpdGVyYWw+IHB1YmxpY2F0aW9ucworICAgICAgICAgIGVzdGFibGlzaGVkIGZvciB0 aGlzIHN1YnNjcmliZXIgYXJlIGFsd2F5cyBkcm9wcGVkOyBzcGVjaWZ5aW5nIHRoaXMKKyAgICAg ICAgICBvYmplY3QgdHlwZSBjYXVzZXMgYWxsIG90aGVyIHB1YmxpY2F0aW9ucyByZXBsaWNhdGVk IGZyb20gdGhlIHNvdXJjZQorICAgICAgICAgIHNlcnZlciB0byBiZSBkcm9wcGVkIGFzIHdlbGwu CiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXpl ZGxpc3Q+CkBAIC0zMjMsNyArMzQwLDggQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAg ICAgSWYgYSBzcGVjaWZpZWQgcHVibGljYXRpb24gYWxyZWFkeSBleGlzdHMgb24gdGhlIHB1Ymxp c2hlciwgaXQgaXMgcmV1c2VkLgogICAgICAgIEl0IGlzIHVzZWZ1bCB0byBwYXJ0aWFsbHkgcmVw bGljYXRlIHRoZSBkYXRhYmFzZSBpZiB0aGUgc3BlY2lmaWVkCiAgICAgICAgcHVibGljYXRpb24g aW5jbHVkZXMgYSBsaXN0IG9mIHRhYmxlcy4gSWYgdGhlIHB1YmxpY2F0aW9uIGRvZXMgbm90IGV4 aXN0LAotICAgICAgIGl0IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aXRoIDxsaXRlcmFsPkZP UiBBTEwgVEFCTEVTPC9saXRlcmFsPi4gVXNlCisgICAgICAgaXQgaXMgYXV0b21hdGljYWxseSBj cmVhdGVkIHdpdGgKKyAgICAgICA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNF UzwvbGl0ZXJhbD4uIFVzZQogICAgICAgIDxvcHRpb24+LS1kcnktcnVuPC9vcHRpb24+IG9wdGlv biB0byBwcmV2aWV3IHdoaWNoIHB1YmxpY2F0aW9ucyB3aWxsIGJlCiAgICAgICAgcmV1c2VkIGFu ZCB3aGljaCB3aWxsIGJlIGNyZWF0ZWQuCiAgICAgICA8L3BhcmE+CkBAIC01MzEsMTUgKzU0OSwx NiBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogICAgIDxzdGVwPgogICAgICA8cGFyYT4K LSAgICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIGFuZCByZXBsaWNhdGlvbiBzbG90IGZvciBlYWNo IHNwZWNpZmllZCBkYXRhYmFzZSBvbgotICAgICAgdGhlIHNvdXJjZSBzZXJ2ZXIuICBFYWNoIHB1 YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdXNpbmcgPGxpbmsKLSAgICAgIGxpbmtlbmQ9InNxbC1jcmVh dGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWFsbC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwKLSAg ICAgIFRBQkxFUzwvbGl0ZXJhbD48L2xpbms+LiAgSWYgdGhlIDxvcHRpb24+LS1wdWJsaWNhdGlv bjwvb3B0aW9uPiBvcHRpb24KLSAgICAgIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBwdWJsaWNhdGlv biBoYXMgdGhlIGZvbGxvd2luZyBuYW1lIHBhdHRlcm46Ci0gICAgICA8cXVvdGU+PGxpdGVyYWw+ cGdfY3JlYXRlc3Vic2NyaWJlcl8ldV8leDwvbGl0ZXJhbD48L3F1b3RlPiAocGFyYW1ldGVyOgot ICAgICAgZGF0YWJhc2UgPHBhcmFtZXRlcj5vaWQ8L3BhcmFtZXRlcj4sIHJhbmRvbSA8cGFyYW1l dGVyPmludDwvcGFyYW1ldGVyPikuCi0gICAgICBJZiB0aGUgPG9wdGlvbj4tLXJlcGxpY2F0aW9u LXNsb3Q8L29wdGlvbj4gb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQsIHRoZQotICAgICAgcmVwbGlj YXRpb24gc2xvdCBoYXMgdGhlIGZvbGxvd2luZyBuYW1lIHBhdHRlcm46CisgICAgICBDcmVhdGUg YSBwdWJsaWNhdGlvbiBhbmQgcmVwbGljYXRpb24gc2xvdCBmb3IgZWFjaCBzcGVjaWZpZWQgZGF0 YWJhc2UKKyAgICAgIG9uIHRoZSBzb3VyY2Ugc2VydmVyLiBJZiB0aGUgPG9wdGlvbj4tLXB1Ymxp Y2F0aW9uPC9vcHRpb24+IG9wdGlvbiBpcworICAgICAgc3BlY2lmaWVkLCB0aGUgdXNlci1zcGVj aWZpZWQgcHVibGljYXRpb24gaXMgdXNlZCwgd2hpY2ggaW5jbHVkZXMgdGhlCisgICAgICBvYmpl Y3RzIGRlZmluZWQgYnkgdGhhdCBwdWJsaWNhdGlvbi4gT3RoZXJ3aXNlLAorICAgICAgPGFwcGxp Y2F0aW9uPnBnX2NyZWF0ZXN1YnNjcmliZXI8L2FwcGxpY2F0aW9uPiBjcmVhdGVzIGEgcHVibGlj YXRpb24KKyAgICAgIHVzaW5nIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1w YXJhbXMtZm9yLWFsbC10YWJsZXMiPgorICAgICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xp dGVyYWw+PC9saW5rPiBhbmQgPGxpbmsKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNh dGlvbi1wYXJhbXMtZm9yLWFsbC1zZXF1ZW5jZXMiPiA8bGl0ZXJhbD5BTEwKKyAgICAgIFNFUVVF TkNFUzwvbGl0ZXJhbD48L2xpbms+LiBUaGVzZSBnZW5lcmF0ZWQgcHVibGljYXRpb25zIGhhcyB0 aGUKKyAgICAgIGZvbGxvd2luZyBuYW1lIHBhdHRlcm46CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+ cGdfY3JlYXRlc3Vic2NyaWJlcl8ldV8leDwvbGl0ZXJhbD48L3F1b3RlPiAocGFyYW1ldGVyczoK ICAgICAgIGRhdGFiYXNlIDxwYXJhbWV0ZXI+b2lkPC9wYXJhbWV0ZXI+LCByYW5kb20gPHBhcmFt ZXRlcj5pbnQ8L3BhcmFtZXRlcj4pLgogICAgICAgVGhlc2UgcmVwbGljYXRpb24gc2xvdHMgd2ls bCBiZSB1c2VkIGJ5IHRoZSBzdWJzY3JpcHRpb25zIGluIGEgZnV0dXJlCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jIGIvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwppbmRleCAyMGIzNTRhZWQ1Ni4uY2RhYTVh ZDQzNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3Jp YmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwpA QCAtMTc4OCw3ICsxNzg4LDcgQEAgd2FpdF9mb3JfZW5kX3JlY292ZXJ5KGNvbnN0IGNoYXIgKmNv bm5pbmZvLCBjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMKIH0KIAogLyoKLSAq IENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgaW5jbHVkZXMgYWxsIHRhYmxlcyBpbiB0aGUgZGF0 YWJhc2UuCisgKiBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IGluY2x1ZGVzIGFsbCB0YWJsZXMg YW5kIHNlcXVlbmNlcyBpbiB0aGUgZGF0YWJhc2UuCiAgKi8KIHN0YXRpYyB2b2lkCiBjcmVhdGVf cHVibGljYXRpb24oUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykK QEAgLTE4NDAsNyArMTg0MCw3IEBAIGNyZWF0ZV9wdWJsaWNhdGlvbihQR2Nvbm4gKmNvbm4sIHN0 cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCQlwZ19sb2dfaW5mbygiY3JlYXRpbmcgcHVi bGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCiAJCQkJCWRiaW5mby0+cHVibmFt ZSwgZGJpbmZvLT5kYm5hbWUpOwogCi0JYXBwZW5kUFFFeHBCdWZmZXIoc3RyLCAiQ1JFQVRFIFBV QkxJQ0FUSU9OICVzIEZPUiBBTEwgVEFCTEVTIiwKKwlhcHBlbmRQUUV4cEJ1ZmZlcihzdHIsICJD UkVBVEUgUFVCTElDQVRJT04gJXMgRk9SIEFMTCBUQUJMRVMsIEFMTCBTRVFVRU5DRVMiLAogCQkJ CQkgIGlwdWJuYW1lX2VzYyk7CiAKIAlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwgc3Ry LT5kYXRhKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVh dGVzdWJzY3JpYmVyLnBsIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1 YnNjcmliZXIucGwKaW5kZXggOTI1MmQxYzNjNWMuLjk0Y2Y0N2FlNjgzIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbAorKysgYi9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbApAQCAtNDM0 LDExICs0MzQsMTYgQEAgY29tbWFuZF9mYWlsc19saWtlKAogCXFyL29wdGlvbnMgLS1wdWJsaWNh dGlvbiBhbmQgLWFcLy0tYWxsIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyLywKIAknZmFpbCBpZiAt LXB1YmxpY2F0aW9uIGlzIHVzZWQgd2l0aCAtLWFsbCcpOwogCi0jIHJ1biBwZ19jcmVhdGVzdWJz Y3JpYmVyIHdpdGggJy0tYWxsJyBvcHRpb24KKyMgUmVtb3ZlIGFueSBleGlzdGluZyBpbnRlcm5h bCBsb2cgZmlsZXMgc28gdGhhdCBvbmx5IHRoZSBvdXRwdXQgZnJvbSB0aGUKKyMgZm9sbG93aW5n IHBnX2NyZWF0ZXN1YnNjcmliZXIgaW52b2NhdGlvbiBpcyB2ZXJpZmllZC4KK3VubGluayAkXyBm b3IgQGludGVybmFsX2xvZ19maWxlczsKKworIyBydW4gcGdfY3JlYXRlc3Vic2NyaWJlciB3aXRo ICctLWFsbCcgd2l0aCBkZWJ1ZyB2ZXJib3NlIGxvZ2dpbmcgZW5hYmxlZAogbXkgKCRzdGRvdXQs ICRzdGRlcnIpID0gcnVuX2NvbW1hbmQoCiAJWwogCQkncGdfY3JlYXRlc3Vic2NyaWJlcicsCiAJ CSctLXZlcmJvc2UnLAorCQknLS12ZXJib3NlJywKIAkJJy0tZHJ5LXJ1bicsCiAJCSctLXJlY292 ZXJ5LXRpbWVvdXQnID0+ICRQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0 LAogCQknLS1wZ2RhdGEnID0+ICRub2RlX3MtPmRhdGFfZGlyLApAQCAtNDQ2LDYgKzQ1MSw3IEBA IG15ICgkc3Rkb3V0LCAkc3RkZXJyKSA9IHJ1bl9jb21tYW5kKAogCQknLS1zb2NrZXRkaXInID0+ ICRub2RlX3MtPmhvc3QsCiAJCSctLXN1YnNjcmliZXItcG9ydCcgPT4gJG5vZGVfcy0+cG9ydCwK IAkJJy0tYWxsJywKKwkJJy0tbG9nZGlyJyA9PiAkbG9nZGlyLAogCV0sCiAJJ3J1biBwZ19jcmVh dGVzdWJzY3JpYmVyIHdpdGggLS1hbGwnKTsKIApAQCAtNDU4LDYgKzQ2NCwyMCBAQCBpcyhzY2Fs YXIoKCkgPSAkc3RkZXJyID1+IC93b3VsZCBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QvZyks CiBpcyhzY2FsYXIoKCkgPSAkc3RkZXJyID1+IC93b3VsZCBjcmVhdGUgc3Vic2NyaXB0aW9uL2cp LAogCTMsICJ2ZXJpZnkgc3Vic2NyaXB0aW9ucyBhcmUgY3JlYXRlZCBmb3IgYWxsIGRhdGFiYXNl cyIpOwogCisjIFJlYWQgdGhlIGludGVybmFsIGxvZyBnZW5lcmF0ZWQgYnkgdGhlIGFib3ZlIGlu dm9jYXRpb24uCitAaW50ZXJuYWxfbG9nX2ZpbGVzID0gZ2xvYiAiJGxvZ2Rpci8qL3BnX2NyZWF0 ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIjsKK2lzKHNjYWxhcihAaW50ZXJuYWxfbG9nX2ZpbGVz KSwKKwkxLCAicGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgZmlsZSB3YXMgcmVjcmVh dGVkIik7CisKKyRpbnRlcm5hbF9sb2cgPSBzbHVycF9maWxlKCRpbnRlcm5hbF9sb2dfZmlsZXNb MF0pOworCisjIFZlcmlmeSB0aGF0IHRoZSBnZW5lcmF0ZWQgQ1JFQVRFIFBVQkxJQ0FUSU9OIGNv bW1hbmQgaW5jbHVkZXMgYm90aAorIyBGT1IgQUxMIFRBQkxFUyBhbmQgQUxMIFNFUVVFTkNFUy4K K2xpa2UoCisJJGludGVybmFsX2xvZywKKwlxci9DUkVBVEUgUFVCTElDQVRJT04gInBnX2NyZWF0 ZXN1YnNjcmliZXJfW14iXSsiIEZPUiBBTEwgVEFCTEVTLCBBTEwgU0VRVUVOQ0VTLywKKwkibG9n IHNob3dzIENSRUFURSBQVUJMSUNBVElPTiB3aXRoIGJvdGggYWxsIHRhYmxlcyBhbmQgYWxsIHNl cXVlbmNlcyIpOworCiAjIENyZWF0ZSBhIHVzZXItZGVmaW5lZCBwdWJsaWNhdGlvbiwgYW5kIGEg dGFibGUgdGhhdCBpcyBub3QgYSBtZW1iZXIgb2YgdGhhdAogIyBwdWJsaWNhdGlvbi4KICRub2Rl X3AtPnNhZmVfcHNxbCgKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000b9d00706561466a4--