Bug 2222055

Summary: A non-promoted clone instance gets relocated when a cloned resource starts on a node with higher promotable score
Product: Red Hat Enterprise Linux 9 Reporter: Chris Lumens <clumens>
Component: pacemakerAssignee: Reid Wahl <nwahl>
Status: VERIFIED --- QA Contact: cluster-qe <cluster-qe>
Severity: high Docs Contact:
Priority: high    
Version: 9.3CC: amemon, cfeist, cluster-maint, jrehova, jserrano, kgaillot, msmazova, nwahl, phagara, sbradley, slevine
Target Milestone: rcKeywords: Triaged
Target Release: 9.3   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: pacemaker-2.1.6-5.el9 Doc Type: Bug Fix
Doc Text:
Cause: Promotable clone instances were assigned in numerical order with promoted instances first. Consequence: If a promoted instance needed to start, an unpromoted instance could be unnecessarily restarted, since the instance numbers could change. Fix: Roles are considered when assigning instance numbers to nodes. Result: There are no unnecessary restarts.
Story Points: ---
Clone Of: 1931023 Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version: 2.1.7
Embargoed:
Bug Depends On: 1931023    
Bug Blocks:    

Comment 2 Ken Gaillot 2023-07-12 14:15:42 UTC
Fixed in upstream main branch as of commit b561198

Comment 14 Markéta Smazová 2023-08-11 13:49:27 UTC
after fix:
---------
>   [root@virt-539 ~]# rpm -q pacemaker
>   pacemaker-2.1.6-7.el9.x86_64

Configure a promotable clone resource in a two-node cluster:
>   [root@virt-538 ~]# pcs resource create stateful ocf:pacemaker:Stateful promotable

Each node has a different promotable score. Node "virt-538" has promotable score 10 and node "virt-539" has promotable score 5:
>   [root@virt-538 ~]# pcs status --full
>   Cluster name: STSRHTS26029
>   Cluster Summary:
>     * Stack: corosync (Pacemaker is running)
>     * Current DC: virt-538 (1) (version 2.1.6-7.el9-6fdc9deea29) - partition with quorum
>     * Last updated: Fri Aug 11 13:48:57 2023 on virt-538
>     * Last change:  Fri Aug 11 13:48:09 2023 by root via cibadmin on virt-538
>     * 2 nodes configured
>     * 4 resource instances configured

>   Node List:
>     * Node virt-538 (1): online, feature set 3.17.4
>     * Node virt-539 (2): online, feature set 3.17.4

>   Full List of Resources:
>     * fence-virt-538	(stonith:fence_xvm):	 Started virt-538
>     * fence-virt-539	(stonith:fence_xvm):	 Started virt-539
>     * Clone Set: stateful-clone [stateful] (promotable):
>       * stateful	(ocf:pacemaker:Stateful):	 Promoted virt-538
>       * stateful	(ocf:pacemaker:Stateful):	 Unpromoted virt-539

>   Node Attributes:
>     * Node: virt-538 (1):
>       * master-stateful                 	: 10
>     * Node: virt-539 (2):
>       * master-stateful                 	: 5

>   Migration Summary:

>   Tickets:

>   PCSD Status:
>     virt-538: Online
>     virt-539: Online

>   Daemon Status:
>     corosync: active/enabled
>     pacemaker: active/enabled
>     pcsd: active/enabled

Resource stickiness is 1, which is a default for RHEL9:
>   [root@virt-538 ~]# pcs resource defaults
>   Meta Attrs: build-resource-defaults
>     resource-stickiness=1

Inject a stop operation simulation for the resource on the promoted node "virt-538":
>   [root@virt-538 ~]# crm_simulate -LR --op-inject stateful_stop_0@virt-538=0
>   Current cluster status:
>     * Node List:
>       * Online: [ virt-538 virt-539 ]

>     * Full List of Resources:
>       * fence-virt-538	(stonith:fence_xvm):	 Started virt-538
>       * fence-virt-539	(stonith:fence_xvm):	 Started virt-539
>       * Clone Set: stateful-clone [stateful] (promotable):
>         * Promoted: [ virt-538 ]
>         * Unpromoted: [ virt-539 ]

>   Performing Requested Modifications:
>     * Injecting stateful_stop_0@virt-538=0 into the configuration

>   Transition Summary:
>     * Promote    stateful:1     ( Stopped -> Promoted virt-538 )


RESULT: Resource instance did not move. It was re-promoted on virt-538 (node with the higher promotable score).

marking verified in pacemaker-2.1.6-7.el9