Percona XtraDB Cluster - HA scalable solution for MySQL

Assertion failure in thread 48071053178624 in file btr0pcur.c line 254

Reported by finnth3human on 2013-05-24
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona XtraDB Cluster
Undecided
Raghavendra D Prabhu

Bug Description

One of my servers crashed today with the Assertion Failure error. It is running Percona XtraDB Cluster 5.5.30-30.2 which appears to be the latest code available as I am writing this.

The following bugs seem like they could be related but I'm not really sure as I am not a programmer and don't understand all of the terminology involved. If they are related and the bug is already fixed in 5.5.31 then I would like to know when that release will be available to download.

https://bugs.launchpad.net/percona-server/+bug/1177004
https://bugs.launchpad.net/percona-server/+bug/1134757

Output of the error.log immediately after the crash (some sensitive info in the query was replaced with x's).

 len 224; hex b87403acc52b0000c12040b1ba2b000000e82d81b82b0000000000000000000000000000000000000000000000000000030000000000000002000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000008344510700000000cd167824c52b00000200000000000000010000000000000000e82d81b82b0000010000000000000060e1117700000000020000000000000038947a24c52b0000c8167824c52b00001000000000000000; asc t + @ + - + DQ x$ + - + ` w 8 z$ + x$ + ;
TRANSACTION 1C2CB25FD, ACTIVE 0 sec fetching rows
mysql tables in use 3, locked 0
MySQL thread id 8421534, OS thread handle 0x2bb86a0c7700, query id 46018609 xx.xx.xx.xx xx_xx_xxxx Sending data
SELECT COUNT(1) as count FROM `xxxxxxxxxxxxx_xxx`.`xxxxxxx_xxx_xxxx_xx` WHERE `xxxxxxxxxxxxx_xxx`.`xxxxxxx_xxx_xxxx_xx`.`key` = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' && `xxxxxxxxxxxxx_xxx`.`xxxxxxx_xxx_xxxx_xx`.`hour` = 'xx' && `xxxxxxxxxxxxx_xxx`.`xxxxxxx_xxx_xxxx_xx`.`xxx` = 'xx' /* xxxxxxx=xxx.xxxxxxxxxxxxx.xxx/xxx.xxx */
130524 14:30:47 InnoDB: Assertion failure in thread 48071053178624 in file btr0pcur.c line 254
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.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
19:30:47 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 Server better by reporting any
bugs at http://bugs.percona.com/

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

Thread pointer: 0x55bb48a0
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 = 2bb86a0c6e70 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x2e)[0x7da13e]
/usr/sbin/mysqld(handle_fatal_signal+0x4a4)[0x6b0c74]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0)[0x2ba852598cb0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35)[0x2ba852e16425]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x17b)[0x2ba852e19b8b]
/usr/sbin/mysqld[0x88184c]
/usr/sbin/mysqld[0x518caf]
/usr/sbin/mysqld[0x82f6e0]
/usr/sbin/mysqld[0x804a14]
/usr/sbin/mysqld(_ZN7handler21read_multi_range_nextEPP18st_key_multi_range+0x2d)[0x6b102d]
/usr/sbin/mysqld(_ZN18QUICK_RANGE_SELECT8get_nextEv+0x3f)[0x7634bf]
/usr/sbin/mysqld(_ZN26QUICK_ROR_INTERSECT_SELECT8get_nextEv+0xd2)[0x775262]
/usr/sbin/mysqld[0x77a0f9]
/usr/sbin/mysqld(_Z10sub_selectP4JOINP13st_join_tableb+0x64)[0x5d2b54]
/usr/sbin/mysqld[0x5dccfd]
/usr/sbin/mysqld(_ZN4JOIN4execEv+0x8e2)[0x5ec4a2]
/usr/sbin/mysqld(_Z12mysql_selectP3THDPPP4ItemP10TABLE_LISTjR4ListIS1_ES2_jP8st_orderSB_S2_SB_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x133)[0x5edfb3]
/usr/sbin/mysqld(_Z13handle_selectP3THDP3LEXP13select_resultm+0x1d5)[0x5eea25]
/usr/sbin/mysqld[0x5a10fe]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x90b)[0x5a953b]
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x314)[0x5b08b4]
/usr/sbin/mysqld[0x5b11d8]
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x1a80)[0x5b3270]
/usr/sbin/mysqld(_Z10do_commandP3THD+0x167)[0x5b36c7]
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x14f)[0x64ecff]
/usr/sbin/mysqld(handle_one_connection+0x51)[0x64eed1]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a)[0x2ba852590e9a]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x2ba852ed3ccd]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (2bc5247a1bd0): is an invalid pointer
Connection ID (thread ID): 8421534
Status: KILL_QUERY

You may download the Percona Server operations manual by visiting
http://www.percona.com/software/percona-server/. You may find information
in the manual which will help you identify the cause of the crash.

affects: percona-server → percona-xtradb-cluster
description: updated
finnth3human (finnth3human) wrote :

Crashed again 27 hours later with the same error (and same query). I see that 5.5.31 is available for download under Percona Server but NOT under Percona XtraDB Cluster. Please help.

Seppo Jaakola (seppo-jaakola) wrote :

MySQL 5.5.31 merge has been pushed in lp:~codership/codership-mysql/5.5-23, one step towards PXC 5.5.31 release.

@Seppo, thanks.

I have completed the PS merge as well - https://code.launchpad.net/~raghavendra-prabhu/percona-xtradb-cluster/release-5.5.31

@finnith3human, yes, 5.5.31 should fix this. Are you using any automated query kill tools? (like pt-kill) Killing the query is causing this.

Changed in percona-xtradb-cluster:
milestone: none → 5.5.31-24.8
finnth3human (finnth3human) wrote :

Thanks. No, we are not killing any queries. I think the query is being run as part of a cron/script. It happened 2 days in a row but then did not happen yesterday. Only changes I made were I had stopped 2/3 of the nodes in that cluster so it would be easier to recover in case it crashed again. Perhaps by doing that it prevented it from crashing - or it could just be a coincidence.

finnth3human (finnth3human) wrote :

This is continuing to happen 1-3 times every 24-48 hours. Afaik no one has killed any queries.

finnth3human (finnth3human) wrote :

We are definitely not killing any queries manually but we think there may be some bad data in a table which is causing MySQL to crash and kill a query which is in turn triggering this bug.

finnth3human (finnth3human) wrote :

I have not been able to find any errors with data or to reproduce the issue. I created another server from a fresh backup and scanned entire database w/ innochecksum and have been running the queries listed in the crash report in parallel/cycling through every combination of tables ids keys etc. The server has been running at 90%+ cpu for hours and there have been no errors or any signs of a problem. I will let it keep running and report back if I see anything unusual.

Changed in percona-xtradb-cluster:
status: New → Fix Committed
assignee: nobody → Raghavendra D Prabhu (raghavendra-prabhu)
Changed in percona-xtradb-cluster:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers