Comment 4 for bug 978036

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

The issue is that InnoDB dictionary header points to XtraDB-specific SYS_STATS table at a tablespace location that is taken by something else. Since this was replicated from MySQL and not Percona Server, it shows that original database has been "touched" by XtraDB at some point and thus got SYS_STATS table and a pointer to it in the dictionary header. When the original database went back to InnoDB, it ignored the dictionary header fields it does not recognize but overwrote the SYS_STATS table. Upon the replication Percona Server tried to access SYS_STATS again at an overwritten location, causing the crash.

The workaround is to clear XtraDB-specific fields on all instances. For Percona Server:
1) Stop mysqld
2) $ printf '\0\0\0\0' | dd of=ibdata1 bs=1 seek=114778 count=4 conv=notrunc
3) $ printf '\0\0\0\0\0\0\0\0' | dd of=ibdata1 bs=1 seek=114982 count=8 conv=notrunc
4) Start mysqld with --skip-innodb-checksum --innodb_use_sys_stats_table
5) Stop mysqld
6) Start mysqld with regular options.