InnoDB: Assertion failure in thread 139864880994048 in file trx0sys.cc line 181 | UNIV_DEBUG
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
MySQL patches by Codership |
Fix Released
|
Low
|
Seppo Jaakola | |||
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC | Status tracked in 5.6 | |||||
5.5 |
Invalid
|
Undecided
|
Unassigned | |||
5.6 |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Hit this crash with UNIV_DEBUG build:
2014-01-20 08:35:32 7f34d48c5700 InnoDB: Assertion failure in thread 139864880994048 in file trx0sys.cc line 181
InnoDB: Failing assertion: mutex_own(
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://
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://
InnoDB: about forcing recovery.
13:35:32 UTC - mysqld got signal 6 ;
Backtrace:
# 2014-01-20T08:35:53 [32197] #0 0x00007f34ee5cf8ac in pthread_kill () from /lib64/
# 2014-01-20T08:35:53 [32197] #1 0x00000000006a3d6e in handle_fatal_signal (sig=6) at /mnt/workspace/
# 2014-01-20T08:35:53 [32197] #2 <signal handler called>
# 2014-01-20T08:35:53 [32197] #3 0x00007f34ecc32925 in raise () from /lib64/libc.so.6
# 2014-01-20T08:35:53 [32197] #4 0x00007f34ecc34105 in abort () from /lib64/libc.so.6
# 2014-01-20T08:35:53 [32197] #5 0x0000000000b4c13d in trx_sys_
# 2014-01-20T08:35:53 [32197] #6 0x0000000000a09e21 in trx_sys_
# 2014-01-20T08:35:53 [32197] #7 wsrep_fake_trx_id (hton=<value optimized out>, thd=<value optimized out>) at /mnt/workspace/
# 2014-01-20T08:35:53 [32197] #8 0x00000000005cd75d in ha_wsrep_
# 2014-01-20T08:35:53 [32197] #9 0x0000000000724487 in select_
# 2014-01-20T08:35:53 [32197] #10 0x0000000000724766 in postlock (this=0x7f34700
# 2014-01-20T08:35:53 [32197] #11 select_
# 2014-01-20T08:35:53 [32197] #12 0x000000000076b1fe in JOIN::prepare_
# 2014-01-20T08:35:53 [32197] #13 0x000000000071d401 in JOIN::exec (this=0x7f34700
# 2014-01-20T08:35:53 [32197] #14 0x000000000076e1b0 in mysql_execute_
# 2014-01-20T08:35:53 [32197] #15 mysql_select (thd=0x3648aa0, tables=
# 2014-01-20T08:35:53 [32197] #16 0x000000000076ecab in handle_select (thd=0x3648aa0, result=
# 2014-01-20T08:35:53 [32197] #17 0x00000000007490d2 in mysql_execute_
# 2014-01-20T08:35:53 [32197] #18 0x0000000000749e08 in mysql_parse (thd=0x3648aa0, rawbuf=0x364b0e8 "P&>\001", length=<value optimized out>, parser_state=<value optimized out>) at /mnt/workspace/
# 2014-01-20T08:35:53 [32197] #19 0x0000000000749fff in wsrep_mysql_parse (thd=0x3648aa0, rawbuf=
# 2014-01-20T08:35:53 [32197] #20 0x000000000074bf6d in dispatch_command (command=COM_QUERY, thd=0x3648aa0, packet=0x36366e1 " CREATE TABLE s AS SELECT * FROM `table100_
# 2014-01-20T08:35:53 [32197] #21 0x000000000074d6bf in do_command (thd=0x3648aa0) at /mnt/workspace/
# 2014-01-20T08:35:53 [32197] #22 0x000000000070db3f in do_handle_
# 2014-01-20T08:35:53 [32197] #23 0x000000000070dd17 in handle_
# 2014-01-20T08:35:53 [32197] #24 0x00007f34ee5ca9d1 in start_thread () from /lib64/
# 2014-01-20T08:35:53 [32197] #25 0x00007f34ecce8b6d in clone () from /lib64/libc.so.6
Now, this is because
Allocates a new transaction id.
@return new, allocated trx id */
UNIV_INLINE
trx_id_t
trx_sys_
/*=====
{
#ifndef WITH_WSREP
/* wsrep_fake_trx_id violates this assert */
ut_ad(
#endif /* WITH_WSREP */
/* VERY important: after the database is started, max_trx_id value is
divisible by TRX_SYS_
will evaluate to TRUE when this function is first time called,
and the value for trx id will be written to disk-based header!
Thus trx id values will not overlap when the database is
repeatedly started! */
if (!(trx_
trx_sys_
}
return(
}
trx_sys_
Writes the value of max_trx_id to the file based trx system header. */
UNIV_INTERN
void
trx_sys_
/*=====
{
mtr_t mtr;
trx_sysf_t* sys_header;
ut_ad(
------
if (!srv_read_
mtr_start(&mtr);
sys_header = trx_sysf_get(&mtr);
mlog_write_ull(
sys_header + TRX_SYS_
trx_
mtr_commit(&mtr);
}
}
So, need to add ifdef around it. (btw, why is the assertion
violated in first place?)
Related branches
summary: |
InnoDB: Assertion failure in thread 139864880994048 in file trx0sys.cc - line 181 + line 181 | UNIV_DEBUG |
Changed in codership-mysql: | |
status: | New → In Progress |
importance: | Undecided → Low |
assignee: | nobody → Seppo Jaakola (seppo-jaakola) |
milestone: | none → 5.6.15-25.2 |
Changed in codership-mysql: | |
status: | Fix Committed → Fix Released |
Merged the fix from PXC branch into wsrep-5.6, in revision: bazaar. launchpad. net/~codership/ codership- mysql/5. 6/revision/ 4035
http://