Discussion:
[drbd-mc] Bug: applying changes from the GUI to clone-group throws exception
Christian Frömmel
2010-12-05 12:50:17 UTC
Permalink
Hello,

we just stepped on a bug in the GUI, which leads to an unusable interface.

We're using a clone-group in our crm-configuration. So we build a group
and a clone-statement using that group (within the crm-cli):

group grp_Services res_service_1 res_service_2
clone clone_Services grp_Services meta clone-max="2" notify="false"

(The whole test-configuration is attached).

In the cluster this is working well, but when doing changes - or just
preview changes - on this clone-group in the GUI, the GUI throws an
exception. This makes it quite unusable, as it is not possible anymore
apply changes the this clone-resource.

The GUI throws the following exception:

AppError.Text
release: 0.8.4
java: Sun Microsystems Inc. 1.6.0_22

uncaught exception
java.lang.NullPointerException
null
drbd.gui.resources.ServiceInfo.setLocations(ServiceInfo.java:2833)
drbd.gui.resources.GroupInfo.apply(GroupInfo.java:276)
drbd.gui.resources.ServiceInfo$21$1.run(ServiceInfo.java:2640)
java.lang.Thread.run(Unknown Source)

The corresponding log-entry in the GUI-console is:


[root at cluster-test-1:~#] /usr/sbin/cibadmin --obj_type resources -R -X
'<meta_attributes id="grp_Services-meta_attributes"></meta_attributes>'
Call cib_replace failed (-22): The object/attribute does not exist
<null>

It seems that the GUI is expecting only plain resources in the
clone-Statement, not groups.


(We had some other effects while setting up the clone-group with the GUI,
like the GUI messed up the clone-configuration within pacemaker. It did
not use the group in the clone-resource, but the first resource from the
group. But I cannot reproduce it on my test-cluster, so it may be a
side-effect of the error above.)

Kind regards,
Christian
--
Systemadministration/Netzwerk

SYSTEM CONCEPT GmbH - Freiheitstrasse 124/126 - 15738 Wildau
Gerichtsstand: K?nigs Wusterhausen - HRB 14334P
Gesch?ftsf?hrung: Markus Schelhorn - Registergericht Potsdam
-------------- next part --------------
node $id="4fe89dd6-3b35-4690-98fb-173aed0101d5" cluster-test-2
node $id="90beef91-36b8-46ef-9a2f-dc9e04f6fdff" cluster-test-1
primitive res_service_1 lsb:dummy_service_1 \
operations $id="res_service_1-operations" \
op start interval="0" timeout="90" \
op stop interval="0" timeout="15" \
op monitor interval="15" timeout="90" start-delay="15"
primitive res_service_2 lsb:dummy_service_2 \
operations $id="res_service_2-operations" \
op start interval="0" timeout="90" \
op stop interval="0" timeout="15" \
op monitor interval="15" timeout="90" start-delay="15"
group grp_Services res_service_1 res_service_2
clone clone_Services grp_Services \
meta clone-max="2" notify="false"
location loc_clone_Services_node1 clone_Services 0: cluster-test-1
location loc_clone_Services_node2 clone_Services 0: cluster-test-2
property $id="cib-bootstrap-options" \
dc-version="1.0.8-042548a451fce8400660f6031f4da6f0223dd5dd" \
cluster-infrastructure="Heartbeat" \
symmetric-cluster="false" \
stonith-enabled="false" \
last-lrm-refresh="1291548583"
Rasto Levrinc
2010-12-07 17:34:47 UTC
Permalink
Post by Christian Frömmel
Hello,
we just stepped on a bug in the GUI, which leads to an unusable interface.
We're using a clone-group in our crm-configuration. So we build a group
group grp_Services res_service_1 res_service_2 clone clone_Services
grp_Services meta clone-max="2" notify="false"
(The whole test-configuration is attached).
In the cluster this is working well, but when doing changes - or just
preview changes - on this clone-group in the GUI, the GUI throws an
exception. This makes it quite unusable, as it is not possible anymore
apply changes the this clone-resource.
AppError.Text
release: 0.8.4
java: Sun Microsystems Inc. 1.6.0_22
uncaught exception java.lang.NullPointerException null
drbd.gui.resources.ServiceInfo.setLocations(ServiceInfo.java:2833)
drbd.gui.resources.GroupInfo.apply(GroupInfo.java:276)
drbd.gui.resources.ServiceInfo$21$1.run(ServiceInfo.java:2640)
java.lang.Thread.run(Unknown Source)
[root at cluster-test-1:~#] /usr/sbin/cibadmin --obj_type resources -R -X
'<meta_attributes id="grp_Services-meta_attributes"></meta_attributes>'
Call cib_replace failed (-22): The object/attribute does not exist
<null>
It seems that the GUI is expecting only plain resources in the
clone-Statement, not groups.
Actually cloned groups are implemented, but it was not part of automatic
testing and it was broken.

I've fixed your particular problem here:
http://oss.linbit.com/drbd-mc/dmctest-0.8.5.dev.1.jar

Before the next release I'll make a proper testing of cloned groups as well.

Thanks,

Rasto
--
: Dipl-Ing Rastislav Levrinc
: DRBD MC http://oss.linbit.com/drbd-mc/
: DRBD MC http://www.drbd.org/mc/management-console/
: DRBD/HA support and consulting http://www.linbit.com/
DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.
Loading...