Bug #41168 Merlin agent reports Innodb errors on a box without innodb configured
Submitted: 2 Dec 2008 11:02 Modified: 3 Dec 2008 18:13
Reporter: Simon Mudd
Status: Verified
Category:Monitoring: Agent Severity:S3 (Non-critical)
Version:2.0.0.7102, 2.1.0.1067 OS:Any
Assigned to: MEM Agent Devs Target Version:
Tags: windmill
Triage: Needs Triage: D3 (Medium) / R2 (Low) / E2 (Low)

[2 Dec 2008 11:02] Simon Mudd
Description:
We see in the log files:

2008-12-02 10:56:00: (critical) executing 'SHOW /*!50000 ENGINE */ INNODB STATUS' failed:
Cannot call SHOW INNODB STATUS because skip-innodb is defined
2008-12-02 10:56:28: (critical) executing 'SHOW /*!50000 ENGINE */ INNODB STATUS' failed:
Cannot call SHOW INNODB STATUS because skip-innodb is defined
2008-12-02 10:57:00: (critical) last message repeated 29 times
2008-12-02 10:57:00: (critical) executing 'SHOW /*!50000 ENGINE */ INNODB STATUS' failed:
Cannot call SHOW INNODB STATUS because skip-innodb is defined
2008-12-02 10:58:00: (critical) last message repeated 27 times
2008-12-02 10:58:00: (critical) executing 'SHOW /*!50000 ENGINE */ INNODB STATUS' failed:
Cannot call SHOW INNODB STATUS because skip-innodb is defined
2008-12-02 10:59:00: (critical) last message repeated 27 times
2008-12-02 10:59:00: (critical) executing 'SHOW /*!50000 ENGINE */ INNODB STATUS' failed:
Cannot call SHOW INNODB STATUS because skip-innodb is defined
2008-12-02 11:00:00: (critical) last message repeated 27 times
2008-12-02 11:00:00: (critical) executing 'SHOW /*!50000 ENGINE */ INNODB STATUS' failed:
Cannot call SHOW INNODB STATUS because skip-innodb is defined

The box being monitored has no innodb engine:

How to repeat:
1. Install mysqld without innodb support.
2. Add an agent to monitor it.
3. Check agent log files.

Suggested fix:
Don't warn about innodb errors if the mysqld does not support innodb.
[2 Dec 2008 11:31] Simon Mudd
The server concerned has a my.cnf containing skip-innodb
[3 Dec 2008 18:13] Marcos Palacios
The level of the message will be changed.
[12 Dec 2008 18:24] Mark Leith
Do we actually know that skip-innodb is defined when we print this error (the error makes
it seem like it does). 

If so, then log this in the info level, rather than critical, because it's obvious at
that point that InnoDB stats are not required.
[2 Jul 14:18] Eric Herman
jan suggests perhaps we should not log it any any level, and instead send it back to the
MEM Dashboard as a data item ... mysql::innodbstatus->available or some such.
[2 Jul 14:36] Jan Kneschke
mysql> show ENGINE INNODB STATUS\G
ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined

#define ER_NOT_SUPPORTED_YET 1235

We have to add that error-code to known, expected ones for SHOW INNODB STATUS