diff --git a/doc/src/sgml/logicaldecoding.sgml b/doc/src/sgml/logicaldecoding.sgml index 1765ea6c87e..53f1466e429 100644 --- a/doc/src/sgml/logicaldecoding.sgml +++ b/doc/src/sgml/logicaldecoding.sgml @@ -1097,16 +1097,18 @@ OutputPluginWrite(ctx, true); In synchronous replication setup, a deadlock can happen, if the transaction - has locked [user] catalog tables exclusively. This is because logical decoding of - transactions can lock catalog tables to access them. To avoid this users - must refrain from taking an exclusive lock on [user] catalog tables. This can - happen in the following ways: + has locked [user] catalog tables exclusively. See + for information on user + catalog tables. This is because logical decoding of transactions can lock + catalog tables to access them. To avoid this users must refrain from taking + an exclusive lock on [user] catalog tables. This can happen in the following + ways: Issuing an explicit LOCK on pg_class - (or any other catalog table) in a transaction. + in a transaction. @@ -1141,6 +1143,10 @@ OutputPluginWrite(ctx, true); + + Note that these commands that can cause deadlock apply to not only explicitly + indicated system catalog tables above but also to any other [user] catalog + table. @@ -1311,7 +1317,7 @@ stream_commit_cb(...); <-- commit of the streamed transaction [user] catalog tables exclusively. To avoid this users must refrain from having locks on catalog tables (e.g. explicit LOCK command) in such transactions. - (See for the details.) + See for the details.