Thread
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix 051_effective_wal_level.pl on builds without injection points.
- 47ad2233fad4 19 (unreleased) landed
-
Disable logical decoding after REPACK (CONCURRENTLY)
- 2af1dc89282b 19 (unreleased) landed
-
effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Imran Zaheer <imran.zhir@gmail.com> — 2026-05-21T16:32:36Z
Hi The recent support for dynamic toggling of logical decoding (67c2097) disables logical decoding if no logical slots are present. But the repack command doesn't seem to coordinate with this toggling. The effective_wal_level is not decreasing after using repack concurrently. postgres=# show effective_wal_level; effective_wal_level --------------------- replica (1 row) postgres=# create table foo(a int primary key); CREATE TABLE postgres=# 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=# select slot_name from pg_replication_slots; slot_name ----------- (0 rows) postgres=# 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 disabled. 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.. Thanks Imran Zaheer
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
shveta malik <shveta.malik@gmail.com> — 2026-05-22T04:18:54Z
On Thu, May 21, 2026 at 10:02 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > Hi > > The recent support for dynamic toggling of logical decoding (67c2097) > disables logical > decoding if no logical slots are present. But the repack command doesn't seem to > coordinate with this toggling. The effective_wal_level is not > decreasing after using repack concurrently. > > postgres=# show effective_wal_level; > effective_wal_level > --------------------- > replica > (1 row) > > postgres=# create table foo(a int primary key); > CREATE TABLE > postgres=# 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=# select slot_name from pg_replication_slots; > slot_name > ----------- > (0 rows) > > postgres=# 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 disabled. > > 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.. > Thanks for reporting the issue. I agree with both the problem statement and the proposed fix. The fix LGTM. The only point I’d like to discuss is whether it 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 end up issuing too many disable requests if there are many logical slots in the target database, so I’m not entirely sure whether this is the right direction. Thoughts? Copying Sawada-san (author of the original patch) too, to share his thoughts on this. thanks Shveta
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Masahiko Sawada <sawada.mshk@gmail.com> — 2026-05-22T06:10:20Z
On Thu, May 21, 2026 at 9:19 PM shveta malik <shveta.malik@gmail.com> wrote: > > On Thu, May 21, 2026 at 10:02 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > Hi > > > > The recent support for dynamic toggling of logical decoding (67c2097) > > disables logical > > decoding if no logical slots are present. But the repack command doesn't seem to > > coordinate with this toggling. The effective_wal_level is not > > decreasing after using repack concurrently. > > > > postgres=# show effective_wal_level; > > effective_wal_level > > --------------------- > > replica > > (1 row) > > > > postgres=# create table foo(a int primary key); > > CREATE TABLE > > postgres=# 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=# select slot_name from pg_replication_slots; > > slot_name > > ----------- > > (0 rows) > > > > postgres=# 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 disabled. > > > > 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’d like to discuss is whether it 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 end > up issuing too many disable requests if there are many logical slots > in the target database, so I’m 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. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
shveta malik <shveta.malik@gmail.com> — 2026-05-22T08:57:37Z
On Fri, May 22, 2026 at 11:40 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > On Thu, May 21, 2026 at 9:19 PM shveta malik <shveta.malik@gmail.com> wrote: > > > > On Thu, May 21, 2026 at 10:02 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > > > Hi > > > > > > The recent support for dynamic toggling of logical decoding (67c2097) > > > disables logical > > > decoding if no logical slots are present. But the repack command doesn't seem to > > > coordinate with this toggling. The effective_wal_level is not > > > decreasing after using repack concurrently. > > > > > > postgres=# show effective_wal_level; > > > effective_wal_level > > > --------------------- > > > replica > > > (1 row) > > > > > > postgres=# create table foo(a int primary key); > > > CREATE TABLE > > > postgres=# 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=# select slot_name from pg_replication_slots; > > > slot_name > > > ----------- > > > (0 rows) > > > > > > postgres=# 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 disabled. > > > > > > 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’d like to discuss is whether it 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 end > > up issuing too many disable requests if there are many logical slots > > in the target database, so I’m 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
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Imran Zaheer <imran.zhir@gmail.com> — 2026-05-23T09:19:30Z
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 PM shveta malik <shveta.malik@gmail.com> wrote: > > On Fri, May 22, 2026 at 11:40 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > > > On Thu, May 21, 2026 at 9:19 PM shveta malik <shveta.malik@gmail.com> wrote: > > > > > > On Thu, May 21, 2026 at 10:02 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > > > > > Hi > > > > > > > > The recent support for dynamic toggling of logical decoding (67c2097) > > > > disables logical > > > > decoding if no logical slots are present. But the repack command doesn't seem to > > > > coordinate with this toggling. The effective_wal_level is not > > > > decreasing after using repack concurrently. > > > > > > > > postgres=# show effective_wal_level; > > > > effective_wal_level > > > > --------------------- > > > > replica > > > > (1 row) > > > > > > > > postgres=# create table foo(a int primary key); > > > > CREATE TABLE > > > > postgres=# 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=# select slot_name from pg_replication_slots; > > > > slot_name > > > > ----------- > > > > (0 rows) > > > > > > > > postgres=# 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 disabled. > > > > > > > > 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’d like to discuss is whether it 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 end > > > up issuing too many disable requests if there are many logical slots > > > in the target database, so I’m 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
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
shveta malik <shveta.malik@gmail.com> — 2026-05-25T04:11:38Z
On Sat, May 23, 2026 at 2:49 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > 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. > Overall it looks good. I have a few trivial comments; please incorporate them if you agree. 1) +ReplicationSlotDropAcquired(bool disable_logical_decoding) We can change comments atop this function. Suggestion : /* * Permanently drop the currently acquired replication slot and * request the checkpointer to disable logical decoding if requested * by the caller. */ 2) Additionally I think it will be good to have below sanity check in ReplicationSlotDropAcquired(). Thoughts? /* Ensure that slot is logical if caller has requested to disable logical decoding */ Assert(!disable_logical_decoding || SlotIsLogical(MyReplicationSlot)); 3) @@ -567,7 +567,7 @@ drop_local_obsolete_slots(List *remote_slot_list) if (synced_slot) { ReplicationSlotAcquire(NameStr(local_slot->data.name), true, false); - ReplicationSlotDropAcquired(); + ReplicationSlotDropAcquired(false); } Since it is a logical slot and we are still passing false, we may add a comment. Suggestion: /* * We don't want to disable logical decoding during slot drop on the * physical standby, since the standby derives the logical decoding * state from the upstream server in the replication chain. */ thanks Shveta -
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Imran Zaheer <imran.zhir@gmail.com> — 2026-05-26T09:39:29Z
Hi, Thanks Shveta, I agree with the additional sanity checks and comments. Here is the updated patch. Thanks Imran Zaheer On Mon, May 25, 2026 at 9:11 AM shveta malik <shveta.malik@gmail.com> wrote: > > On Sat, May 23, 2026 at 2:49 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > 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. > > > > Overall it looks good. I have a few trivial comments; please > incorporate them if you agree. > > 1) > +ReplicationSlotDropAcquired(bool disable_logical_decoding) > > We can change comments atop this function. Suggestion : > > /* > * Permanently drop the currently acquired replication slot and > * request the checkpointer to disable logical decoding if requested > * by the caller. > */ > > > 2) > Additionally I think it will be good to have below sanity check in > ReplicationSlotDropAcquired(). Thoughts? > > /* Ensure that slot is logical if caller has requested to disable > logical decoding */ > Assert(!disable_logical_decoding || SlotIsLogical(MyReplicationSlot)); > > 3) > @@ -567,7 +567,7 @@ drop_local_obsolete_slots(List *remote_slot_list) > if (synced_slot) > { > ReplicationSlotAcquire(NameStr(local_slot->data.name), true, false); > - ReplicationSlotDropAcquired(); > + ReplicationSlotDropAcquired(false); > } > > Since it is a logical slot and we are still passing false, we may add > a comment. Suggestion: > > /* > * We don't want to disable logical decoding during slot drop on the > * physical standby, since the standby derives the logical decoding > * state from the upstream server in the replication chain. > */ > > thanks > Shveta -
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
shveta malik <shveta.malik@gmail.com> — 2026-05-26T12:32:09Z
On Tue, May 26, 2026 at 3:09 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > Hi, > > Thanks Shveta, I agree with the additional sanity checks and comments. > > Here is the updated patch. > > Thanks, v3 LGTM. thanks Shveta
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Álvaro Herrera <alvherre@kurilemu.de> — 2026-05-27T18:20:48Z
On 2026-May-26, shveta malik wrote: > On Tue, May 26, 2026 at 3:09 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > Hi, > > > > Thanks Shveta, I agree with the additional sanity checks and comments. > > Thanks, v3 LGTM. Thanks! Pushed with some cosmetic changes. One of them was that I wasn't sure of the reason why ApplyLauncherMain() isn't requesting logical decoding disable upon dropping the slot, so there's now an XXX comment there. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "Java is clearly an example of money oriented programming" (A. Stepanov)
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Masahiko Sawada <sawada.mshk@gmail.com> — 2026-05-27T18:25:19Z
On Wed, May 27, 2026 at 11:20 AM Álvaro Herrera <alvherre@kurilemu.de> wrote: > > On 2026-May-26, shveta malik wrote: > > > On Tue, May 26, 2026 at 3:09 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > > > Hi, > > > > > > Thanks Shveta, I agree with the additional sanity checks and comments. > > > > Thanks, v3 LGTM. > > Thanks! Pushed with some cosmetic changes. Thank you for pushing the patch! > > One of them was that I wasn't sure of the reason why ApplyLauncherMain() > isn't requesting logical decoding disable upon dropping the slot, so > there's now an XXX comment there. This is because the launcher can acquire only CONFLICT_DETECTION_SLOT slot and it is a physical slot. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Masahiko Sawada <sawada.mshk@gmail.com> — 2026-05-27T18:56:07Z
On Wed, May 27, 2026 at 11:25 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > On Wed, May 27, 2026 at 11:20 AM Álvaro Herrera <alvherre@kurilemu.de> wrote: > > > > On 2026-May-26, shveta malik wrote: > > > > > On Tue, May 26, 2026 at 3:09 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > > > > > Hi, > > > > > > > > Thanks Shveta, I agree with the additional sanity checks and comments. > > > > > > Thanks, v3 LGTM. > > > > Thanks! Pushed with some cosmetic changes. > > Thank you for pushing the patch! Some buildfarm members reported failures[1][2]. The newly added test works only on builds without injection points because the logical slot "test_slot" is removed during tests using injection points, otherwise it still exists on the primary server at the end of 051_effective_wal_level.pl. Regards, [1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=loach&dt=2026-05-27%2018%3A25%3A00 [2] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=goldfish&dt=2026-05-27%2018%3A15%3A02 -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Masahiko Sawada <sawada.mshk@gmail.com> — 2026-05-27T19:21:18Z
On Wed, May 27, 2026 at 11:56 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > On Wed, May 27, 2026 at 11:25 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > > > On Wed, May 27, 2026 at 11:20 AM Álvaro Herrera <alvherre@kurilemu.de> wrote: > > > > > > On 2026-May-26, shveta malik wrote: > > > > > > > On Tue, May 26, 2026 at 3:09 PM Imran Zaheer <imran.zhir@gmail.com> wrote: > > > > > > > > > > Hi, > > > > > > > > > > Thanks Shveta, I agree with the additional sanity checks and comments. > > > > > > > > Thanks, v3 LGTM. > > > > > > Thanks! Pushed with some cosmetic changes. > > > > Thank you for pushing the patch! > > Some buildfarm members reported failures[1][2]. The newly added test > works only on builds without injection points because the logical slot > "test_slot" is removed during tests using injection points, otherwise > it still exists on the primary server at the end of > 051_effective_wal_level.pl. > I've attached the patch to fix the issue by moving the new test earlier in the test script, so it no longer depends on slot state. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Álvaro Herrera <alvherre@kurilemu.de> — 2026-05-27T21:20:43Z
On 2026-May-27, Masahiko Sawada wrote: > > Some buildfarm members reported failures[1][2]. The newly added test > > works only on builds without injection points because the logical slot > > "test_slot" is removed during tests using injection points, otherwise > > it still exists on the primary server at the end of > > 051_effective_wal_level.pl. > > > > I've attached the patch to fix the issue by moving the new test > earlier in the test script, so it no longer depends on slot state. Ah, so that's why the submitted patch had the test placed at an awkward place in the file! I moved it to the end because I failed to realize this problem. I didn't see this failure locally, and CI didn't see it either. I wonder if we're lacking coverage of the no-injection-points case in CI. Thanks for the patch, please feel free to push it. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "People get annoyed when you try to debug them." (Larry Wall)
-
Re: effective_wal_level is not decreasing after using REPACK (CONCURRENTLY)
Masahiko Sawada <sawada.mshk@gmail.com> — 2026-05-27T22:56:48Z
On Wed, May 27, 2026 at 2:20 PM Álvaro Herrera <alvherre@kurilemu.de> wrote: > > On 2026-May-27, Masahiko Sawada wrote: > > > > Some buildfarm members reported failures[1][2]. The newly added test > > > works only on builds without injection points because the logical slot > > > "test_slot" is removed during tests using injection points, otherwise > > > it still exists on the primary server at the end of > > > 051_effective_wal_level.pl. > > > > > > > I've attached the patch to fix the issue by moving the new test > > earlier in the test script, so it no longer depends on slot state. > > Ah, so that's why the submitted patch had the test placed at an awkward > place in the file! I moved it to the end because I failed to realize > this problem. I didn't see this failure locally, and CI didn't see it > either. I wonder if we're lacking coverage of the no-injection-points > case in CI. I happened to notice the failure when testing other codes locally. It would be good to have no-injection-points cases in CI. > Thanks for the patch, please feel free to push it. Pushed. Thank you for reviewing the patch! Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com