Package: munin-plugins-core
Version: 2.0.67-1~bpo10+1
Severity: normal
Tags: patch

Dear Maintainer,

   * What led up to the situation?
        munin plugin mysql_, invoked as for example mysql_qcache (or any other, 
sometimes (but not always) fails with errors like:

        Unknown section: Main thread process no. 21673, id 139511430366976, 
state: sleeping at /etc/munin/plugins/mysql_qcache line 1382

        thus resulting in VERY unusable mysql munin stats (about 20% visible, 
80% broken in my case)
        
   * What exactly did you do (or not do) that was effective (or
     ineffective)?

        tried upgrading munin-plugins-core all the way from 2.0.33-1, via 
2.0.49-1~bpo9+1:to 2.0.67-1~bpo10+1

   * What was the outcome of this action?

        error still sporadically happens

   * What outcome did you expect instead?

        I expected the plugin to not die with error, but instead returns 
available data.

After some debugging, I found out the problem is output of "show engine innodb 
status"
which sometimes (when mysql views are used in some way?) returns this output on 
which 
mysql_ barfs:

  --------------
  ROW OPERATIONS
  --------------
  0 queries inside InnoDB, 0 queries in queue
  2 read views open inside InnoDB
  1 RW transactions active inside InnoDB
  0 RO transactions active inside InnoDB
  1 out of 1000 descriptors used
  ---OLDEST VIEW---
  Normal read view
  Read view low limit trx n:o 14142166371
  Read view up limit trx id 14142166371
  Read view low limit trx id 14142166371
  Read view individually stored trx ids:
  -----------------
  Main thread process no. 21673, id 139511430366976, state: sleeping
  Number of rows inserted 9568126016, updated 1596177407, deleted 515944374, 
read 15378019524560
  0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 16020000.00 reads/s
  ----------------------------
  END OF INNODB MONITOR OUTPUT
  ============================

instead of this output which is parsed OK:

  --------------
  ROW OPERATIONS
  --------------
  0 queries inside InnoDB, 0 queries in queue
  0 read views open inside InnoDB
  0 RW transactions active inside InnoDB
  0 RO transactions active inside InnoDB
  0 out of 1000 descriptors used
  Main thread process no. 21673, id 139511430366976, state: sleeping
  Number of rows inserted 9568124954, updated 1596176891, deleted 515943708, 
read 15377906700512
  0.17 inserts/s, 1.67 updates/s, 0.00 deletes/s, 880245.13 reads/s
  ----------------------------
  END OF INNODB MONITOR OUTPUT
  ============================

Attached patch quickly removes the offending (non-standardly formatted) and
unused "---OLDEST VIEW---" section, thus fixing the issue.



-- System Information:
Debian Release: 9.8
  APT prefers oldstable
  APT policy: (500, 'oldstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-0.bpo.2-amd64 (SMP w/32 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages munin-plugins-core depends on:
ii  munin-common  2.0.67-1~bpo10+1
ii  perl          5.24.1-3+deb9u5

Versions of packages munin-plugins-core recommends:
pn  libnet-snmp-perl  <none>

Versions of packages munin-plugins-core suggests:
pn  acpi | lm-sensors                 <none>
pn  conntrack                         <none>
pn  default-mysql-client              <none>
ii  ethtool                           1:4.8-1+b1
ii  hdparm                            9.51+ds-1+deb9u1
ii  libcache-cache-perl               1.08-2
ii  libdbd-mysql-perl                 4.041-2
pn  libdbd-pg-perl                    <none>
ii  libhttp-date-perl                 6.02-1
ii  liblwp-useragent-determined-perl  1.07-1
pn  libnet-dns-perl                   <none>
pn  libnet-ip-perl                    <none>
pn  libnet-irc-perl                   <none>
pn  libnet-ldap-perl                  <none>
pn  libnet-netmask-perl               <none>
pn  libnet-telnet-perl                <none>
ii  libwww-perl                       6.15-1
pn  libxml-parser-perl                <none>
pn  libxml-simple-perl                <none>
pn  logtail                           <none>
ii  net-tools                         1.60+git20161116.90da8a0-1
ii  python3                           3.5.3-1
pn  ruby                              <none>
ii  smartmontools                     6.5+svn4324-1

-- no debconf information
--- /usr/share/munin/plugins/mysql_.orig        2021-03-08 11:57:43.000000000 
+0100
+++ /usr/share/munin/plugins/mysql_     2021-07-28 21:33:05.984676113 +0200
@@ -1348,6 +1348,9 @@
 sub parse_innodb_status {
     local $_ = shift;
 
+    # remove non-stanard (and useless) "---OLDEST VIEW---" section, as it 
breaks the plugin
+    s{^---OLDEST VIEW---\v.*?^-----------------\v}{}ms;
+
     # Add a dummy section to the end in case the innodb status output
     # has been truncated (Happens for status > 64K characters)
     $_ .= "\n----------\nDUMMY\n";

Reply via email to