crash when upgrading to 5.7 if changed pages bitmap is ON
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.5 |
New
|
Undecided
|
Unassigned | |||
5.6 |
New
|
Undecided
|
Unassigned | |||
5.7 |
Triaged
|
High
|
Unassigned | |||
8.0 |
New
|
Undecided
|
Unassigned |
Bug Description
When upgrading Percona Server from 5.6 to 5.7, we consistently get a server crash upon starting 5.7 the first time, if the changed pages bitmap is used.
How to repeat:
- Install Percona Server 5.6.x
- ensure innodb_
- try to upgrade to Percons Server 5.7.x
Observe the following crash when starting the database with the 5.7.x binaries:
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
2017-11-
09:54:51 UTC - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.
Please help us make Percona Server better by reporting any
bugs at http://
key_buffer_
read_buffer_
max_used_
max_threads=2501
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_
Hope that's ok; if not, decrease some variables in the equation.
Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0 thread_stack 0x40000
/usr/sbin/
/usr/sbin/
/lib64/
/usr/sbin/
/usr/sbin/
/usr/sbin/
/usr/sbin/
/usr/sbin/
/usr/sbin/
/usr/sbin/
/usr/sbin/
/lib64/
/usr/sbin/
Fix is to disable innodb_
I believe the innodb_
tags: | added: bitmap |
docker run -it --name lp1734116 --entrypoint= /bin/bash percona:5.6 track_changed_ pages=ON to [mysqld] section fast_shutdown= 0; server- server- 5.7 server- 5.7-dbg
mysql_install_db
chown mysql:mysql /var/lib/mysql
add user=mysql and innodb_
mysqld & (5.6.37-82.2 started)
use test
create table t(c int) engine=innodb;
insert into t values (1);
set global innodb_
mysqladmin shutdown
apt-get update
apt-get install -y percona-
apt-get install -y percona-
mysqld --version
mysqld Ver 5.7.19-17 for debian-linux-gnu on x86_64 (Percona Server (GPL), Release '17', Revision 'e19a6b7b73f')
Or just use mysql.tar.gz as datadir and start mysql 5.7 with --innodb- track-changed_ pages=1
Same stack trace: follow_ redo_log () percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/storage/ innobase/ log/log0online. cc:1288 sys->end_ lsn = log_sys- >last_checkpoin t_lsn; follow_ redo_log () percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/storage/ innobase/ log/log0online. cc:1288 start_or_ create_ for_mysql () percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/storage/ innobase/ srv/srv0start. cc:2481 percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/storage/ innobase/ handler/ ha_innodb. cc:4353 handlerton (plugin=0x1ff4718) percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/sql/ handler. cc:871 plugin@ entry=0x1ff4718 ) percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/sql/ sql_plugin. cc:1223 entry=0x1dc8200 <remaining_argc>, argv=0x1ea9f10, flags=flags@ entry=0) percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/sql/ sql_plugin. cc:1565 components () at /mnt/workspace/ percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/sql/ mysqld. cc:4296 percona- server- 5.7-debian- binary- rocks/label_ exp/debian- jessie- 64bit/percona- server- 5.7-5.7. 19-17/sql/ mysqld. cc:5001 ec48, init=<optimized out>, fini=<optimized out>, rtld_fini= <optimized out>, end=0x7fffffffe c38) at libc-start.c:287
0x0000000000f9b843 in log_online_
at /mnt/workspace/
1288 log_bmp_
(gdb) bt
#0 0x0000000000f9b843 in log_online_
at /mnt/workspace/
#1 0x000000000108793e in innobase_
at /mnt/workspace/
#2 0x0000000000f3be19 in innobase_init (p=<optimized out>)
at /mnt/workspace/
#3 0x00000000007fc011 in ha_initialize_
at /mnt/workspace/
#4 0x0000000000c895f6 in plugin_initialize (plugin=
at /mnt/workspace/
#5 0x0000000000c913b8 in plugin_init (argc=argc@
at /mnt/workspace/
#6 0x00000000007932a6 in init_server_
#7 0x0000000000794a49 in mysqld_main (argc=16, argv=0x1ea9f10)
at /mnt/workspace/
#8 0x00007ffff5b40b45 in __libc_start_main (main=0x7716e0 <main(int, char**)>, argc=1, argv=0x7fffffff
stack_
#9 0x000000000078afb4 in _start ()
(gdb) p log_bmp_sys
$1 = (log_bitmap_struct *) 0x0
(gdb) list
1283 return true;
1284 }
1285
1286 /* Grab the LSN of the last checkpoint, we will parse up to it */
1287...