<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hello Pacemaker community,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have several two-node postgres 14 clusters that I am migrating from EL7 (Scientific Linux 7) to EL9 (AlmaLinux 9.2).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My configuration:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Cluster size: two nodes<o:p></o:p></p>
<p class="MsoNormal">Postgres version: 14<o:p></o:p></p>
<p class="MsoNormal">Corosync version: 3.1.7-1.el9   <o:p></o:p></p>
<p class="MsoNormal">Pacemaker version: 2.1.5-9.el9_2 <o:p></o:p></p>
<p class="MsoNormal">pcs version: 0.11.4-7.el9_2<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The migration has mostly gone smoothly, but I did notice one non-trivial change in recovery behavior between EL7 and EL9.  The recovery scenario is:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">With the cluster running normally with one primary DB (i.e. Promoted) and one standby (i.e. Unpromoted), reboot one of the cluster nodes without first shutting down the cluster on that node.  The reboot is a “clean” system shutdown done
 via either the “reboot” or “shutdown” OS commands.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">On EL7, this scenario caused the cluster to shut itself down on the node before the OS shutdown completed, and the DB resource was stopped/shutdown before the OS stopped.  On EL9, this is not the case, the DB resource is not stopped before
 the OS shutdown completes.  This leads to errors being thrown when the cluster is started back up on the rebooted node similar to the following:<br>
<br>
  * pgsql probe on mynode returned 'error' (Instance "pgsql" controldata indicates a running secondary instance, the instance has probably crashed)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">While this is not too serious for a standby DB instance, as the cluster is able to recover it back to the standby/Unpromoted state, if you reboot the Primary/Promoted DB node, the cluster is not able to recover it (because that DB still
 thinks it’s a primary), and the node is fenced.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Is this an intended behavior for the versions of pacemaker/corosync that I’m running, or a regression?   It may be possible to put an override into the systemd unit file for corosync to force the cluster to shutdown before the OS stops,
 but I’d rather not do that if there’s a better way to handle this recovery scenario.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks for any advice,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Larry<o:p></o:p></p>
</div>
</body>
</html>