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.
+
+ 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.
[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.