@@ -1097,16 +1097,18 @@ OutputPluginWrite(ctx, true);
1097
1097
1098
1098
<para>
1099
1099
In synchronous replication setup, a deadlock can happen, if the transaction
1100
- has locked [user] catalog tables exclusively. This is because logical decoding of
1101
- transactions can lock catalog tables to access them. To avoid this users
1102
- must refrain from taking an exclusive lock on [user] catalog tables. This can
1103
- happen in the following ways:
1100
+ has locked [user] catalog tables exclusively. See
1101
+ <xref linkend="logicaldecoding-capabilities"/> for information on user
1102
+ catalog tables. This is because logical decoding of transactions can lock
1103
+ catalog tables to access them. To avoid this users must refrain from taking
1104
+ an exclusive lock on [user] catalog tables. This can happen in the following
1105
+ ways:
1104
1106
1105
1107
<itemizedlist>
1106
1108
<listitem>
1107
1109
<para>
1108
1110
Issuing an explicit <command>LOCK</command> on <structname>pg_class</structname>
1109
- (or any other catalog table) in a transaction.
1111
+ in a transaction.
1110
1112
</para>
1111
1113
</listitem>
1112
1114
@@ -1141,6 +1143,10 @@ OutputPluginWrite(ctx, true);
1141
1143
</para>
1142
1144
</listitem>
1143
1145
</itemizedlist>
1146
+
1147
+ Note that these commands that can cause deadlock apply to not only explicitly
1148
+ indicated system catalog tables above but also to any other [user] catalog
1149
+ table.
1144
1150
</para>
1145
1151
</sect2>
1146
1152
</sect1>
@@ -1311,7 +1317,7 @@ stream_commit_cb(...); <-- commit of the streamed transaction
1311
1317
[user] catalog tables exclusively. To avoid this users must refrain from
1312
1318
having locks on catalog tables (e.g. explicit <command>LOCK</command> command)
1313
1319
in such transactions.
1314
- ( See <xref linkend="logicaldecoding-synchronous-caveats"/> for the details.)
1320
+ See <xref linkend="logicaldecoding-synchronous-caveats"/> for the details.
1315
1321
</para>
1316
1322
</listitem>
1317
1323
</itemizedlist>
0 commit comments