Bug #41168 Merlin agent reports Innodb errors on a box without innodb configured
Submitted: 2 Dec 2008 10:02 Modified: 9 Jul 2010 8:06
Reporter: Simon Mudd (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Agent Severity:S3 (Non-critical)
Version:2.0.0.7102, 2.1.0.1067 OS:Any
Assigned to: Mark Leith CPU Architecture:Any
Tags: windmill

[2 Dec 2008 10: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 10:31] Simon Mudd
The server concerned has a my.cnf containing skip-innodb
[3 Dec 2008 17:13] Marcos Palacios
The level of the message will be changed.
[12 Dec 2008 17: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 2009 12: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 2009 12: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
[1 Jul 2010 10:26] Enterprise Tools JIRA Robot
Mark Leith writes: 
Patch pushed to 2.2:

1890 Mark Leith	2010-07-01
     Bug#41168 / EM-2896 - Merlin agent reports Innodb errors on a box without innodb configured
       - Add ER_NOT_SUPPORTED_YET to known errors, and report at warning level
       - Clean up the error message that it is more descriptive, these happen not only when skip-innodb is defined

   modified:
     src/job_collect_mysql.c

And trunk:

1902 Mark Leith	2010-07-01
     Bug#41168 / EM-2896 - Merlin agent reports Innodb errors on a box without innodb configured
      - Add ER_NOT_SUPPORTED_YET to known errors, and report at warning level
      - Clean up the error message that it is more descriptive, these happen not only when skip-innodb is defined
[7 Jul 2010 21:13] Enterprise Tools JIRA Robot
Andy Bang writes: 
In build 2.2.2.1729.
[8 Jul 2010 23:23] Enterprise Tools JIRA Robot
Marcos Palacios writes: 
Verified fixed in agent build 2.2.2.1729.
[9 Jul 2010 8:06] MC Brown
A note has been added to the 2.2.2 changelog: 

        Errors determining <literal>InnoDB</literal> data within                                                                                           
        &merlin_agent; would be reported, even                                                                                                             
        when <literal>InnoDB</literal> had been disabled on the                                                                                            
        instance.