Bug #42040 | Count of monitored instances is inconsistent | ||
---|---|---|---|
Submitted: | 12 Jan 2009 9:02 | Modified: | 14 Jan 2009 23:07 |
Reporter: | Simon Mudd (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Enterprise Monitor: Web | Severity: | S3 (Non-critical) |
Version: | 2.0.1.7125 | OS: | Any |
Assigned to: | Eric Herman | CPU Architecture: | Any |
[12 Jan 2009 9:02]
Simon Mudd
[14 Jan 2009 12:35]
Eric Herman
Developer testing shows that there is no bug with server counting and host counting. This particular incident is a special case resulting from some past data corruption. In the past, we directed the customer to delete a server from inventory (actually I think some values were changed from "foo" to "foo.deleted") so that this half-created, half-deleted server would not prevent the application from starting. However, the server was still be counted in the instance count. The culprit was found using: SELECT * FROM inventory_instances WHERE type_id=2 AND instance_id NOT IN ( SELECT instance_id FROM group_members_v2 WHERE group_id = 1 ) Which shows us any server which is not a member of the "all servers" group. Then we did some queries on the instance_id and the parent_id to determine that this was, in fact the bogus server of the past. SELECT namespace, type_name, attribute_name, instance_name, dc1.value, FROM_UNIXTIME(MAX(dc1.end_time)/1000) AS time, instance_id, parent_id, dc1.instance_attribute_id FROM inventory_instance_attributes JOIN inventory_attributes USING (attribute_id) JOIN inventory_types USING (type_id) JOIN inventory_namespaces USING (namespace_id) JOIN inventory_instances USING (instance_id) JOIN dc_ng_string_now dc1 USING (instance_attribute_id) JOIN (SELECT instance_attribute_id, MAX(end_time) max_end FROM dc_ng_string_now GROUP BY instance_attribute_id) s ON dc1.instance_attribute_id = s.instance_attribute_id AND dc1.end_time = s.max_end WHERE instance_id = [PUT_INSTANCE_ID_OR_PARENT_ID_HERE] GROUP BY instance_attribute_id ORDER BY instance_name; And we were able to see this was, in fact the case. Next I advised him to (A) stop tomcat (B) delete the row in inventory_instances (C) start tomcat (D) observe that the count is now correct. Since there is a foreign key constraint, the deletion required is: BEGIN ; DELETE FROM inventory_instance_attributes WHERE instance_id = [INSTANCE_ID]; DELETE FROM inventory_instances WHERE instance_id = [INSTANCE_ID]; commit; After this, the showed correctly.
[14 Jan 2009 23:07]
Bill Weber
closing since this looks like it was a special case