I am running 8.7.11 and I saw in my morning report from /opt/zimbra/libexec/zmdbintegrityreport that the integrity check had failed. I opened a support ticket with Zimbra. They asked me to follow this document https://wiki.zimbra.com/wiki/Mysql_Crash_Recovery after requesting my mysql_error.log file.
My limited inspection of mysql_error.log shows this:
Code: Select all
...
InnoDB: (index "PRIMARY" of table "mboxgroup3"."mail_item")
InnoDB: Corruption of an index tree: table "mboxgroup3"."mail_item", index "PRIMARY",
InnoDB: father ptr page no 1965, child page no 1962
...
Code: Select all
2018-07-16 10:57:28 140645797340960 [Note] /opt/zimbra/common/sbin/mysqld: ready for connections.
Version: '10.1.25-MariaDB' socket: '/opt/zimbra/data/tmp/mysql/mysql.sock' port: 7306 Zimbra MariaDB binary distribution
2018-07-16 10:58:49 7feaa6bd4b00 InnoDB: Assertion failure in thread 140645796498176 in file btr0pcur.cc line 457
InnoDB: Failing assertion: btr_page_get_prev(next_page, mtr) == buf_block_get_page_no(btr_pcur_get_block(cursor))
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
Code: Select all
[zimbra@mail ~]$ mysql -e "check table mboxgroup3.mail_item"
ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query
Code: Select all
InnoDB: The log sequence number 9519241261 in ibdata file do not match the log sequence number 9519701606 in the ib_logfiles!
...
...
Recovering after a crash using tc.log
Starting crash recovery...
Crash recovery finished.
...
/opt/zimbra/common/sbin/mysqld: ready for connections.
Code: Select all
rm -rf /opt/zimbra/db/data/ib*
The user currently doesn't notice any issues nor does the system behave differently other than this error. Does anyone have a different approach to this problem? I was thinking putting it into recovery mode and looking for bad tables first:
Code: Select all
source ~/bin/zmshutil; zmsetvars
mysqlcheck --all-databases -S $mysql_socket -u root --password=$mysql_root_password
Any advice would be appreciated.
Jim