The MySQL plugins sometimes fail to parse InnoDB status output:
2010/08/27-23:05:02 [17683] Error output from mysql_files_tables:
2010/08/27-23:05:02 [17683] Unknown section: ---TRANSACTION 1 2450838625, ACTIVE 838 sec, OS thread id 27 fetching rows, thread declared inside InnoDB 92 at /etc/opt/ts/munin/plugins/mysql_files_tables line 1091.
2010/08/27-23:05:02 [17683] Service 'mysql_files_tables' exited with status 255/0.
The problem is that it assumes a line of dashes starts a new section. However, InnoDB transaction report sometimes includes this:
---TRANSACTION 1 2450841301, ACTIVE 808 sec, OS thread id 65 starting index read
...
...
---TRANSACTION 1 2450838625, ACTIVE 831 sec, OS thread id 27 fetching rows, thread declared inside InnoDB 104
The line of dashes makes the plugin think '---TRANSACTION' starts a new section.
A simple fix for this is to change match_dashes in plugins/mysql_ as follows:
sub match_dashes { return m/\G-+\n(?!-)/gc; }
The negative lookahead assertion (?!-) prevents a line of dashes followed by another line starting with a dash from matching.