Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wL0HP-001Srd-2G for pgsql-hackers@arkaria.postgresql.org; Thu, 07 May 2026 15:04:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wL0HM-004jOC-2U for pgsql-hackers@arkaria.postgresql.org; Thu, 07 May 2026 15:04:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wL0HM-004jO4-1J for pgsql-hackers@lists.postgresql.org; Thu, 07 May 2026 15:04:44 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wL0HK-000000011R5-1LFI for pgsql-hackers@postgresql.org; Thu, 07 May 2026 15:04:44 +0000 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2ba3e3c4f87so8496745ad.3 for ; Thu, 07 May 2026 08:04:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1778166280; cv=none; d=google.com; s=arc-20240605; b=Ayto6iMmZYNJb/x103sHArKDjF1UJCyvDDjVEaDJWkbcFaUW6vR++czN07nS6BwIqA spadMlTQGGNG4faS2OxNKSk8xKYQKMRPsSOT4F2Hy9VM8L42hpJkezVqw88d5AdfAQrH i+zPneBjp7V7rNQGl+LYTqTkLZ/OPZuvsn0228fdbOtoxsKzT4PG+P+zu6cm5+gKQ1x9 kyNHl9RO0kMTLtpUS6iYIbcCsOY8xFvEF4fDs3QGLspEETSE8nK6x2yL9LUayrSNpLAG 57Dv4QTFWrlTmkTV3TAwjAoZGMoDwfUNeWLuADc5M5HbO6iLLa8xfl6tnsjh40NZUiC1 BNeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=bKrb9tOYknyKsp+Zg8W8uDWYGOm37lmXL4P79FfH5+k=; fh=rNnQDxGORr3oKIgyydY/0od4vLJl9puOk4+45y2adAs=; b=WUp7+bBiAbp4qqz/pG/adqStC0GudD+1Y9wX82WNZg3RDXC6mIwGnx8RQRKE6B/z+0 8gbPFUk7q7jLQApQavQ/vOhlqYqCX0vekWjwmrpT1MGzckI247IjYI1iMk5XTXkJbFRX S8iQC8nCcprl+Nw/sliuTwrtt5WA0DISndzuhno9zCadDlEZ57XVOw5HjTBPMVX+4yfk Ml9u+SP2SLGeS9+86FE4DCzNRJC6ipixo7+2LdSwgT3XSPl8Pdhadct8aZZo37YRsDfH c8+4rqptOLljM8tQmHREQiYiJEv8nPDdqisqy1lsNbOQTyc/j+AhpExy2uv3rXIcdXKq ERAg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778166280; x=1778771080; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bKrb9tOYknyKsp+Zg8W8uDWYGOm37lmXL4P79FfH5+k=; b=aabqkKoI5Xs334mhQ6CHv2qBeCLWfJtbLZi5uqiVDGy4nw50//J3qVsE81ODZ7CFcH +KHNxVEctYz1bq3iNBd/9M6/vTz5nQWqQR3VPlRtaKNGK5Z3jld+nHeWBZseOrvv8ZW0 2h2o3UujSI+cdRjRdjlEea8haW4vFf2OTJkAf+5C9K8Q+jyVIwZeOdxgt9OYANfIHHDJ Vl1Db0PJ5UwvluNF0HJnh+NNwgZnRbrE2go9f86azC1V4xY4q8SEipvLnPqWQG/Wn5xE joOUFjmOTE1i+VXZS+zq1QP1+BM2cNEfJxrBdCwD7XZhUmN4uoVej9cdVNy4hR2MoeAb waSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778166280; x=1778771080; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bKrb9tOYknyKsp+Zg8W8uDWYGOm37lmXL4P79FfH5+k=; b=KAYNaItXXty+lNAEl5EhKSXHJh5Ctg7Fc0iovBg+273V97fm/E45IJtYRDTTGgl87r Mvd6ioBfHMNMkhQA1+SR825jPBeN7iTwH3SJZ0fMAPPf9YnLEMii8yyw+mJIYwSvEkY4 F9yg/9E2EprW91DdSReSRm95dfsWhF4YtTXdwuA4HHNIQI6hdXSxLsB/t3Cd4Ry81qrA Mc8FB+PRfOd/T9M/3g9DN4sSPORYOzf4Q4+6wtwnjAISS/WOuO8c4/Ou8Yy6VRb265Y1 c4YxEV8TnF0jslLZ6rcn3PU+ntKBuYfp230o+o4/GI4nsgN0XeUDeQmUAqB3YXSitmLm QSnA== X-Gm-Message-State: AOJu0YyNbRv0YP2MqLzQQyS5bqyuQor4nVnYhRbtp+HqTxtdtNxmctXl sF1N2qslqY0WLGauz/OYarDGLugQiuW2nKB1swkU2CP/fpLKmvACj0pXhdQdJ5fubo7PyiwDKFI Di1UNE1osMhsJURud2aAGj3Xy6K7672s= X-Gm-Gg: AeBDietJQogc4eM8BRDdw5plkRD4ufuae8oeI27cVSJ2a4g6nspvKjbmRJ4/SttZmRJ nSPl/J52O5zr6LgAh6ILhticsppMwp6empFLdXb/Z3lGqeSeL64V/JuvqaVx2VdLUPXt+Pbp4JG zUf1UXmaZVY3cyxbjCpfIJ4icEW6AzOyaxPZejUulm+n1v4CZ/DeNOEi3nw/VzuvTYFqo0qmwyU 1y2UZiqAy+MDOAj+gidHKvfJcysxWVvLL6MZsdG45SGGFSDRR9y3B7H6OOrIysdyYQAGhKafoOx qRGPStryyqh70L++lp91FTyZ/B/Qeommv3pYes7Vtr6DZBkpDjPGqRCFfnUpFLhVOLM6tch3wA= = X-Received: by 2002:a17:903:2f07:b0:2b2:4fcc:2687 with SMTP id d9443c01a7336-2ba79bf5da9mr93645725ad.31.1778166279595; Thu, 07 May 2026 08:04:39 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Fujii Masao Date: Fri, 8 May 2026 00:04:27 +0900 X-Gm-Features: AVHnY4L5QUx3L8a19LRlN0xC426QYFmYKX7KhJ9DODYdqFLSWlo8O7Vv2pcKivA Message-ID: Subject: Re: Call EndCopyFrom() after initial table sync in logical replication To: Shinya Kato Cc: PostgreSQL-development Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Mon, May 4, 2026 at 4:58=E2=80=AFPM Shinya Kato 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, --=20 Fujii Masao