From d4782ccfc89e1e61ebf68176b005bacb3395e987 Mon Sep 17 00:00:00 2001 From: Pavan Deolasee Date: Fri, 7 Nov 2025 13:26:50 +0530 Subject: [PATCH 1/7] Reduce lock strength in manager process Reduced lock strength in manager process for cleaning up bdr.queue catalog to prevent deadlocks. --- .../docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml b/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml index facbeb436b..23450b39f3 100644 --- a/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml +++ b/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml @@ -249,3 +249,12 @@ relnotes: type: Security impact: Highest + +- relnote: Reduce lock strength used by the manager process while cleaning up bdr.queue catalog + details: | + We were opening the table with ShareRowExclusiveLock, which seems excessively strict for simply deleting old rows from the table. This can result in a deadlock if there are prepared transactions that had inserted into the table, but can't be resolved by the manager because the manager itself gets blocked on the lock. + component: BDR + jira: BDR-6278 + addresses: "46426" + type: Bug Fix + impact: Medium From 64392d20ee53f433e6aeaa650360a039614b4c6d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 07:57:45 +0000 Subject: [PATCH 2/7] update generated release notes --- product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx b/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx index d8f38a438c..6ea4737a2f 100644 --- a/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx +++ b/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx @@ -101,6 +101,8 @@ Skip reconfiguring subscriptions if there are no leadership changes.

46519 BDR5.8.0
Subscriber-only nodes will not take a lock when running DDL

Subscriber-only nodes will no longer attempt to take a lock on the cluster when running DDL. The DDL will be executed locally and not replicated to other nodes.

47233 +BDR5.8.0
Reduce lock strength used by the manager process while cleaning up bdr.queue catalog

We were opening the table with ShareRowExclusiveLock, which seems excessively strict for simply deleting old rows from the table. This can result in a deadlock if there are prepared transactions that had inserted into the table, but can't be resolved by the manager because the manager itself gets blocked on the lock.

+
46426 BDR5.8.0
Fixed deadlock issue in bdr_init_physical.

Fixed deadlock between bdr_init_physical cleaning unwanted node data and concurrent monitoring queries.

46952 BDR5.8.0
Fixed a consistency issue in node join where a joining node could possibly miss some data sent to it from the source node.

Fixed an issue when a new node joining the cluster finishes CATCHUP phase before getting its replication progress against all data nodes. This could have caused a new node to be out of sync with the cluster.

From 155bcb1ac0d6287d7caa25ad4cff8489bb479937 Mon Sep 17 00:00:00 2001 From: Mireia Perez Fuster Date: Tue, 4 Nov 2025 12:02:35 +0000 Subject: [PATCH 3/7] Changed release date --- product_docs/docs/pgd/6.1/rel_notes/src/relnote_6.1.2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/pgd/6.1/rel_notes/src/relnote_6.1.2.yml b/product_docs/docs/pgd/6.1/rel_notes/src/relnote_6.1.2.yml index cb3519bf26..0147896d24 100644 --- a/product_docs/docs/pgd/6.1/rel_notes/src/relnote_6.1.2.yml +++ b/product_docs/docs/pgd/6.1/rel_notes/src/relnote_6.1.2.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/EnterpriseDB/docs/refs/heads/develop/tools/automation/generators/relgen/relnote-schema.json product: EDB Postgres Distributed version: 6.1.2 -date: 4 November 2025 +date: 6 November 2025 intro: | EDB Postgres Distributed 6.1.2 includes only bug fixes focused on improving stability and reliability. No new features or enhancements are included in this release. Please see the details below. From ab33bb1878365b9bf7046c498b2832690f246f04 Mon Sep 17 00:00:00 2001 From: Mireia Perez Fuster Date: Fri, 7 Nov 2025 12:23:47 +0000 Subject: [PATCH 4/7] Performed editorial changes --- product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml b/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml index 23450b39f3..63e19a8fe8 100644 --- a/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml +++ b/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml @@ -249,10 +249,9 @@ relnotes: type: Security impact: Highest - -- relnote: Reduce lock strength used by the manager process while cleaning up bdr.queue catalog +- relnote: Fixed deadlock during PGD queue cleanup by reducing the lock strength of the manager process details: | - We were opening the table with ShareRowExclusiveLock, which seems excessively strict for simply deleting old rows from the table. This can result in a deadlock if there are prepared transactions that had inserted into the table, but can't be resolved by the manager because the manager itself gets blocked on the lock. + Reduced the lock strength used by the manager process when deleting old rows from the `bdr.queue`` catalog. The previous use of `ShareRowExclusiveLock` was excessively strict and could lead to a deadlock scenario when concurrently trying to clean up and resolve prepared transactions that had inserted data. component: BDR jira: BDR-6278 addresses: "46426" From 4464e1ba82d6e1e1c2d454093d807a9605113293 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 12:24:24 +0000 Subject: [PATCH 5/7] update generated release notes --- product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx | 2 +- product_docs/docs/pgd/6.1/rel_notes/index.mdx | 2 +- product_docs/docs/pgd/6.1/rel_notes/pgd_6.1.2_rel_notes.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx b/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx index 6ea4737a2f..755ef970b1 100644 --- a/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx +++ b/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx @@ -101,7 +101,7 @@ Skip reconfiguring subscriptions if there are no leadership changes.

46519 BDR5.8.0
Subscriber-only nodes will not take a lock when running DDL

Subscriber-only nodes will no longer attempt to take a lock on the cluster when running DDL. The DDL will be executed locally and not replicated to other nodes.

47233 -BDR5.8.0
Reduce lock strength used by the manager process while cleaning up bdr.queue catalog

We were opening the table with ShareRowExclusiveLock, which seems excessively strict for simply deleting old rows from the table. This can result in a deadlock if there are prepared transactions that had inserted into the table, but can't be resolved by the manager because the manager itself gets blocked on the lock.

+BDR5.8.0
Fixed deadlock during PGD queue cleanup by reducing the lock strength of the manager process

Reduced the lock strength used by the manager process when deleting old rows from the bdr.queue`` catalog. The previous use of ShareRowExclusiveLock` was excessively strict and could lead to a deadlock scenario when concurrently trying to clean up and resolve prepared transactions that had inserted data.

46426 BDR5.8.0
Fixed deadlock issue in bdr_init_physical.

Fixed deadlock between bdr_init_physical cleaning unwanted node data and concurrent monitoring queries.

46952 diff --git a/product_docs/docs/pgd/6.1/rel_notes/index.mdx b/product_docs/docs/pgd/6.1/rel_notes/index.mdx index 640e2c5a53..2aa27a4fb7 100644 --- a/product_docs/docs/pgd/6.1/rel_notes/index.mdx +++ b/product_docs/docs/pgd/6.1/rel_notes/index.mdx @@ -20,7 +20,7 @@ The EDB Postgres Distributed documentation describes the latest version of EDB P | Release Date | EDB Postgres Distributed | |---|---| -| 04 Nov 2025 | [6.1.2](./pgd_6.1.2_rel_notes) | +| 06 Nov 2025 | [6.1.2](./pgd_6.1.2_rel_notes) | | 09 Oct 2025 | [6.1.1](./pgd_6.1.1_rel_notes) | | 19 Aug 2025 | [6.1.0](./pgd_6.1.0_rel_notes) | | 25 Jun 2025 | [6.0.2](./pgd_6.0.2_rel_notes) | diff --git a/product_docs/docs/pgd/6.1/rel_notes/pgd_6.1.2_rel_notes.mdx b/product_docs/docs/pgd/6.1/rel_notes/pgd_6.1.2_rel_notes.mdx index 104266e085..c113da7fe9 100644 --- a/product_docs/docs/pgd/6.1/rel_notes/pgd_6.1.2_rel_notes.mdx +++ b/product_docs/docs/pgd/6.1/rel_notes/pgd_6.1.2_rel_notes.mdx @@ -6,7 +6,7 @@ originalFilePath: product_docs/docs/pgd/6.1/rel_notes/src/relnote_6.1.2.yml editTarget: originalFilePath --- -Released: 4 November 2025 +Released: 6 November 2025 EDB Postgres Distributed 6.1.2 includes only bug fixes focused on improving stability and reliability. No new features or enhancements are included in this release. Please see the details below. From b1d8f96eb8440241380425faebd9c384f2c998d0 Mon Sep 17 00:00:00 2001 From: Mireia Perez Fuster Date: Fri, 7 Nov 2025 12:44:24 +0000 Subject: [PATCH 6/7] Typo --- product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml b/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml index 63e19a8fe8..deac9b077a 100644 --- a/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml +++ b/product_docs/docs/pgd/5.8/rel_notes/src/relnote_5.8.0.yml @@ -251,7 +251,7 @@ relnotes: - relnote: Fixed deadlock during PGD queue cleanup by reducing the lock strength of the manager process details: | - Reduced the lock strength used by the manager process when deleting old rows from the `bdr.queue`` catalog. The previous use of `ShareRowExclusiveLock` was excessively strict and could lead to a deadlock scenario when concurrently trying to clean up and resolve prepared transactions that had inserted data. + Reduced the lock strength used by the manager process when deleting old rows from the `bdr.queue` catalog. The previous use of `ShareRowExclusiveLock` was excessively strict and could lead to a deadlock scenario when concurrently trying to clean up and resolve prepared transactions that had inserted data. component: BDR jira: BDR-6278 addresses: "46426" From c6f684a8f302de4df86a910ccc254d6c372017ce Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 12:45:35 +0000 Subject: [PATCH 7/7] update generated release notes --- product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx b/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx index 755ef970b1..7d69ee5165 100644 --- a/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx +++ b/product_docs/docs/pgd/5.8/rel_notes/pgd_5.8.0_rel_notes.mdx @@ -101,7 +101,7 @@ Skip reconfiguring subscriptions if there are no leadership changes.

46519 BDR5.8.0
Subscriber-only nodes will not take a lock when running DDL

Subscriber-only nodes will no longer attempt to take a lock on the cluster when running DDL. The DDL will be executed locally and not replicated to other nodes.

47233 -BDR5.8.0
Fixed deadlock during PGD queue cleanup by reducing the lock strength of the manager process

Reduced the lock strength used by the manager process when deleting old rows from the bdr.queue`` catalog. The previous use of ShareRowExclusiveLock` was excessively strict and could lead to a deadlock scenario when concurrently trying to clean up and resolve prepared transactions that had inserted data.

+BDR5.8.0
Fixed deadlock during PGD queue cleanup by reducing the lock strength of the manager process

Reduced the lock strength used by the manager process when deleting old rows from the bdr.queue catalog. The previous use of ShareRowExclusiveLock was excessively strict and could lead to a deadlock scenario when concurrently trying to clean up and resolve prepared transactions that had inserted data.

46426 BDR5.8.0
Fixed deadlock issue in bdr_init_physical.

Fixed deadlock between bdr_init_physical cleaning unwanted node data and concurrent monitoring queries.

46952