The reference page for pg_receivexlog
(http://www.postgresql.org/docs/9.4/static/app-pgreceivexlog.html) has
this note:
"""
When using pg_receivexlog instead of archive_command, the server will
continue to recycle transaction log files even if the backups are not
properly archived, since there is no command that fails. This can be
worked around by having an archive_command that fails when the file has
not been properly archived yet, for example:
archive_command = 'sleep 5 && test -f /mnt/server/archivedir/%f'
The initial timeout is necessary because pg_receivexlog works using
asynchronous replication and can therefore be slightly behind the master.
"""
ISTM that this should be replaced with something to the effect of, if
you are using pg_receivexlog instead of archive_command, you had better
use slots.