Description of problem: Clusvcadm always starts services on the local node, irrespective of options. We have a 3 node cluster: node1 node2 node3 and 3 virtual services: vm:service1 vm:service2 vm:service3 vm:service2 is preferred on node2 according to the failover domain however running the following on node1: clusvcadm -e vm:service2 clusvcadm -e vm:service2 -m node2 clusvcadm -e vm:service -F will _all_ start the service on node1. The only way to start the service on the correct node is to login to it and run clusvcadm locally. We have exactly the same problem using the luci interface. Version-Release number of selected component (if applicable): rgmanager-2.0.31-1.el5 How reproducible: always Steps to Reproduce: 1. Configure a 3 node cluster 2. Configure 3 VM services 3. Configure 3 failover domains so that each VM is preferred on a particular node 4. experiment with either clusvcadm or luci to start up VMs Actual results: VMs will always start up on the local node that clusvcadm is running on, or on the node that luci is running on Expected results: Luci should start up the service on the correct node when 'Start service on node <blah>' is selected in the menus. clusvcadm should honour the -m and -F flags Additional info: Attaching cluster.conf
Created attachment 292937 [details] cluster.conf that demonstrates the behaviour
clusvcadm -Fe X works for me clusvcadm -r X -[nm] Y works for me clusvcadm -e X -[nm] Y doesn't...? The -e worked in RHEL50, but regressed in RHEL51: @@ -237,15 +263,24 @@ break; case RG_ENABLE: + #if 0 if (req->rr_target != 0 && req->rr_target != my_id()) { error = RG_EFORWARD; ret = RG_NONE; break; } + #endif This bit broke enable-on-member.
[root@molly daemons]# clusvcadm -Fe test Local machine trying to enable service:test...Success service:test is now running on frederick Service configuration: <failoverdomains> <failoverdomain name="all" ordered="1" restricted="1"> <failoverdomainnode name="molly" priority="2"/> <failoverdomainnode name="frederick" priority="1"/> </failoverdomain> </failoverdomains> <service name="test" domain="all"/> With patch applied, -e -m works too.
Created attachment 292945 [details] RHEL 5.2 patch
Also tried -e X -F at Nick's suggestion. I don't understand why that would fail given the customer's configuration.
Created attachment 292954 [details] RHEL 5.1 patch
First patch makes -e -m work on RHEL5.2 Second patch makes -Fe and -e -m work on RHEL5.1
This bugzilla has Keywords: Regression. Since no regressions are allowed between releases, it is also being proposed as a blocker for this release. Please resolve ASAP.
Note that in RHEL 5.2 with central processing enabled, '-F' is implied. This is a behavioral change; users wishing the old behavior (e.g. enable X starts X on node that run clusvcadm) should not use the central processing option.
Patches in CVS / RHEL51 and RHEL5.
Patch in HEAD
FWIW, test packages here: http://people.redhat.com/lhh/rgmanager-2.0.31-1.el5.bz430272.src.rpm http://people.redhat.com/lhh/rgmanager-2.0.31-1.el5.bz430272.x86_64.rpm http://people.redhat.com/lhh/rgmanager-2.0.31-1.el5.bz430272.ia64.rpm
(Packages also fix bug #430272)
Forgot one: http://people.redhat.com/lhh/rgmanager-2.0.31-1.el5.bz430272.i386.rpm
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2008-0353.html