• Michael Paquier's avatar
    Fix timeout handling in logical replication worker · 3f60f690
    Michael Paquier authored
    The timestamp tracking the last moment a message is received in a
    logical replication worker was initialized in each loop checking if a
    message was received or not, causing wal_receiver_timeout to be ignored
    in basically any logical replication deployments.  This also broke the
    ping sent to the server when reaching half of wal_receiver_timeout.
    
    This simply moves the initialization of the timestamp out of the apply
    loop to the beginning of LogicalRepApplyLoop().
    
    Reported-by: Jehan-Guillaume De Rorthais
    Author: Julien Rouhaud
    Discussion: https://postgr.es/m/CAOBaU_ZHESFcWva8jLjtZdCLspMj7vqaB2k++rjHLY897ZxbYw@mail.gmail.com
    Backpatch-through: 10
    3f60f690
worker.c 44 KB