Description:
All 3 of the Security Alterations rules (Security Alterations Detected: User Privileges Granted, Security Alterations Detected: User Privileges Revoked, Security Alterations Have Been Detected) have 'null' for the Recommended Action instead of "None specified.". As a result, when any of these are scheduled you get the following error in the Miscellaneous Log:
-------------- String literal 'null' --------------
java.lang.Exception at com.mysql.util.Str.nullOrEmpty(Str.java:110) at com.mysql.util.Str.replace(Str.java:142) at com.mysql.merlin.server.monitors.MonitorOutput.substituteServerName(MonitorOutput.java:126) at com.mysql.merlin.server.monitors.MonitorOutput.<init>(MonitorOutput.java:77) at com.mysql.merlin.server.monitors.PlainTextMonitorOutput.<init>(PlainTextMonitorOutput.java:17) at com.mysql.merlin.server.monitors.dao.Schedule.advisorStateChanged(Schedule.java:312) at com.mysql.merlin.server.monitors.dao.Schedule.processAdvisorTriggered(Schedule.java:496) at com.mysql.merlin.server.monitors.AdvisorJob.evaluationComplete(AdvisorJob.java:342) at com.mysql.merlin.server.monitors.AdvisorJob.scanThresholds(AdvisorJob.java:410) at com.mysql.merlin.server.monitors.AdvisorJob.evaluate(AdvisorJob.java:189) at com.mysql.merlin.server.monitors.AdvisorJob.processDatum(AdvisorJob.java:336) at com.mysql.merlin.server.monitors.AdvisorJob.processCollect(AdvisorJob.java:141) at com.mysql.merlin.server.event.CollectEvent.processCollect(CollectEvent.java:23) at com.mysql.merlin.server.event.AbstractEventDispatcher$1.run(AbstractEventDispatcher.java:33) at com.mysql.merlin.server.event.SynchronousEventDispatcher.postEvent(SynchronousEventDispatcher.java:5) at com.mysql.merlin.server.event.AbstractEventDispatcher.processCollect(AbstractEventDispatcher.java:31) at com.mysql.merlin.server.collect.dao.SingleThreadedDelayedWriter.postCollectEvents(SingleThreadedDelayedWriter.java:61) at com.mysql.merlin.server.collect.dao.SingleThreadedDelayedWriter$PostCollectEvent.run(SingleThreadedDelayedWriter.java:224) at com.mysql.merlin.server.ReportingRunnable.run(ReportingRunnable.java:43) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:65) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:168) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:595) --------------
How to repeat:
- install a 1.3 dashboard and agent
- startup dash and bring in 1.3 advisor bundle
- start agent
- Advisors tab, Add to Schedule page
- expand Security Advisors
- click on any of Security Alterations rules and notice 'null' for Recommended Action
- click check boxes on all 3 Security Alterations rules
- click schedule and set Frequency to 1 minute
- wait at least 1 minute
| Settings tab, Logs page, Miscellaneous logs should have String literal 'null' erros