innodb_fake_changes crashes galera node

Bug #1404168 reported by Przemek on 2014-12-19
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC
Status tracked in 5.6
5.5
Won't Fix
Undecided
Unassigned
5.6
Fix Released
Low
Krunal Bauskar

Bug Description

Server version: 5.6.21-70.1-56 Percona XtraDB Cluster (GPL), Release rel70.1, Revision 938, WSREP version 25.8, wsrep_25.8.r4150

percona2 mysql> set innodb_fake_changes=1;
Query OK, 0 rows affected (0.00 sec)

percona2 mysql> update t1 set state=200 where id=1;
ERROR 2013 (HY000): Lost connection to MySQL server during query

Error log:

2014-12-19 10:43:59 5195 [ERROR] WSREP: FSM: no such a transition COMMITTING -> ROLLED_BACK
09:43:59 UTC - mysqld got signal 6 ;
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.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
Please help us make Percona XtraDB Cluster better by reporting any
bugs at https://bugs.launchpad.net/percona-xtradb-cluster

key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=1
max_threads=153
thread_count=4
connection_count=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 69258 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x315bf50
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 = 7effd41d8d38 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x35)[0x8f97d5]
/usr/sbin/mysqld(handle_fatal_signal+0x4b4)[0x6655c4]
/lib64/libpthread.so.0(+0xf710)[0x7f0001b77710]
/lib64/libc.so.6(gsignal+0x35)[0x7efffffbd625]
/lib64/libc.so.6(abort+0x175)[0x7efffffbee05]
/usr/lib64/libgalera_smm.so(_ZN6galera3FSMINS_9TrxHandle5StateENS1_10TransitionENS_10EmptyGuardENS_11EmptyActionEE8shift_toES2_+0x2d9)[0x7effe49bace9]
/usr/lib64/libgalera_smm.so(_ZN6galera13ReplicatorSMM13post_rollbackEPNS_9TrxHandleE+0x2e)[0x7effe49d6d8e]
/usr/lib64/libgalera_smm.so(galera_post_rollback+0x68)[0x7effe49efb98]
/usr/sbin/mysqld[0x7a857e]
/usr/sbin/mysqld(_Z15ha_rollback_lowP3THDb+0x97)[0x5a5037]
/usr/sbin/mysqld(_ZN13MYSQL_BIN_LOG8rollbackEP3THDb+0x10f)[0x8b1d7f]
/usr/sbin/mysqld(_Z17ha_rollback_transP3THDb+0x74)[0x5a4e04]
/usr/sbin/mysqld(_Z15ha_commit_transP3THDbb+0x312)[0x5a56e2]
/usr/sbin/mysqld(_Z17trans_commit_stmtP3THD+0x35)[0x78d995]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x954)[0x6ea184]
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x658)[0x6f0338]
/usr/sbin/mysqld[0x6f0491]
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x19d5)[0x6f2675]
/usr/sbin/mysqld(_Z10do_commandP3THD+0x22b)[0x6f3b5b]
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x17f)[0x6bc30f]
/usr/sbin/mysqld(handle_one_connection+0x47)[0x6bc4f7]
/usr/sbin/mysqld(pfs_spawn_thread+0x12a)[0xaf38ba]
/lib64/libpthread.so.0(+0x79d1)[0x7f0001b6f9d1]
/lib64/libc.so.6(clone+0x6d)[0x7f00000739dd]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7effc40105c0): is an invalid pointer
Connection ID (thread ID): 4

Download full text (5.4 KiB)

Confirmed with PXC 5.6.21. It seems problem of innodb_table_stats table in mysql.
Well described here: http://dba.stackexchange.com/questions/54608/innodb-error-table-mysql-innodb-table-stats-not-found-after-upgrade-to-mys

[root@percona-pxc56-1 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.21-70.1-56 Percona XtraDB Cluster (GPL), Release rel70.1, Revision 938, WSREP version 25.8, wsrep_25.8.r4150

...

mysql> use test
Database changed

mysql> create table nil (id int, name varchar(10));
Query OK, 0 rows affected (0.04 sec)

mysql> insert into nil values (1, 'nilnandan');
Query OK, 1 row affected (0.01 sec)

mysql> insert into nil values (2, 'niljoshi');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> show global variables like 'innodb_fake%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_fake_changes | OFF |
+---------------------+-------+
1 row in set (0.00 sec)

mysql> set global innodb_fake_changes=1;
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like 'innodb_fake%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_fake_changes | ON |
+---------------------+-------+
1 row in set (0.00 sec)

mysql> update nil set name = 'nil' where id = 2;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>

2015-01-21 15:05:47 7fdf07fff700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2015-01-21 15:05:47 7fdf07fff700 InnoDB: Recalculation of persistent statistics requested for table "test"."nil" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.
2015-01-21 15:06:34 7fdf404f8700 InnoDB: Error: unlock row could not find a 3 mode lock on the record
2015-01-21 15:06:34 7fdf404f8700 InnoDB: current statement: update nil set name = 'nil' where id = 2
2015-01-21 15:06:34 2737 [ERROR] WSREP: FSM: no such a transition COMMITTING -> ROLLED_BACK
09:36:34 UTC - mysqld got signal 6 ;
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.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
Please help us make Percona XtraDB Cluster better by reporting any
bugs at https://bugs.launchpad.net/percona-xtradb-cluster

key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=1
max_threads=153
thread_count=3
connection_count=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 69258 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x346db30
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 = 7fdf404f7d38 t...

Read more...

Changed in percona-xtradb-cluster:
status: New → Confirmed

Yes, innodb_fake_changes is not supported yet for PXC. I have updated documentation pages for it.

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXC-1150

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers