EDB Postgres Distributed 5.9.1 release notes v5.9.1

Released: 5 December 2025

This is a patch release of PGD 5, which includes several enhancements and bug fixes.

Features

ComponentVersionDescriptionAddresses
BDR5.9.1
Added support for LDAP authentication to Connection Manager.

Connection Manager now supports the same LDAP authentication features as PostgreSQL, with the exception that OpenLDAP configuration files and environment variables are not supported.

Enhancements

ComponentVersionDescriptionAddresses
PGD CLI5.9.1
Added Details column to cluster verify --verbose --arch output.

The cluster verify command now includes a Details column in the architecture verification section when using the --verbose option. This column provides specific, detailed information about any issues encountered during the architecture check.

PGD Proxy5.9.1
Added the -V, --version flag to PGD Proxy.

Added the -V, --version flag to the pgd-proxy binary to verify the installed PGD Proxy version.

51980
BDR5.9.1
Support for encrypted server side certificates.

Connection Manager now supports the PostgreSQL ssl_passhrase_command option to decrypt the server private key.

53695
BDR5.9.1
Only synchronize relevant PGD role settings.

The role synchronization logic has been refined to only apply role settings from the source node if they are global, or are specifically configured for the PGD database on the source node.

BDR5.9.1
Emit warning message for synchronous_standby_names clash with commit scope.

Added a new sanity check that emits a warning during startup if the PostgreSQL configuration parameter synchronous_standby_names is configured in a way that might clash with a PGD commit scope. This helps administrators quickly identify and correct potential misconfigurations.

Changes

ComponentVersionDescriptionAddresses
BDR5.9.1
Upgraded internal library version.

Upgraded the project's Golang runtime to version 1.24.0.

Bug Fixes

ComponentVersionDescriptionAddresses
BDR5.9.1
Fixed an issue whereby a connection is silently dropped in the Connection Manager.

The fix improves the handling of authentication failures in the Connection Manager.

BDR5.9.1
Fixed an issue whereby Connection Manager crashed when full hostname is used in the pg_hba.conf address field.

The fix also corrects the handling of hostname suffixes. Since hostname matching is not supported by the Connection Manager, HBA rules using hostnames or hostname suffixes are now correctly ignored by the Connection Manager, preventing instability.

BDR5.9.1
Improved Connection Manager routing change logic.

Resolved an issue where the Connection Manager dropped existing client connections whenever a write-leader or read-only node routing change occurred. With this fix, client connections are no longer affected by a routing refresh, as long as the PGD node they are currently connected to remains operational.

BDR5.9.1
Fixed unexpected subscription and slot creation involving subscriber-only and witness nodes.

Resolved an issue where subscriptions or replication slots were incorrectly created between subscriber-only nodes and witness nodes. This fix prevents the incorrect creation of both subscriptions and replication slots between subscriber-only nodes and witness nodes.

PGD CLI5.9.1
Ensure child origins are cleaned up when a PGD node parts.

Resolved a bug whereby child origins remained on a PGD node after the parting operation was complete.

BDR5.9.1
Fixed writer error could not open temporary file after restart.

This issue occurred when streaming a large transaction, and the writer restarted only to find the temporary file name had been incorrectly freed. The bug was introduced with parallel apply and is resolved now.

53341
BDR5.9.1
Fixed consensus schema version compatibility issue affecting PGD upgrades.

Resolved a compatibility problem encountered during upgrades from PGD versions previous to 5.6.0 to newer releases. The issue was caused by added fields in the bdr.node_group_routing_info catalog, which caused interoperability failures with pgd-proxy when using the bdr.raft_catalog_read_consistency feature in mixed version clusters.

51027
PGD CLI5.9.1
Backported Connection Manager group options to pgd group commands.

Resolved an issue where Connection Manager options were not included when the it was backported to PGD 5. These options are now backported and available for use with the group get-option, group set-option, and group show commands.

BDR5.9.1
Fixed the bdr.msgb_connect hang by introducing a connection timeout.

Resolved an issue where the bdr.msgb_connect function could hang indefinitely due to a missing network timeout setting. The fix adds the a timeout to the function.

53442
BDR5.9.1
Connection Manager now starts and responds on its configured ports on all nodes, even those that are not currently part of a node group with routing enabled.

In these cases, the configuration inherited from the top-level node group is automatically applied.

BDR5.9.1
Fixed a unique constraint violation error that could occur during an UPDATE operation on tables configured with both primary and unique keys.

Previously, an UPDATE conflict with an update_missing resolution (which attempts to insert a new record) did not check for conflicts against existing primary or unique keys, leading to an error. This issue is now fixed by treating the scenario as an insert_exists conflict and applying the appropriate resolution logic.

50539, 51417, 54323
BDR5.9.1
Fixed join inconsistency during physical node setup.

Resolved an issue during physical node joins where the last transaction was redundantly included in the physical snapshot. The system now ensures this final transaction is excluded from the snapshot, as it will be correctly received later via logical replication, preventing duplication.

BDR5.9.1
Fixed various issues with EPAS role and profile synchronization.

Resolved various synchronization issues affecting the correct replication and management of EDB Postgres Advanced Server (EPAS) roles and profiles across the cluster.

52572
BDR5.9.1
Fixed cleanup of stale LSN records in bdr.node_peer_progress_mapping.

Resolved an issue where stale records from parted or dropped nodes were retained in the bdr.node_peer_progress_mapping table. Proper cleanup is now enforced to prevent these stale records from unnecessarily holding back the group replication slot.

50616, 50778, 50856
BDR5.9.1
Fixed spurious walsender timeouts during lengthy transactions.

Resolved an issue where spurious walsender timeouts could occur while the receiver process was flushing a lengthy transaction.

52018
BDR5.9.1
Fixed error during join due to altered non-database role settings.

Resolved an issue where the error database with remote_datid 0 not found in remote_databases occurred during the node join process. This failure happened when a role on the upstream source node had been altered to include a setting that was not specific to the database, causing a lookup failure during synchronization.

52859
BDR5.9.1
Ensure hard-coded CRDT merge functions are always available.

Resolved an issue where the system incorrectly required built-in, hard-coded CRDT merge functions to be explicitly registered in the bdr.crdt_handlers catalog.

52759
BDR5.9.1
Fixed incorrect error during bdr.commit_scope check.

Resolved an issue where the check for the configuration parameter bdr.commit_scope incorrectly raised an error if the PostgreSQL configuration was reloaded while a transaction was in progress, even when the parameter's value had not actually been modified.

51457
BDR5.9.1
Fixed EPAS role and profile replication issues.

Resolved two replication issues related to EPAS roles and profiles:

  • Fixed an issue where profile names were incorrectly quoted as string literals instead of identifiers, causing syntax errors when replicating CREATE ROLE or ALTER ROLE commands with the PROFILE clause.
  • Corrected a bug where ALTER ROLE commands that did not change passwords incorrectly included the PASSWORD clause, which triggered password reuse policy violations when profiles had PASSWORD_REUSE_TIME or PASSWORD_REUSE_MAX constraints.
54909
BDR5.9.1
Fixed consensus timeout errors during initial cluster setup.

Resolved consensus request timed out errors that could occur during BDR cluster initialization. This issue happened when vacuum operations on internal consensus tables interfered with critical group creation processes. The fix now defers vacuum operations until the cluster is properly established.