Bug #76090 Assertion `from->m_byte_count == 0' failed in perfschema/pfs_digest.h:113
Submitted: 2 Mar 2015 9:19 Modified: 19 Mar 2015 16:39
Reporter: Ramesh Sivaraman Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Performance Schema Severity:S3 (Non-critical)
Version:5.6.23 OS:Linux (CentOS 7)
Assigned to: CPU Architecture:Any
Tags: debug

[2 Mar 2015 9:19] Ramesh Sivaraman
Description:
#0  0x00007fc257239771 in pthread_kill () from /lib64/libpthread.so.0
#1  0x0000000000a980a6 in my_write_core (sig=6) at /sda/mysql-server-5.6/mysys/stacktrace.c:422
#2  0x00000000007277f0 in handle_fatal_signal (sig=6) at /sda/mysql-server-5.6/sql/signal_handler.cc:230
#3  <signal handler called>
#4  0x00007fc2560455c9 in raise () from /lib64/libc.so.6
#5  0x00007fc256046cd8 in abort () from /lib64/libc.so.6
#6  0x00007fc25603e536 in __assert_fail_base () from /lib64/libc.so.6
#7  0x00007fc25603e5e2 in __assert_fail () from /lib64/libc.so.6
#8  0x0000000000b46474 in digest_copy (to=0x7fc255d4e380, from=0x7fc2542fbcd0) at /sda/mysql-server-5.6/storage/perfschema/pfs_digest.h:113
#9  0x0000000000b46925 in table_events_statements_common::make_row_part_1 (this=0x7fc236078e00, statement=0x7fc2542fb510, digest=0x7fc255d4e380) at /sda/mysql-server-5.6/storage/perfschema/table_events_statements.cc:373
#10 0x0000000000b477cc in table_events_statements_current::make_row (this=0x7fc236078e00, pfs_thread=0x7fc25405f700, statement=0x7fc2542fb510) at /sda/mysql-server-5.6/storage/perfschema/table_events_statements.cc:723
#11 0x0000000000b47566 in table_events_statements_current::rnd_next (this=0x7fc236078e00) at /sda/mysql-server-5.6/storage/perfschema/table_events_statements.cc:664
#12 0x0000000000b2b2f3 in ha_perfschema::rnd_next (this=0x7fc236c46010, buf=0x7fc236c9b010 "") at /sda/mysql-server-5.6/storage/perfschema/ha_perfschema.cc:332
#13 0x000000000063c1ea in handler::ha_rnd_next (this=0x7fc236c46010, buf=0x7fc236c9b010 "") at /sda/mysql-server-5.6/sql/handler.cc:2687
#14 0x000000000097b3ea in rr_sequential (info=0x7fc236020748) at /sda/mysql-server-5.6/sql/records.cc:478
#15 0x00000000007a470d in sub_select (join=0x7fc23601f9d0, join_tab=0x7fc2360206b8, end_of_records=false) at /sda/mysql-server-5.6/sql/sql_executor.cc:1259
#16 0x00000000007a40e1 in do_select (join=0x7fc23601f9d0) at /sda/mysql-server-5.6/sql/sql_executor.cc:933
#17 0x00000000007a203d in JOIN::exec (this=0x7fc23601f9d0) at /sda/mysql-server-5.6/sql/sql_executor.cc:194
#18 0x00000000008027a7 in mysql_execute_select (thd=0x7fc24663f000, select_lex=0x7fc246641878, free_join=true) at /sda/mysql-server-5.6/sql/sql_select.cc:1100
#19 0x0000000000802aa3 in mysql_select (thd=0x7fc24663f000, tables=0x7fc23601f398, wild_num=0, fields=..., conds=0x0, order=0x7fc246641a40, group=0x7fc246641978, having=0x0, select_options=2147748608, result=0x7fc23601f9a8, unit=0x7fc246641230, select_lex=0x7fc246641878) at /sda/mysql-server-5.6/sql/sql_select.cc:1221
#20 0x0000000000800b2b in handle_select (thd=0x7fc24663f000, result=0x7fc23601f9a8, setup_tables_done_option=0) at /sda/mysql-server-5.6/sql/sql_select.cc:110
#21 0x00000000007da980 in execute_sqlcom_select (thd=0x7fc24663f000, all_tables=0x7fc23601f398) at /sda/mysql-server-5.6/sql/sql_parse.cc:5103
#22 0x00000000007d3730 in mysql_execute_command (thd=0x7fc24663f000) at /sda/mysql-server-5.6/sql/sql_parse.cc:2649
#23 0x00000000007dd54a in mysql_parse (thd=0x7fc24663f000, rawbuf=0x7fc23601f010 "select count(*) from performance_schema.events_statements_current", length=65, parser_state=0x7fc255d4fe70) at /sda/mysql-server-5.6/sql/sql_parse.cc:6357
#24 0x00000000007d06bc in dispatch_command (command=COM_QUERY, thd=0x7fc24663f000, packet=0x7fc246643001 "", packet_length=68) at /sda/mysql-server-5.6/sql/sql_parse.cc:1332
#25 0x00000000007cf7ab in do_command (thd=0x7fc24663f000) at /sda/mysql-server-5.6/sql/sql_parse.cc:1034
#26 0x0000000000797b3d in do_handle_one_connection (thd_arg=0x7fc24663f000) at /sda/mysql-server-5.6/sql/sql_connect.cc:982
#27 0x0000000000797626 in handle_one_connection (arg=0x7fc24663f000) at /sda/mysql-server-5.6/sql/sql_connect.cc:898
#28 0x0000000000b5d7f0 in pfs_spawn_thread (arg=0x7fc250b3c920) at /sda/mysql-server-5.6/storage/perfschema/pfs.cc:1860
#29 0x00007fc257234df3 in start_thread () from /lib64/libpthread.so.0
#30 0x00007fc2561061ad in clone () from /lib64/libc.so.6

