Thread

  1. Re: Call EndCopyFrom() after initial table sync in logical replication

    Fujii Masao <masao.fujii@gmail.com> — 2026-05-07T15:04:27Z

    On Mon, May 4, 2026 at 4:58 PM Shinya Kato <shinya11.kato@gmail.com> wrote:
    >
    > Hi hackers,
    >
    > While reading the logical replication initial table sync code, I
    > noticed that copy_table() calls BeginCopyFrom() and CopyFrom() but
    > never calls the matching EndCopyFrom().
    >
    > EndCopyFrom() calls pgstat_progress_end_command(), which resets
    > st_progress_command to PROGRESS_COMMAND_INVALID. Without that call,
    > the backend status entry continues to report an active COPY operation
    > while the tablesync worker proceeds to WAL catchup. As a result,
    > pg_stat_progress_copy shows a stale entry for the entire WAL catchup
    > phase.
    >
    > Attached patch adds EndCopyFrom(cstate) immediately after
    > CopyFrom(cstate) returns.
    
    Thanks for the patch! It looks good to me.
    Barring any objections, I will commit the patch.
    
    Regards,
    
    -- 
    Fujii Masao