Thread
-
Call EndCopyFrom() after initial table sync in logical replication
Shinya Kato <shinya11.kato@gmail.com> — 2026-05-04T07:58:12Z
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. -- Best regards, Shinya Kato NTT OSS Center