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 1vfF8l-0009nR-1R for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Jan 2026 10:27:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vfF8k-000AyN-1L for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Jan 2026 10:27:14 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfF8j-000AyE-34 for pgsql-hackers@lists.postgresql.org; Mon, 12 Jan 2026 10:27:14 +0000 Received: from mout.gmx.net ([212.227.17.21]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfF8b-0000Xk-2V for pgsql-hackers@lists.postgresql.org; Mon, 12 Jan 2026 10:27:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1768213619; x=1768818419; i=mbanck@gmx.net; bh=3OVPwHX9MmvXvY40ofZJBBuEhVEdfIo4cpOB8z4sNhM=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:Message-ID:References: MIME-Version:Content-Type:In-Reply-To:Content-Transfer-Encoding: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=k79ju2ORMaqVlzFCW/toL6sZvNl2HJxF7SiKm7DJV3n/KCNv5C/h6+axzKat7Pz3 VklER4YCEU+lG97SfdTgF/QnPUjsZh3CzFksw/nvAiOXGMHd/nOA/5j2oAwRPGlNE BXsERDevNlz+WnuUF+B5isWcoSIZ6y1+Zoxd3jpq4XGjTtj0aaxpTYw/HpOTyMvPC +0sPzHIEZLZ7VIA+ASxm/z6aP/B30R3LGJM6DNODrmzrd4tVz77D++QaFXVgYstv/ nxN6MMhMvFCl0w+FXXkvh2edOtQkRW1se2YkzqlVGxGu4NelJIdgaJRd3MovPidaZ /1wz2c6JAwP3dN065g== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from lightning.p46.dedyn.io ([88.217.119.76]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mdvqg-1wDkft2n7W-00e7NF; Mon, 12 Jan 2026 11:26:59 +0100 Received: from mbanck by lightning.p46.dedyn.io with local (Exim 4.92) (envelope-from ) id 1vfF8U-0002Wm-SL; Mon, 12 Jan 2026 11:26:58 +0100 Date: Mon, 12 Jan 2026 11:26:58 +0100 From: Michael Banck To: Soumya S Murali Cc: Fujii Masao , VASUKI M , Andres Freund , PostgreSQL Hackers , =?utf-8?Q?=C3=81lvaro?= Herrera , melanieplageman@gmail.com, juanjo.santamaria@gmail.com Subject: Re: [PATCH] Expose checkpoint reason to completion log messages. Message-ID: <20260112102658.GD21237@p46.dedyn.io;lightning.p46.dedyn.io> References: <695cea55.050a0220.253a0.ed88SMTPIN_ADDED_BROKEN@mx.google.com> <695e1440.170a0220.1f9596.3d45SMTPIN_ADDED_BROKEN@mx.google.com> <695feb17.170a0220.1fcace.843fSMTPIN_ADDED_BROKEN@mx.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Provags-ID: V03:K1:b2qhlBavMBSMdfSy3QnEY2xMUzyCKuLNxvDZStqlM88CtHFxXQu pjoO3Gzjo5HF2WdyuOcpN50dPEDU400cFKTzYU21RoDWaRSmyFaIX4632dnZvb5kDOEorKz XD7Fq6isyLNadQdD8sYrvWMl2mgW+2CTe1PDkHPgDtoTRKLYbj210p+fJaLc3upVrUZ+Sn4 oUNAJIR2z95E44pwVgI+g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:5p01T+Pr+kw=;gI8aXzzerrmdF+tYNQ40BEUps6t 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 Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On Mon, Jan 12, 2026 at 12:53:54PM +0530, Soumya S Murali wrote: > Based on the feedback received, I have reworked and implemented a > helper function so that both checkpoint start and completion messages > use the same wording and would remain in sync, extending the same > reason reporting to restart points for completeness and better > observability, ensuring consistent terminology with existing log > output, had removed the previous use of global state and instead > passed checkpoint flags explicitly and have fixed formatting and > whitespace issues noted during review. > Also, I have tested and validated the logic successfully. I have > attached the updated patch for further review. > Kindly review the patch and let me know the feedback. >=20 > Regards, > Soumya > From 30e3c62695a643daf96ffca3b504a79d2a761f77 Mon Sep 17 00:00:00 2001 > From: Soumya > Date: Mon, 12 Jan 2026 12:36:29 +0530 > Subject: [PATCH] Expose checkpoint reason in completion log messages >=20 > --- > src/backend/access/transam/xlog.c | 78 ++++++++++++++++------- > src/test/recovery/t/019_replslot_limit.pl | 2 +- > 2 files changed, 55 insertions(+), 25 deletions(-) >=20 > diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/tran= sam/xlog.c > index 22d0a2e8c3..63d1e56ca1 100644 > --- a/src/backend/access/transam/xlog.c > +++ b/src/backend/access/transam/xlog.c > @@ -6714,6 +6714,49 @@ ShutdownXLOG(int code, Datum arg) > } > } > =20 > +/* > +* Format checkpoint reason flags consistently for log messages. > +* The returned string is suitable for inclusion after > +* "checkpoint starting:" or inside "checkpoint complete (...)". > +*/ Indentation of the comment is wrong here, the asterisks should be all on the same column. > +static const char * > +CheckpointReasonString(int flags) > +{ > + static char buf[128]; > + bool first =3D true; pgindent complains about the above line as well: | { | static char buf[128]; |- bool first =3D true; |+ bool first =3D true; |=20 | buf[0] =3D '\0'; =20 > + buf[0] =3D '\0'; > + > +#define APPEND_REASON(str) \ > + do { \ > + if (!first) \ > + strcat(buf, " "); \ > + strcat(buf, (str)); \ > + first =3D false; \ > + } while (0) Those ending backslashes also don't seem to line up when 4-space tabs are set. But pgindent doesn't change them so maybe it is correct as-is? I am also not sure whether the above is current best-practise for Postgres code, I'd have to look deeper (or maybe somebody else can review this). > + if (flags & CHECKPOINT_IS_SHUTDOWN) > + APPEND_REASON("shutdown"); > + if (flags & CHECKPOINT_END_OF_RECOVERY) > + APPEND_REASON("end-of-recovery"); > + if (flags & CHECKPOINT_FAST) > + APPEND_REASON("fast"); > + if (flags & CHECKPOINT_FORCE) > + APPEND_REASON("force"); > + if (flags & CHECKPOINT_WAIT) > + APPEND_REASON("wait"); > + if (flags & CHECKPOINT_CAUSE_XLOG) > + APPEND_REASON("wal"); > + if (flags & CHECKPOINT_CAUSE_TIME) > + APPEND_REASON("time"); > + if (flags & CHECKPOINT_FLUSH_UNLOGGED) > + APPEND_REASON("flush-unlogged"); > + > +#undef APPEND_REASON > + > + return buf; I am still not sure whether this will be a regression for translation of those strings. Otherwise, the patch looks sane to me. Michael