How to repeat:
select count(*) from performance_schema.events_statements_current;

To reproducing the bug we need to use multi thread pquery binary, the
attached tarball gives the testcase as an exact match of our system,
including some handy utilities
$ vi {epoch}_mybase # Update base path in this file (the only change
required!)
$ ./{epoch}_init # Initializes the data dir
$ ./{epoch}_start # Starts mysqld
$ ./{epoch}_cl # To check mysqld is up
$ ./{epoch}_run_pquery # Run the testcase with pquery binary(produces
output)
$ vi /dev/shm/{epoch}/error.log.out # Verify the error log
$ ./{epoch}_gdb # Brings you to a gdb prompt attached to correct
mysqld
& generated core
$ ./{epoch}_parse_core # Create {epoch}_STD.gdb and {epoch}_FULL.gdb;
standard and full var gdb stack traces
etc.
[2 Mar 2015 9:19] Ramesh Sivaraman
Testcase bundle

Attachment: 1425279078_bug_bundle.tar.gz (application/gzip, text), 93.46 KiB.

[19 Mar 2015 16:04] MySQL Verification Team
Easily repeatable on 5.6.23 but not on current 5.6.25 code.

I guess something changed since on current 5.6.25 code I get 2000 QPS but on the 5.6.23 that crashed I got 12000 QPS...

Version: '5.6.23-debug'  MySQL Community Server - Debug (GPL)
Assertion failed: from->m_byte_count == 0, file g:\ade\build\sb_0-14135570-1421676922.45\mysql-5.6.23\storage\perfschema\pfs_digest.h, line 113

mysqld-debug.exe!my_sigabrt_handler()[my_thr_init.c:458]
mysqld-debug.exe!raise()[winsig.c:593]
mysqld-debug.exe!abort()[abort.c:81]
mysqld-debug.exe!_wassert()[assert.c:153]
mysqld-debug.exe!digest_copy()[pfs_digest.h:113]
mysqld-debug.exe!table_events_statements_common::make_row_part_1()[table_events_statements.cc:375]
mysqld-debug.exe!table_events_statements_current::make_row()[table_events_statements.cc:726]
mysqld-debug.exe!table_events_statements_current::rnd_next()[table_events_statements.cc:665]
mysqld-debug.exe!ha_perfschema::rnd_next()[ha_perfschema.cc:332]
mysqld-debug.exe!handler::ha_rnd_next()[handler.cc:2688]
mysqld-debug.exe!rr_sequential()[records.cc:478]
mysqld-debug.exe!sub_select()[sql_executor.cc:1259]
mysqld-debug.exe!do_select()[sql_executor.cc:933]
mysqld-debug.exe!JOIN::exec()[sql_executor.cc:194]
mysqld-debug.exe!mysql_execute_select()[sql_select.cc:1103]
mysqld-debug.exe!mysql_select()[sql_select.cc:1221]
mysqld-debug.exe!handle_select()[sql_select.cc:110]
mysqld-debug.exe!execute_sqlcom_select()[sql_parse.cc:5103]
mysqld-debug.exe!mysql_execute_command()[sql_parse.cc:2649]
mysqld-debug.exe!mysql_parse()[sql_parse.cc:6357]
mysqld-debug.exe!dispatch_command()[sql_parse.cc:1335]
mysqld-debug.exe!do_command()[sql_parse.cc:1034]
mysqld-debug.exe!do_handle_one_connection()[sql_connect.cc:982]
mysqld-debug.exe!handle_one_connection()[sql_connect.cc:899]
mysqld-debug.exe!pfs_spawn_thread()[pfs.cc:1862]
mysqld-debug.exe!pthread_start()[my_winthread.c:62]
mysqld-debug.exe!_callthreadstartex()[threadex.c:314]
mysqld-debug.exe!_threadstartex()[threadex.c:297]