Blob Blame History Raw
commit 997d82d30040dc9749db46823a933555e586e645
Author: Daniel Black <daniel.black@openquery.com>
Date:   Thu Jan 30 11:34:54 2014 +1100

    Break mysql innodb data on full sections
    
    Patch from Jan Mara
    https://github.com/jmara/ubuntu-munin-mysql/commit/77ae2b2d8bc1233e0f0b0e6346d66b955441ba14

diff --git a/plugins/node.d/mysql_.in b/plugins/node.d/mysql_.in
index 3376036..fb70e24 100644
--- a/plugins/node.d/mysql_.in
+++ b/plugins/node.d/mysql_.in
@@ -1070,7 +1070,7 @@ sub parse_innodb_status {
 
     # Add a dummy section to the end in case the innodb status output
     # has been truncated (Happens for status > 64K characters)
-    $_ .= "\n----------\nDUMMY\n";
+    $_ .= "\n----------\nDUMMY\n----------\n";
 
     my %section_map = (
 
@@ -1114,7 +1114,12 @@ sub parse_innodb_status {
 my $innodb_bigint_rx = qr{([[a-fA-F\d]+)(?: (\d+))?};
 
 
-sub match_dashes { return m/\G-+\n(?!-)/gc; }
+sub match_new_section {
+   return m/\G
+            -+\n                 # ---------------------------
+            (?= [A-Z\/ ]+\n      # SECTION NAME
+                [=-]+\n)/gcx;    # --------------------------- ('=' on end of output)
+}
 
 
 sub skip_line    { return m/\G.*\n/gc; }
@@ -1133,7 +1138,7 @@ sub parse_section {
 
     #warn substr($_, pos(), 10);
     for (;;) {
-	return if match_dashes();
+	return if match_new_section;
 	next if $parser->();
 	skip_line();
     }