Bug #48598 Stack trace in logs when scheduling a rule with unsupported collections
Submitted: 6 Nov 2009 15:51 Modified: 9 Jan 2015 14:39
Reporter: Mark Leith Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Enterprise Monitor: Server Severity:S3 (Non-critical)
Version:2.2.0.1523 OS:Any
Assigned to: Assigned Account CPU Architecture:Any

[6 Nov 2009 15:51] Mark Leith
Description:
When trying to schedule a rule with an unknown attribute (such as scheduling "Binary Logging Is Limited" on a server with no binary log enabled), you get an error on screen, as expected:

"U0146 Unable to schedule rule "Binary Logging Is Limited" due to "mysql.MasterStatus.Binlog_Ignore_DB" data not being collected from server "servername:13306". It may be an unsupported collection for that server."

But you also get a stack trace in the logs at the default logging level:

asTransaction
com.mysql.etools.exception.ChildDoesNotExistAndAttributeException: E2101: ChildDoesNotExistAndAttributeException: [{mysql}.{Server}.{e9221681-7430-49a9-a7b5-5dc1c47037f4}, mysql.MasterStatus, e9221681-7430-49a9-a7b5-5dc1c47037f4, Binlog_Ignore_DB]
	at com.mysql.etools.monitor.bo.VariableBinder.bindCollections(VariableBinder.java:73)
	at com.mysql.etools.monitor.bo.RuleScheduleBuilder.bindCollections(RuleScheduleBuilder.java:56)
	at com.mysql.etools.monitor.pom.hib.HibPersistence$20.execute(HibPersistence.java:719)
	at com.mysql.etools.monitor.pom.hib.HibPersistence$20.execute(HibPersistence.java:718)
	at com.mysql.etools.monitor.pom.hib.HibernateExecutor.asTransaction(HibernateExecutor.java:195)
	at com.mysql.etools.monitor.pom.hib.SchemaMaintenanceExecutor.asTransaction(SchemaMaintenanceExecutor.java:197)
	at com.mysql.etools.monitor.pom.hib.HibPersistence.scheduleRule(HibPersistence.java:734)
	at com.mysql.etools.monitor.bo.Server.schedule(Server.java:495)
	at com.mysql.etools.monitor.bo.rule.RuleManager.persistSchedule(RuleManager.java:535)
	at com.mysql.etools.monitor.bo.rule.RuleManager.scheduleAndRunRule(RuleManager.java:523)
	at com.mysql.etools.monitor.bo.rule.RuleManager.scheduleAndRunRule(RuleManager.java:69)
	at com.mysql.merlin.ui.actions.monitor.advisors.DoSchedule.scheduleAndRunRules(DoSchedule.java:132)
	at com.mysql.merlin.ui.actions.monitor.advisors.DoSchedule.executeInner(DoSchedule.java:114)
	at com.mysql.merlin.ui.actions.BaseJSONAction.exec(BaseJSONAction.java:199)
	at com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2036)
	at com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2035)
	at com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:2019)
	at com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:2034)

How to repeat:
o Monitor an instance without log-bin enabled
o Try to schedule the  "Binary Logging Is Limited" rule on it
o Check the logs

Suggested fix:
Suppress the message unless using something like a debug log?