Crash on select from I_S.INNODB_CHANGED_PAGES
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
New
|
Undecided
|
Unassigned |
Bug Description
- Percona-
- Circular ("multi-master") replication with two servers
- innodb_
MySQL crashes every time when doing:
mysql> SELECT * FROM INFORMATION_
ERROR 2013 (HY000): Lost connection to MySQL server during query
Meanwhile, from log file, the first error happens exactly when the SELECT is run:
2016-01-27 11:49:49 14045 [ERROR] InnoDB: Tried to read 4096 bytes at offset 0. Was only able to read 0.
2016-01-27 11:49:49 7f7c241ca700 InnoDB: Operating system error number 22 in a file operation.
InnoDB: Error number 22 means 'Invalid argument'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://
2016-01-27 11:49:49 14045 [ERROR] InnoDB: File (unknown): 'read' returned OS error 122. Cannot continue operation
160127 11:49:49 mysqld_safe Number of processes running now: 0
160127 11:49:49 mysqld_safe mysqld restarted
2016-01-27 11:49:49 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_
2016-01-27 11:49:49 0 [Note] /usr/sbin/mysqld (mysqld 5.6.28-76.1-log) starting as process 14138 ...
2016-01-27 11:49:49 14138 [Warning] The option innodb (skip-innodb) is deprecated and will be removed in a future release
2016-01-27 11:49:49 14138 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Warning: innodb_
InnoDB: The log block size is set to 4096.
...
tags: | added: bitmap xtradb |
I received similar errors on Percona MySQL 5.5 and 5.6 but not 5.7 (5.7.14-7-log)
It occurs once a bitmap files exists...basically as soon as pages start changing.
mysql> select count(*) from INFORMATION_ SCHEMA. INNODB_ CHANGED_ PAGES;
ERROR 2013 (HY000): Lost connection to MySQL server during query
-- Error log shows
016-09-07 06:29:08 6134 [ERROR] InnoDB: Tried to read 4096 bytes at offset 0. Was only able to read 0. dev.mysql. com/doc/ refman/ 5.6/en/ operating- system- error-codes. html
2016-09-07 06:29:08 7f3c18060700 InnoDB: Operating system error number 22 in a file operation.
InnoDB: Error number 22 means 'Invalid argument'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://
2016-09-07 06:29:08 6134 [ERROR] InnoDB: File (unknown): 'read' returned OS error 122. Cannot continue operation
As per https:/ /bugs.launchpad .net/percona- xtradb- cluster/ 5.5/+bug/ 1500720/ comments/ 4
Versions NOT AFFECTED:
5.5.44-37.3 does NOT have this problem.
5.7.14-7-log does NOT have this problem.
Confirmed on crash/restart on: Both Ubuntu and CentOS
5.5.48-37.8
5.5.49-37.9
5.5.51-38.1
5.6.32-rel78.0
Similar to /bugs.launchpad .net/percona- server/ +bug/1131949 /bugs.launchpad .net/percona- server/ +bug/1529885 /bugs.launchpad .net/percona- xtradb- cluster/ 5.5/+bug/ 1500720
https:/
https:/
https:/
Changing log block size did not help prevent the error.
From reading other bugs I suspect it is within log0online.c
A simple diff between 5.5 working < and not working >
diff ./percona- server- 5.5.48- 37.8/storage/ innobase/ log/log0online. c ./percona- server- 5.5.44- 37.3/storage/ innobase/ log/log0online. c READ_WRITE_ CACHED, READ_WRITE_ CACHED, &success); srv_data_ home); home[srv_ data_home_ len-1] bitmap_ file->name, FN_REFLEN, "%s%c%s", bitmap_ file->name, FN_REFLEN, "%s%s", bitmap_ file->name, FN_REFLEN, "%s%s", srv_data_home, name);
547c547
< OS_FILE_
---
> OS_FILE_READ_WRITE,
707c707
< OS_FILE_
---
> OS_FILE_READ_WRITE, &success);
1497d1496
< size_t srv_data_home_len;
1501,1510c1500
< srv_data_home_len = strlen(
< if (srv_data_home_len
< && srv_data_
< != SRV_PATH_SEPARATOR) {
< ut_snprintf(
< srv_data_home, SRV_PATH_SEPARATOR, name);
< } else {
< ut_snprintf(
< srv_data_home, name);
< }
---
> ut_snprintf(
As expected 5.7 source code is significantly difference.