Bug #79416 | InnoDB: Failing assertion: total_trx >= trx_sys->n_prepared_trx | ||
---|---|---|---|
Submitted: | 26 Nov 2015 6:33 | Modified: | 30 Dec 2015 15:51 |
Reporter: | Roel Van de Paar | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: XA transactions | Severity: | S6 (Debug Builds) |
Version: | 5.7.9 GA, 5.7.11 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[26 Nov 2015 6:33]
Roel Van de Paar
[26 Nov 2015 6:38]
Roel Van de Paar
The same testcase will immediately crash on the last line, with a different assertion, if you add this mysqld option: --sql_mode= Crash details: Version: '5.7.9-debug' socket: '/sda/MS-mysql-5.7.9-linux-x86_64-debug/socket.sock' port: 15079 MySQL Community Server (GPL) 2015-11-26 17:26:01 0x7fb127637700 InnoDB: Assertion failure in thread 140398846768896 in file ha_innodb.cc line 2444 InnoDB: Failing assertion: trx_state_eq(trx, TRX_STATE_PREPARED) +bt #0 0x00007fb12703d771 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61 #1 0x0000000001796a78 in my_write_core (sig=6) at /git/mysql-server_dbg/mysys/stacktrace.c:247 #2 0x0000000000e1dc70 in handle_fatal_signal (sig=6) at /git/mysql-server_dbg/sql/signal_handler.cc:220 #3 <signal handler called> #4 0x00007fb125c415d7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #5 0x00007fb125c42cc8 in __GI_abort () at abort.c:90 #6 0x0000000001aedf9b in ut_dbg_assertion_failed (expr=0x2063a70 "trx_state_eq(trx, TRX_STATE_PREPARED)", file=0x2062848 "/git/mysql-server_dbg/storage/innobase/handler/ha_innodb.cc", line=2444) at /git/mysql-server_dbg/storage/innobase/ut/ut0dbg.cc:67 #7 0x00000000018c310a in innodb_replace_trx_in_thd (thd=0x7fb05c419000, new_trx_arg=0x0, ptr_trx_arg=0x0) at /git/mysql-server_dbg/storage/innobase/handler/ha_innodb.cc:2444 #8 0x000000000159c948 in attach_native_trx (thd=0x7fb05c419000) at /git/mysql-server_dbg/sql/xa.cc:1192 #9 0x000000000159c7ce in applier_reset_xa_trans (thd=0x7fb05c419000) at /git/mysql-server_dbg/sql/xa.cc:1131 #10 0x000000000159b81e in Sql_cmd_xa_prepare::execute (this=0x7fb05c42ba48, thd=0x7fb05c419000) at /git/mysql-server_dbg/sql/xa.cc:685 #11 0x0000000001492535 in mysql_execute_command (thd=0x7fb05c419000, first_level=true) at /git/mysql-server_dbg/sql/sql_parse.cc:4645 #12 0x0000000001494305 in mysql_parse (thd=0x7fb05c419000, parser_state=0x7fb127636670) at /git/mysql-server_dbg/sql/sql_parse.cc:5357 #13 0x0000000001489caa in dispatch_command (thd=0x7fb05c419000, com_data=0x7fb127636dc0, command=COM_QUERY) at /git/mysql-server_dbg/sql/sql_parse.cc:1284 #14 0x0000000001488b76 in do_command (thd=0x7fb05c419000) at /git/mysql-server_dbg/sql/sql_parse.cc:852 #15 0x00000000015b2cdb in handle_connection (arg=0x7fb0647ff240) at /git/mysql-server_dbg/sql/conn_handler/connection_handler_per_thread.cc:295 #16 0x00000000017c3aa0 in pfs_spawn_thread (arg=0x7fb0757e7820) at /git/mysql-server_dbg/storage/perfschema/pfs.cc:2192 #17 0x00007fb127038df5 in start_thread (arg=0x7fb127637700) at pthread_create.c:308 #18 0x00007fb125d021ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
[26 Nov 2015 7:37]
MySQL Verification Team
Hello Roel, Thank you for the report and test case. Observed that 5.7.9/5.7.11 debug builds are affected. Thanks, Umesh
[26 Nov 2015 7:37]
MySQL Verification Team
// 5.7.9 only debug build affected rm -rf 79417 bin/mysql_install_db --insecure --basedir=/export/umesh/server/binaries/mysql-5.7.9 --datadir=/export/umesh/server/binaries/mysql-5.7.9/79417 -v bin/mysqld-debug --no-defaults --basedir=/export/umesh/server/binaries/mysql-5.7.9 --datadir=/export/umesh/server/binaries/mysql-5.7.9/79417 --core-file --socket=/tmp/mysql_ushastry.sock --port=15000 --log-error=/export/umesh/server/binaries/mysql-5.7.9/79417/log.err 2>&1 & (gdb) bt #0 0x00007f64ed7fb771 in pthread_kill () from /lib64/libpthread.so.0 #1 0x0000000001803885 in my_write_core (sig=6) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/mysys/stacktrace.c:247 #2 0x0000000000e45850 in handle_fatal_signal (sig=6) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/signal_handler.cc:220 #3 <signal handler called> #4 0x00007f64ec4015d7 in raise () from /lib64/libc.so.6 #5 0x00007f64ec402cc8 in abort () from /lib64/libc.so.6 #6 0x0000000001b4a31b in ut_dbg_assertion_failed (expr=0x22529b8 "total_trx >= trx_sys->n_prepared_trx", file=0x2252300 "/export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/storage/innobase/trx/trx0sys.cc", line=1265) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/storage/innobase/ut/ut0dbg.cc:67 #7 0x0000000001b30151 in trx_sys_any_active_transactions () at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/storage/innobase/trx/trx0sys.cc:1265 #8 0x00000000019bcf63 in logs_empty_and_mark_files_at_shutdown () at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/storage/innobase/log/log0log.cc:2047 #9 0x0000000001aea1c3 in innobase_shutdown_for_mysql () at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/storage/innobase/srv/srv0start.cc:2670 #10 0x000000000191cbc0 in innobase_end (hton=0x2f925a0, type=HA_PANIC_CLOSE) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/storage/innobase/handler/ha_innodb.cc:3797 #11 0x0000000000eb4b03 in ha_finalize_handlerton (plugin=0x30c93d8) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/handler.cc:780 #12 0x0000000001515489 in plugin_deinitialize (plugin=0x30c93d8, ref_check=true) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/sql_plugin.cc:980 #13 0x000000000151583b in reap_plugins () at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/sql_plugin.cc:1062 #14 0x0000000001517605 in plugin_shutdown () at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/sql_plugin.cc:1781 #15 0x0000000000e2ff3f in clean_up (print_message=true) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/mysqld.cc:1291 #16 0x0000000000e3688c in mysqld_main (argc=8, argv=0x2f90a90) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/mysqld.cc:4951 #17 0x0000000000e2dda4 in main (argc=8, argv=0x7ffe25386a28) at /export/home/pb2/build/sb_0-16729453-1444633651.02/mysql-5.7.9/sql/main.cc:25 (gdb)
[26 Nov 2015 7:38]
MySQL Verification Team
// 5.7.11 - only debug build affected [umshastr@hod03]/export/umesh/server/binaries/mysql-advanced-5.7.11: cat docs/INFO_SRC commit: 6097f7cbf5ac4b4db62696a1e95a76230f884cd3 date: 2015-11-23 21:49:50 +0530 build-date: 2015-11-23 17:29:29 +0100 short: 6097f7c branch: mysql-5.7 MySQL source 5.7.11 rm -rf 79417 bin/mysql_install_db --insecure --basedir=/export/umesh/server/binaries/mysql-advanced-5.7.11 --datadir=/export/umesh/server/binaries/mysql-advanced-5.7.11/79417 -v bin/mysqld-debug --no-defaults --basedir=/export/umesh/server/binaries/mysql-advanced-5.7.11 --datadir=/export/umesh/server/binaries/mysql-advanced-5.7.11/79417 --core-file --socket=/tmp/mysql_ushastry.sock --port=15000 --log-error=/export/umesh/server/binaries/mysql-advanced-5.7.11/79417/log.err 2>&1 & (gdb) bt #0 0x00007fcd92a6c771 in pthread_kill () from /lib64/libpthread.so.0 #1 0x00000000018a36cd in my_write_core (sig=6) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/mysys/stacktrace.c:247 #2 0x0000000000ebbe1c in handle_fatal_signal (sig=6) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/signal_handler.cc:220 #3 <signal handler called> #4 0x00007fcd916725d7 in raise () from /lib64/libc.so.6 #5 0x00007fcd91673cc8 in abort () from /lib64/libc.so.6 #6 0x0000000001bebb23 in ut_dbg_assertion_failed (expr=0x239c388 "total_trx >= trx_sys->n_prepared_trx", file=0x239bcc8 "/export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/storage/innobase/trx/trx0sys.cc", line=1265) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/storage/innobase/ut/ut0dbg.cc:67 #7 0x0000000001bd281d in trx_sys_any_active_transactions () at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/storage/innobase/trx/trx0sys.cc:1265 #8 0x0000000001a5dfbd in logs_empty_and_mark_files_at_shutdown () at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/storage/innobase/log/log0log.cc:2080 #9 0x0000000001b8c5da in innobase_shutdown_for_mysql () at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/storage/innobase/srv/srv0start.cc:2669 #10 0x00000000019bce95 in innobase_end (hton=0x3a579c0, type=HA_PANIC_CLOSE) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/storage/innobase/handler/ha_innodb.cc:3959 #11 0x0000000000f357ef in ha_finalize_handlerton (plugin=0x3b8f500) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/handler.cc:780 #12 0x00000000015b2e35 in plugin_deinitialize (plugin=0x3b8f500, ref_check=true) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/sql_plugin.cc:980 #13 0x00000000015b31e7 in reap_plugins () at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/sql_plugin.cc:1062 #14 0x00000000015b4fb1 in plugin_shutdown () at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/sql_plugin.cc:1781 #15 0x0000000000ea60ef in clean_up (print_message=true) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/mysqld.cc:1296 #16 0x0000000000eaccfd in mysqld_main (argc=8, argv=0x3a55eb0) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/mysqld.cc:4984 #17 0x0000000000ea3f54 in main (argc=8, argv=0x7ffe19d1dee8) at /export/home/pb2/build/sb_0-17148744-1448296996.98/mysqlcom-pro-5.7.11/sql/main.cc:25 (gdb)
[26 Nov 2015 7:44]
MySQL Verification Team
// 5.6.27 debug/release not affected
[30 Dec 2015 15:51]
David Moss
Thanks for your feedback. This has been fixed in upcoming versions and the following was added to the 5.7.11 change log: If pseudo_slave_mode was set to 1 while an XA transaction was in the prepare stage, an assert was generated. The fix ensures that changes from 0 to 1 can be made during XA transactions. Note that this variable is solely for internal use by the server.