The explain_interval configuration option will make slon do an 'explain' for longer running log selection queries. This stopped working in 2.2 If set this to be one slon tries to do queries like the following: "explain COPY ( select log_origin, log_txid, NULL::integer, log_actionseq, NULL::text, NULL::text, log_cmdtype, NULL::integer, log_cmdargs from "_disorder_replica".sl_log_script where log_origin = 5 and log_txid >= "pg_catalog".txid_snapshot_xmax('1:1:') and log_txid < '13352185' and "pg_catalog".txid_visible_in_snapshot(log_txid, '13352183:13352185:13352183') union all select log_origin, log_txid, NULL::integer, log_actionseq, NULL::text, NULL::text, log_cmdtype, NULL::integer, log_cmdargs from "_disorder_replica".sl_log_script where log_origin = 5 and log_txid in (select * from "pg_catalog".txid_snapshot_xip('1:1:') except select * from "pg_catalog".txid_snapshot_xip('13352183:13352185:13352183') ) order by log_actionseq) TO STDOUT" syntax error at or near "COPY" Apparently you can't do an explain on a COPY.
I've run across this too. Upgraded from 2.1 to 2.2 on a master (9.3) to slave (8.4), had explain_interval set to 60 and it caused replication to stall.