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 1wQiWU-001og2-2R for pgsql-hackers@arkaria.postgresql.org; Sat, 23 May 2026 09:19:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wQiWQ-00FV08-0V for pgsql-hackers@arkaria.postgresql.org; Sat, 23 May 2026 09:19:55 +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 1wQiWP-00FV00-1q for pgsql-hackers@lists.postgresql.org; Sat, 23 May 2026 09:19:54 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wQiWO-00000000OfY-2fn7 for pgsql-hackers@postgresql.org; Sat, 23 May 2026 09:19:53 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-67c1e0229acso13353921a12.1 for ; Sat, 23 May 2026 02:19:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779527985; cv=none; d=google.com; s=arc-20240605; b=HeyRNQpSCewaWmx8qlMGbBJ6LV8mjKZ3MVa/DTHcFqRZM1UNIzx8TWMn5gnpYZMtuQ ESvGq1LgEFmlMMKunFxZls5i1F4v97BUc4UOrc8WWztPdHM8i2nxWZ7y8GqgHeY3WA++ OvhEUvLtRx1FwvKOrENwCfsnUlCai3wdzGA0QWQFFH5wfrHyDmGT1o7ZaJPFUwhfBAcv GjcKnXs1odc8PVGmpYM+ZbsfWcnXGOvHLcLk2ns62cHIliZREifcFKNygyFMY5Q8fHaJ TCnCJ9OSPyv0cw6hGdq31rw4N4K5YrzGeC6Qei44X7ArkqYLFGVBMF53URpRm6eQ5qUv XwfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=Qmmi4g2E/cprnOeju8ZwBM3c/0WP0hsGCWaMKZAOx6E=; fh=XFdF+KiwDU8TlGzpkw25/aIYzo1wgasTVV5+F3/bM8M=; b=deuQ/U2CC9yD4ZU8wK4CPk9FockHE7FwjY0Z7uSN4cQwMcG5rO897ZAXfCFok+dg9e EXuPHzuNs5ZWS7QEF1gI9uo3lqCTnEfB+l/d7spARfTWAF4TqzroLALCYJp2g2CwQt3d 3ZfgECRGZXAvJ3MjccmwP05LV3mo5jIKW0ZVXMoVz9ikZkClOS7O3Frc0vdNvllYqNLI zEyR7BzTyl7sG+OW4zqt/uzbul1Pxswa3T0soF2kgUEepIoPUKZy6CpMT1l76FOhTyPc QaVahJg5irqrbcR1HmHGr6qENIdlG5+cBgh/B21lVooHxLLjFQwru5BugrT1RvFPfTjA eTiA==; darn=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=1779527985; x=1780132785; darn=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=Qmmi4g2E/cprnOeju8ZwBM3c/0WP0hsGCWaMKZAOx6E=; b=RIrs6nc0R3e3JDV+SUX6ZAXQpBxUY/IUVINOEaH+ntXH86dorKkcES51piitLNwblD bSsiA1pi/Y7wIuBy+3TYmVOenbZRkALf+92ulreAIxBH6Dq3e3LmCezj92pjKfvRHKT7 oHhnHykrFfd8QCivHLUQ323K6BSsHBvw26kvHNp6H5fAhw4RmxxL1MZxIIl19wW0TyEK Beg/hG1dKgWkyucf0I6Xv4v3wWQDXNjvhGiwEhiUE0Mj7Q/1Sskzj/iHzARpWCWYyfEN FFckzH2D6bp72RjAt7S+dAnYJIEqoGz3g4MDSCOkSPtqyHvDGlnwsVVWZypx88rbfMpG raVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779527985; x=1780132785; 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=Qmmi4g2E/cprnOeju8ZwBM3c/0WP0hsGCWaMKZAOx6E=; b=lp/vNgw+IaNtX4UNPFVmMXPeExBXwsq8B6wnthCzSoWm1hIgHdzFqpkeYJKeE+qIR3 fxoBfx/XuFNNGO7YeUL8SpTxUrx2Ni4dJOMMrzWSTs+sV1i0dWlLhvUUa8xKbzmbNqgi The9lCVqlXL37a+acrhUjzmz2/vC0K9fq04GlCunA4n9L+gZ+1WOo+fusPWM+kCg8OZL JbHeaZyY7xCzZfc3xfupR4GSO1PoQdjpl3kB682BHmRYGKCCSZuf3X1RR6r4zMxEpZIz oJH8ElPHXwG0zcrjFmd9PFHjNlTvS/7GCcszez/w9/z8iFVtUKI05euNtwI072gGCjiT hmSg== X-Forwarded-Encrypted: i=1; AFNElJ89P/YH1uIaxGB8NfbGkbEUYKkz7dig6fADV4ZW0+6viQO8DUKzLrTPFMW0m6UhA/XNQ5LEHQM/5pWZELGR@postgresql.org X-Gm-Message-State: AOJu0YxaBXCf5lTBupuQvv+KHu0DngmXjkKxwNAUzyT5LpfQGef71ZUN jeXNuMLl+1TNFbmqMSdkJR23060BzV/JsUWKpEtpS488RDOPKrCNA3a6rUn5YL2NYZjVmMh98Q1 Mn2HVThWnUlPI91gnY4VHhI99oAe08Hk= X-Gm-Gg: Acq92OGygzhs4ICRzHz9H9mnBOKpwg0kYNEV0tYU3CrYBv6RJ1RaSa5WV1kjo56yftn w7OVbMT+0GvYGqSQVO2w9h1mGhb1p2KIqrQHC62E5I29mCQbdGLFZaavonfvEIOcbOxHUQC7eeW 4IG0wTY2K3Q+jFsxGvRSIMvwd85vSvAaxc/qwdO95o2lUOYMfJJCVlXaHwonStkVRlD+gEPt97u tCVh/rvRN4CruDe6YnLntfVlVIl4Ws/kgAY59j21NSIrWjtU2JhfJTXBiTtFxonFi9mV4NewDNO kjSKKYwO905BJIOK4YkVqulH85s= X-Received: by 2002:a05:6402:3907:b0:678:7da5:2346 with SMTP id 4fb4d7f45d1cf-6889cc6c649mr3608492a12.25.1779527984983; Sat, 23 May 2026 02:19:44 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Imran Zaheer Date: Sat, 23 May 2026 14:19:30 +0500 X-Gm-Features: AVHnY4Ixgxz9pEq-N02Y7vFVAjG9qoWBeb9_uxrrV2qig75JjLwoqJZV_xz5oFo Message-ID: Subject: Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY) To: shveta malik Cc: Masahiko Sawada , pgsql-hackers , shveta malik Content-Type: multipart/mixed; boundary="00000000000069ec37065278a5b7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000069ec37065278a5b7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Thanks for the review. In the attached patch, I added an argument that will help explicitly control whether to stop logical decoding or not. -ReplicationSlotDropAcquired(void) +ReplicationSlotDropAcquired(bool disable_logical_decoding) I hope this will be enough to make the caller intent more explicit and will prevent future omissions like this. Thanks Imran Zaheer On Fri, May 22, 2026 at 1:57=E2=80=AFPM shveta malik wrote: > > On Fri, May 22, 2026 at 11:40=E2=80=AFAM Masahiko Sawada wrote: > > > > On Thu, May 21, 2026 at 9:19=E2=80=AFPM shveta malik wrote: > > > > > > On Thu, May 21, 2026 at 10:02=E2=80=AFPM Imran Zaheer wrote: > > > > > > > > Hi > > > > > > > > The recent support for dynamic toggling of logical decoding (67c209= 7) > > > > disables logical > > > > decoding if no logical slots are present. But the repack command do= esn't seem to > > > > coordinate with this toggling. The effective_wal_level is not > > > > decreasing after using repack concurrently. > > > > > > > > postgres=3D# show effective_wal_level; > > > > effective_wal_level > > > > --------------------- > > > > replica > > > > (1 row) > > > > > > > > postgres=3D# create table foo(a int primary key); > > > > CREATE TABLE > > > > postgres=3D# REPACK (CONCURRENTLY) foo; > > > > 2026-05-21 20:46:25.423 PKT [1591896] LOG: logical decoding is > > > > enabled upon creating a new logical replication slot > > > > 2026-05-21 20:46:25.634 PKT [1591896] LOG: logical decoding found > > > > consistent point at 0/018F36D0 > > > > 2026-05-21 20:46:25.634 PKT [1591896] DETAIL: There are no running > > > > transactions. > > > > REPACK > > > > postgres=3D# select slot_name from pg_replication_slots; > > > > slot_name > > > > ----------- > > > > (0 rows) > > > > > > > > postgres=3D# show effective_wal_level; > > > > effective_wal_level > > > > --------------------- > > > > logical > > > > (1 row) > > > > > > > > > > > > The server has to be restarted in order to decrease the > > > > effective_wal_level. REPACK CONCURRENTLY uses a temporary slot that= is > > > > dropped at the time of cleanup, but logical decoding is not disabl= ed. > > > > > > > > This may be related to both commits, 28d534e and 67c2097 > > > > > > > > The attached patch adds the `RequestDisableLogicalDecoding` call to > > > > `repack_cleanup_logical_decoding` after the replication slot is > > > > dropped so the checkpointer will take care of it.. > > > > > > > > Good catch! > > > > > > > > Thanks for reporting the issue. I agree with both the problem > > > statement and the proposed fix. > > > > > > The fix LGTM. The only point I=E2=80=99d like to discuss is whether i= t would > > > make more sense for RequestDisableLogicalDecoding() to be called > > > directly from ReplicationSlotDropAcquired(). > > > > > > Currently, ReplicationSlotRelease(), ReplicationSlotDrop(), and now > > > repack_cleanup_logical_decoding() all invoke > > > RequestDisableLogicalDecoding() immediately after > > > ReplicationSlotDropAcquired(). Given this pattern, it may be cleaner > > > and less error-prone to make RequestDisableLogicalDecoding() part of > > > ReplicationSlotDropAcquired() itself, which could also help avoid > > > similar bugs in the future. > > > > > > That said, one concern is that ReplicationSlotsDropDBSlots() could en= d > > > up issuing too many disable requests if there are many logical slots > > > in the target database, so I=E2=80=99m not entirely sure whether this= is the > > > right direction. Thoughts? > > > > Good point. I think we can have ReplicationSlotDropAcquired() have a > > flag to skip sending a deactivation request. That way, > > ReplicationSlotsDropDBSlots() can check the logical slot presence > > after processing all slots and other callers can request the > > deactivation after dropping the slot. It would help simplify the code > > somewhat. It's conventional that when dropping a slot we acquire the > > slot first and call RepicationSlotDropAcquired() to reliably drop a > > slot (ReplicationSlotCleanup() is an exception). Therefore, I think > > that having a flag to ReplicationSlotDropAcquired() could help future > > developers to make sure to disable logical decoding at the slot drop. > > > > Yes, that seems like a good proposal. Having an explicit argument > would require authors to consciously review and decide whether logical > decoding should be disabled based on their specific use case. That > would help prevent such bugs from being introduced unintentionally. > > thanks > Shveta --00000000000069ec37065278a5b7 Content-Type: application/octet-stream; name="v2-0001-Disable-logical-decoding-after-REPACK-CONCURRENTL.patch" Content-Disposition: attachment; filename="v2-0001-Disable-logical-decoding-after-REPACK-CONCURRENTL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpi4ovrb0 RnJvbSBhNjA1ZWJiM2E2ZGMxOGIxN2NhMWY3ODg2ZGMwMDc2MjdiNmNkYTBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJbXJhbiBaYWhlZXIgPGltcmFuLnpoaXJAZ21haWwuY29tPgpE YXRlOiBTYXQsIDIzIE1heSAyMDI2IDE0OjAyOjA0ICswNTAwClN1YmplY3Q6IFtQQVRDSCB2Ml0g RGlzYWJsZSBsb2dpY2FsIGRlY29kaW5nIGFmdGVyIFJFUEFDSyAoQ09OQ1VSUkVOVExZKQoKUkVQ QUNLIChDT05DVVJSRU5UTFkpIGRyb3BzIGEgdGVtcG9yYXJ5IGxvZ2ljYWwgcmVwbGljYXRpb24g c2xvdCBidXQKbmV2ZXIgY2FsbHMgUmVxdWVzdERpc2FibGVMb2dpY2FsRGVjb2RpbmcoKSwgc28g ZWZmZWN0aXZlX3dhbF9sZXZlbApyZW1haW5zIHN0dWNrIGF0ICdsb2dpY2FsJy4KCkFkZCBhIGRp c2FibGVfbG9naWNhbF9kZWNvZGluZyBmbGFnIHRvIFJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJl ZCgpCnNvIGNhbGxlcnMgZXhwbGljaXRseSBjb250cm9sIHRoaXMgYmVoYXZpb3IuCi0tLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvcmVwYWNrX3dvcmtlci5jICAgICAgICAgIHwgIDIgKy0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMgICAgfCAgMiArLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgMjUgKysrKysrKystLS0tLS0t LS0tLQogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oICAgICAgICAgICAgICAgIHwgIDIg Ky0KIC4uLi9yZWNvdmVyeS90LzA1MV9lZmZlY3RpdmVfd2FsX2xldmVsLnBsICAgICB8IDE0ICsr KysrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3JlcGFja193b3JrZXIuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3JlcGFja193b3JrZXIuYwppbmRleCBiODQwNDEzNzJiOC4u NGY4MmViNDZiZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3JlcGFja193b3Jr ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9yZXBhY2tfd29ya2VyLmMKQEAgLTMyMyw3 ICszMjMsNyBAQCByZXBhY2tfY2xlYW51cF9sb2dpY2FsX2RlY29kaW5nKExvZ2ljYWxEZWNvZGlu Z0NvbnRleHQgKmN0eCkKIAkJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdChkc3RhdGUtPnNs b3QpOwogCiAJRnJlZURlY29kaW5nQ29udGV4dChjdHgpOwotCVJlcGxpY2F0aW9uU2xvdERyb3BB Y3F1aXJlZCgpOworCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh0cnVlKTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYwppbmRleCA1MDA1MWRl YThjNy4uMTM3ZGE1ODJmZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbGF1bmNoZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xh dW5jaGVyLmMKQEAgLTE0MDYsNyArMTQwNiw3IEBAIEFwcGx5TGF1bmNoZXJNYWluKERhdHVtIG1h aW5fYXJnKQogCQlpZiAoTXlSZXBsaWNhdGlvblNsb3QpCiAJCXsKIAkJCWlmICghcmV0YWluX2Rl YWRfdHVwbGVzKQotCQkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOworCQkJCVJlcGxp Y2F0aW9uU2xvdERyb3BBY3F1aXJlZChmYWxzZSk7CiAJCQllbHNlIGlmIChjYW5fdXBkYXRlX3ht aW4pCiAJCQkJdXBkYXRlX2NvbmZsaWN0X3Nsb3RfeG1pbih4bWluKTsKIAkJfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCmluZGV4IGFkMzc0N2U1OThjLi5mZTA5 ZWUwNGI2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90 c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpA QCAtNTY3LDcgKzU2Nyw3IEBAIGRyb3BfbG9jYWxfb2Jzb2xldGVfc2xvdHMoTGlzdCAqcmVtb3Rl X3Nsb3RfbGlzdCkKIAkJCWlmIChzeW5jZWRfc2xvdCkKIAkJCXsKIAkJCQlSZXBsaWNhdGlvblNs b3RBY3F1aXJlKE5hbWVTdHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1lKSwgdHJ1ZSwgZmFsc2UpOwot CQkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOworCQkJCVJlcGxpY2F0aW9uU2xvdERy b3BBY3F1aXJlZChmYWxzZSk7CiAJCQl9CiAKIAkJCVVubG9ja1NoYXJlZE9iamVjdChEYXRhYmFz ZVJlbGF0aW9uSWQsIGxvY2FsX3Nsb3QtPmRhdGEuZGF0YWJhc2UsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 LmMKaW5kZXggODNmY2RlNzQ3MTguLmE4N2VmOWRkODJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5j CkBAIC03ODYsMTYgKzc4NiwxMiBAQCBSZXBsaWNhdGlvblNsb3RSZWxlYXNlKHZvaWQpCiAJCSAq IERlbGV0ZSB0aGUgc2xvdC4gVGhlcmUgaXMgbm8gIVBBTklDIGNhc2Ugd2hlcmUgdGhpcyBpcyBh bGxvd2VkIHRvCiAJCSAqIGZhaWwsIGFsbCB0aGF0IG1heSBoYXBwZW4gaXMgYW4gaW5jb21wbGV0 ZSBjbGVhbnVwIG9mIHRoZSBvbi1kaXNrCiAJCSAqIGRhdGEuCi0JCSAqLwotCQlSZXBsaWNhdGlv blNsb3REcm9wQWNxdWlyZWQoKTsKLQotCQkvKgotCQkgKiBSZXF1ZXN0IHRvIGRpc2FibGUgbG9n aWNhbCBkZWNvZGluZywgZXZlbiB0aG91Z2ggdGhpcyBzbG90IG1heSBub3QKLQkJICogaGF2ZSBi ZWVuIHRoZSBsYXN0IGxvZ2ljYWwgc2xvdC4gVGhlIGNoZWNrcG9pbnRlciB3aWxsIHZlcmlmeSBp ZgorCQkgKgorCQkgKiBBbHNvIHJlcXVlc3QgdG8gZGlzYWJsZSBsb2dpY2FsIGRlY29kaW5nLCBl dmVuIHRob3VnaCB0aGlzIHNsb3QgbWF5CisJCSAqIG5vdCBoYXZlIGJlZW4gdGhlIGxhc3QgbG9n aWNhbCBzbG90LiBUaGUgY2hlY2twb2ludGVyIHdpbGwgdmVyaWZ5IGlmCiAJCSAqIGxvZ2ljYWwg ZGVjb2Rpbmcgc2hvdWxkIGFjdHVhbGx5IGJlIGRpc2FibGVkLgogCQkgKi8KLQkJaWYgKGlzX2xv Z2ljYWwpCi0JCQlSZXF1ZXN0RGlzYWJsZUxvZ2ljYWxEZWNvZGluZygpOworCQlSZXBsaWNhdGlv blNsb3REcm9wQWNxdWlyZWQoaXNfbG9naWNhbCk7CiAJfQogCiAJLyoKQEAgLTkzNywxMCArOTMz LDcgQEAgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCkK IAogCWlzX2xvZ2ljYWwgPSBTbG90SXNMb2dpY2FsKE15UmVwbGljYXRpb25TbG90KTsKIAotCVJl cGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOwotCi0JaWYgKGlzX2xvZ2ljYWwpCi0JCVJlcXVl c3REaXNhYmxlTG9naWNhbERlY29kaW5nKCk7CisJUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVk KGlzX2xvZ2ljYWwpOwogfQogCiAvKgpAQCAtMTAzOSw3ICsxMDMyLDcgQEAgUmVwbGljYXRpb25T bG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgYm9vbCAqZmFpbG92ZXIsCiAgKiBQZXJt YW5lbnRseSBkcm9wIHRoZSBjdXJyZW50bHkgYWNxdWlyZWQgcmVwbGljYXRpb24gc2xvdC4KICAq Lwogdm9pZAotUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKHZvaWQpCitSZXBsaWNhdGlvblNs b3REcm9wQWNxdWlyZWQoYm9vbCBkaXNhYmxlX2xvZ2ljYWxfZGVjb2RpbmcpCiB7CiAJUmVwbGlj YXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKQEAgLTEwNDksNiArMTA0Miwx MCBAQCBSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQodm9pZCkKIAlNeVJlcGxpY2F0aW9uU2xv dCA9IE5VTEw7CiAKIAlSZXBsaWNhdGlvblNsb3REcm9wUHRyKHNsb3QpOworCisJLyogUmVxdWVz dCBjaGVja3BvaW50ZXIgdG8gZGlzYWJsZSB0aGUgbG9naWNhbCBkZWNvZGluZyAqLworCWlmIChk aXNhYmxlX2xvZ2ljYWxfZGVjb2RpbmcpCisJCVJlcXVlc3REaXNhYmxlTG9naWNhbERlY29kaW5n KCk7CiB9CiAKIC8qCkBAIC0xNjA2LDcgKzE2MDMsNyBAQCByZXN0YXJ0OgogCQkgKiBiZWdpbm5p bmcgZWFjaCB0aW1lIHdlIHJlbGVhc2UgdGhlIGxvY2suCiAJCSAqLwogCQlMV0xvY2tSZWxlYXNl KFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKLQkJUmVwbGljYXRpb25TbG90RHJvcEFjcXVp cmVkKCk7CisJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZChmYWxzZSk7CiAJCWRyb3BwZWQg PSB0cnVlOwogCQlnb3RvIHJlc3RhcnQ7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IDc3 YzhkMDk3NWI2Li41NWU2NmU4MjdhNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vc2xvdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMzM1LDcg KzMzNSw3IEBAIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpu YW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCQkJCQkgIGJvb2wgc3luY2VkKTsKIGV4dGVybiB2 b2lkIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3Qodm9pZCk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlv blNsb3REcm9wKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0KTsKLWV4dGVybiB2b2lkIFJl cGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh2b2lkKTsKK2V4dGVybiB2b2lkIFJlcGxpY2F0aW9u U2xvdERyb3BBY3F1aXJlZChib29sIGRpc2FibGVfbG9naWNhbF9kZWNvZGluZyk7CiBleHRlcm4g dm9pZCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBib29sICpm YWlsb3ZlciwKIAkJCQkJCQkJIGNvbnN0IGJvb2wgKnR3b19waGFzZSk7CiAKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUxX2VmZmVjdGl2ZV93YWxfbGV2ZWwucGwgYi9zcmMvdGVz dC9yZWNvdmVyeS90LzA1MV9lZmZlY3RpdmVfd2FsX2xldmVsLnBsCmluZGV4IGM0YzI2NjJmNzJi Li42NjNlZDczMGM5MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTFfZWZmZWN0 aXZlX3dhbF9sZXZlbC5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MV9lZmZlY3RpdmVf d2FsX2xldmVsLnBsCkBAIC0xNDEsNiArMTQxLDIwIEBAIHRlc3Rfd2FsX2xldmVsKCRwcmltYXJ5 LCAicmVwbGljYXxyZXBsaWNhIiwKIAkiZWZmZWN0aXZlX3dhbF9sZXZlbCBnb3QgZGVjcmVhc2Vk IHRvICdyZXBsaWNhJyBhZnRlciBpbnZhbGlkYXRpbmcgdGhlIGxhc3QgbG9naWNhbCBzbG90Igog KTsKIAorIyBMb2dpY2FsIGRlY29kaW5nIHNob3VsZCBiZSBkaXNhYmxlZCBhZnRlciByZXBhY2tp bmcKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXFbY3JlYXRlIHRhYmxlIGZvbyhh IGludCBwcmltYXJ5IGtleSldKTsKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXFb cmVwYWNrIChjb25jdXJyZW50bHkpIGZvbztdKTsKK29rKCAkcHJpbWFyeS0+bG9nX2NvbnRhaW5z KAorCQkibG9naWNhbCBkZWNvZGluZyBpcyBlbmFibGVkIHVwb24gY3JlYXRpbmcgYSBuZXcgbG9n aWNhbCByZXBsaWNhdGlvbiBzbG90IgorCSksCisJImxvZ2ljYWwgZGVjb2RpbmcgaGFzIGJlZW4g ZW5hYmxlZCB1cG9uIGNyZWF0aW5nIGEgdGVtcCBzbG90Iik7CisKKyMgV2FpdCBmb3IgdGhlIGNo ZWNrcG9pbnRlciB0byBkaXNhYmxlIGxvZ2ljYWwgZGVjb2RpbmcuCit3YWl0X2Zvcl9sb2dpY2Fs X2RlY29kaW5nX2Rpc2FibGVkKCRwcmltYXJ5KTsKK3Rlc3Rfd2FsX2xldmVsKCRwcmltYXJ5LCAi cmVwbGljYXxyZXBsaWNhIiwKKwkiZWZmZWN0aXZlX3dhbF9sZXZlbCBnb3QgZGVjcmVhc2VkIHRv ICdyZXBsaWNhJyBhZnRlciB0aGUgUkVQQUNLIChDT05DVVJSRU5UTFkpIGNvbW1hbmQiCispOwor CiAjIFJldmVydCB0aGUgbW9kaWZpZWQgc2V0dGluZ3MsIGFuZCByZXN0YXJ0IHRoZSBzZXJ2ZXIu CiAkcHJpbWFyeS0+YWRqdXN0X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICdtYXhfc2xvdF93YWxf a2VlcF9zaXplJywgdW5kZWYpOwogJHByaW1hcnktPmFkanVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNv bmYnLCAnbWluX3dhbF9zaXplJywgdW5kZWYpOwotLSAKMi40OS4wCgo= --00000000000069ec37065278a5b7--