commit 097a06d35d3bae67aa82baa56cddccc654df3c79
Author: James Coleman <jtc331@gmail.com>
Date:   Thu Jul 25 15:06:32 2019 -0500

    Document autovacuum interruption
    
    It's important users be able to know (without looking at the source
    code) that running DDL or DDL-like commands frequently can interrupt
    autovacuum enough that it will effectively never run, resulting in
    lots of pain with dead tuples.

diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
index 1972c20a8f..1b6fe468a1 100644
--- a/doc/src/sgml/maintenance.sgml
+++ b/doc/src/sgml/maintenance.sgml
@@ -825,6 +825,24 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
     <literal>autovacuum_vacuum_cost_limit</literal> storage parameters have been set
     are not considered in the balancing algorithm.
    </para>
+
+   <para>
+    Autovacuum workers generally avoid interfering with other commands.
+    If a process attempts to acquire a <literal>SHARE UPDATE EXCLUSIVE</literal>
+    lock (the lock type held by autovacuum), lock acquisition will interrupt
+    the autovacuum.  However if the autovacuum is running to prevent transaction
+    ID wraparound (i.e., the autovacuum query name in the
+    <structname>pg_stat_activity</structname> view ends with
+    <literal>(for wraparound)</quote>), the autovacuum is not automatically
+    interrupted.
+
+   <warning>
+    <para>
+      Regularly running commands requiring a <literal>SHARE UPDATE EXCLUSIVE</literal>
+      lock (e.g., ANALYZE) can effectively prevent autovacuums from ever
+      completing.
+    </para>
+   </warning>
   </sect2>
  </sect1>
 
