Doc: Update caveats in synchronous logical replication.
authorAmit Kapila
Thu, 24 Jun 2021 03:43:46 +0000 (09:13 +0530)
committerAmit Kapila
Thu, 24 Jun 2021 03:43:46 +0000 (09:13 +0530)
Reported-by: Simon Riggs
Author: Takamichi Osumi
Reviewed-by: Amit Kapila
Backpatch-through: 9.6
Discussion: https://www.postgresql.org/message-id/20210222222847[email protected]

doc/src/sgml/logicaldecoding.sgml

index 1765ea6c87e6eec4da90fdd462305a69fdb7ff0d..53f1466e429b91bf9de9d1899a7004ae3171e218 100644 (file)
@@ -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.