Skip to content

Commit 7a4ecef

Browse files
author
Amit Kapila
committed
Doc: Update caveats in synchronous logical replication.
Reported-by: Simon Riggs Author: Takamichi Osumi Reviewed-by: Amit Kapila Backpatch-through: 9.6 Discussion: https://www.postgresql.org/message-id/20210222222847.tpnb6eg3yiykzpky@alap3.anarazel.de
1 parent 5179a1a commit 7a4ecef

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

doc/src/sgml/logicaldecoding.sgml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -755,16 +755,18 @@ OutputPluginWrite(ctx, true);
755755

756756
<para>
757757
In synchronous replication setup, a deadlock can happen, if the transaction
758-
has locked [user] catalog tables exclusively. This is because logical decoding of
759-
transactions can lock catalog tables to access them. To avoid this users
760-
must refrain from taking an exclusive lock on [user] catalog tables. This can
761-
happen in the following ways:
758+
has locked [user] catalog tables exclusively. See
759+
<xref linkend="logicaldecoding-capabilities"/> for information on user
760+
catalog tables. This is because logical decoding of transactions can lock
761+
catalog tables to access them. To avoid this users must refrain from taking
762+
an exclusive lock on [user] catalog tables. This can happen in the following
763+
ways:
762764

763765
<itemizedlist>
764766
<listitem>
765767
<para>
766768
Issuing an explicit <command>LOCK</command> on <structname>pg_class</structname>
767-
(or any other catalog table) in a transaction.
769+
in a transaction.
768770
</para>
769771
</listitem>
770772

@@ -782,6 +784,10 @@ OutputPluginWrite(ctx, true);
782784
</para>
783785
</listitem>
784786
</itemizedlist>
787+
788+
Note that these commands that can cause deadlock apply to not only explicitly
789+
indicated system catalog tables above but also to any other [user] catalog
790+
table.
785791
</para>
786792
</sect2>
787793
</sect1>

0 commit comments

Comments
 (0)