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 1vVSj4-0046iv-0m for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Dec 2025 10:56:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vVSj2-0065qN-34 for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Dec 2025 10:56:17 +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 1vVSj2-0065qF-28 for pgsql-hackers@lists.postgresql.org; Tue, 16 Dec 2025 10:56:17 +0000 Received: from mail-vk1-xa33.google.com ([2607:f8b0:4864:20::a33]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vVSj2-000xBR-07 for pgsql-hackers@postgresql.org; Tue, 16 Dec 2025 10:56:16 +0000 Received: by mail-vk1-xa33.google.com with SMTP id 71dfb90a1353d-559a4d6b511so672256e0c.0 for ; Tue, 16 Dec 2025 02:56:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765882574; x=1766487374; darn=postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=QM2jig/yqxwcvXn8mhIfu2S3rxsafvCo65iTT74QDY4=; b=TeWojuXcBh4SQSxHUC6x0qxt20EYv8Xb0zu8s4zZK9R/C/QggQQtrFR1Pz7zn7bLCj T4NkU9eYzhapYMrBuRLt5urogG3rP9+r9ufreS10C6rXPy0sygapa9y6kLrJbbaUzkIr xTnXgSe+cWBrVhkOstskVuvZ2+tSj3Q0RaqLitCMFhwE99i58wDYEB8tzMDiQwMgczBn tgDsl31xSk2npur9F3adUeVV5yGWqpoAP2kItSBaaghfkpw2rdzvAZ7d0tYMKw2d4gcJ fy+MTeQLvmysoJ6qE7Ip2l5vFjJInnzv2w+FBOIpl2e0oup7fk2grEgOskRb+qBFSV6+ 562w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765882574; x=1766487374; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QM2jig/yqxwcvXn8mhIfu2S3rxsafvCo65iTT74QDY4=; b=O8jWvrpc8t5xjlO4inSmz+231+ZXelx6LUSuSpeNFxLBdE4VBH8cPV5u5c3r+Ge8ID W8zz7tIwBGdWsSsqimV8DF/T8YNT99wn0xpu3kzweCxteequDQscDlcpPku/x/scEdxx 7DIYMLjHvXCW7ovbZPNLljizDVP6MlAjcA93LAOLiZqhUIOmFitoazVOH4h3Vm9urQxV l6Y4G95wm06xsobVJDZ6p+Rbx4LKPN95lHUkfSS+XZhDa/xrwD3WgIfl8XylqfeAXRAX VeHlefEdjzJy/CNZ6SeQ+wbh4Q+IZcBAjYvoirKgf13/MLa41wk6iCrhI1/hPWE4+ivp zhWw== X-Gm-Message-State: AOJu0YzGYSEVys/MEyy4nSNzSV6uFEzYz6Cdw9ITpp47PByETy2tCKpV vPcU5j+U1fuXHKvuGhvduQ1fEtHCPAENddHLbKAoUEqIscbQkscOZEWhtJwRdLR/3yf4l4UUuJg ZiZDtx3V6zg4EJEFRa6hd9TBWP4PF/5wNd96+eAM= X-Gm-Gg: AY/fxX4aNFRTVYc/lnSPKiK9hDU/DUePRShC5EzjrLBKBBxtx54IjLq6v9PYx0gf8ch ff4tyyt6PE1WY9wWwri/Oyyu5r5UdpqLjuyRBmFoM0BXOx/++q8VmcDJEprMkr0L2gIHI9H3UTI 7EV7/c5c6nvUY7LOVy235VmSLTFXIzl2w/u6qs19GqeGLjlpLenaSwhUXbsy9DKa2oX5V6IMq6B anGB3MHCJlv0suUOjH/GZupMTPbk/Kn73T+XyVBeNPigBSPx8XVR9LkzQQvkEhp4Jgcgw== X-Google-Smtp-Source: AGHT+IFPuMkppu6r/IYpLNclFMl3TME5c8LWBfjUjGr08YmvdMSKGdTjR8hTV76vIDYIBr9pxZeLRw6F9N3yC+++G9A= X-Received: by 2002:a05:6102:3908:b0:5e8:1d93:921a with SMTP id ada2fe7eead31-5e8276a29bbmr4062378137.15.1765882573842; Tue, 16 Dec 2025 02:56:13 -0800 (PST) MIME-Version: 1.0 From: Nitin Jadhav Date: Tue, 16 Dec 2025 16:25:37 +0530 X-Gm-Features: AQt7F2pou4yuIHH-DDFl6Ld5MsT7dvPuKCznbXiBn1bLr5urfuN5g511RzHQs9A Message-ID: Subject: =?UTF-8?Q?Change_checkpoint=E2=80=91record=E2=80=91missing_PANIC_to_FATAL?= To: Pg Hackers Cc: Michael Paquier Content-Type: multipart/alternative; boundary="000000000000876bad06460f93c9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000876bad06460f93c9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, While working on [1], we discussed whether the redo-record-missing error should be a PANIC or a FATAL. We concluded that FATAL is more appropriate, as it is more appropriate for the current situation and achieves the intended behavior and also it is consistent with the backup_label path, which already reports FATAL in the same scenario. However, when the checkpoint record is missing, the behavior remains inconsistent: Without a backup_label, we currently raise a PANIC. With a backup_label, the same code path reports a FATAL.Since we have already made the redo=E2=80=91record=E2=80=91missing case to FATAL in 15f68ce , it seems reasonable to align the checkpoint=E2=80=91record=E2=80=91missing = case as well. The existing PANIC dates back to an era before online backups and archive recovery existed, when external manipulation of WAL was not expected and such conditions were treated as internal faults. With all such features, it is much more realistic for WAL segments to go missing due to operational issues, and such cases are often recoverable. So switching this to FATAL appears appropriate. Please share your thoughts. I am happy to share a patch including a TAP test to cover this behavior once we agree to proceed. [1]: https://www.postgresql.org/message-id/flat/CAMm1aWaaJi2w49c0RiaDBfhdCL6ztbr= 9m%3DdaGqiOuVdizYWYaA%40mail.gmail.com Best Regards, Nitin Jadhav Azure Database for PostgreSQL Microsoft --000000000000876bad06460f93c9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

While working on [1], we disc= ussed whether the redo-record-missing error should be a PANIC or a FATAL. W= e concluded that FATAL is more appropriate, as it is more appropriate for t= he current situation and achieves the intended behavior and also it is cons= istent with the backup_label path, which already reports FATAL in the same = scenario.

However, when the checkpoint record is missing, the behavi= or remains inconsistent: Without a backup_label, we currently raise a PANIC= . With a backup_label, the same code path reports a FATAL.Since we have alr= eady made the redo=E2=80=91record=E2=80=91missing case to FATAL in 15f68ce, it seems reasonable to align the checkpoint=E2=80= =91record=E2=80=91missing case as well. The existing PANIC dates back to an= era before online backups and archive recovery existed, when external mani= pulation of WAL was not expected and such conditions were treated as intern= al faults. With all such features, it is much more realistic for WAL segmen= ts to go missing due to operational issues, and such cases are often recove= rable. So switching this to FATAL appears appropriate.

Please share = your thoughts.

I am happy to share a patch including a TAP test to c= over this behavior once we agree to proceed.

[1]: https://www.postgresql.org/message-id/flat= /CAMm1aWaaJi2w49c0RiaDBfhdCL6ztbr9m%3DdaGqiOuVdizYWYaA%40mail.gmail.com=

Best Regards,
Nitin Jadhav
Azure Database for PostgreSQL
M= icrosoft
--000000000000876bad06460f93c9--