| Bug #74859 | Assertion `scale >= 0 && precision > 0 && scale <= precision' failed | ||
|---|---|---|---|
| Submitted: | 14 Nov 2014 9:50 | Modified: | 2 Feb 2015 15:45 |
| Reporter: | Roel Van de Paar | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: DML | Severity: | S6 (Debug Builds) |
| Version: | 5.6.20, 5.6.23, 5.7.6 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | debug | ||
[14 Nov 2014 9:50]
Roel Van de Paar
[14 Nov 2014 11:28]
MySQL Verification Team
Hello Roel, Thank you for the bug report and test case. Confirmed that 5.6.23/5.7.6 debug builds are affected. Thanks, Umesh
[14 Nov 2014 11:28]
MySQL Verification Team
// 5.6.23 debug build
(gdb) bt
#0 __pthread_kill (threadid=<value optimized out>, signo=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:63
#1 0x0000000000affdab in my_write_core (sig=6) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/mysys/stacktrace.c:422
#2 0x000000000077ebbc in handle_fatal_signal (sig=6) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/signal_handler.cc:230
#3 <signal handler called>
#4 0x0000003deac32625 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#5 0x0000003deac33e05 in abort () at abort.c:92
#6 0x0000003deac2b74e in __assert_fail_base (fmt=<value optimized out>, assertion=0x11d1b78 "scale >= 0 && precision > 0 && scale <= precision",
file=0x11d1900 "/export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/strings/decimal.c", line=<value optimized out>, function=<value optimized out>) at assert.c:96
#7 0x0000003deac2b810 in __assert_fail (assertion=0x11d1b78 "scale >= 0 && precision > 0 && scale <= precision",
file=0x11d1900 "/export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/strings/decimal.c", line=1538, function=0x11d1da0 "decimal_bin_size") at assert.c:105
#8 0x0000000000ec6d19 in decimal_bin_size (precision=0, scale=0) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/strings/decimal.c:1538
#9 0x0000000000742edc in my_decimal_get_binary_size (precision=0, scale=0) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/my_decimal.h:294
#10 0x0000000000959864 in Field_new_decimal::Field_new_decimal (this=0x7f485400e120, len_arg=0, maybe_null_arg=true, name=0x7f48540086a0 "MIN(GET_LOCK(0,0)/ '0b0' ^ (RAND()))",
dec_arg=0 '\000', unsigned_arg=false) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/field.cc:2568
#11 0x0000000000959a1b in Field_new_decimal::create_from_item (item=0x7f4854008538) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/field.cc:2612
#12 0x00000000007385b3 in Item_sum::create_tmp_field (this=0x7f4854008538, group=false, table=0x7f485401c980)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/item_sum.cc:566
#13 0x000000000073a933 in Item_sum_hybrid::create_tmp_field (this=0x7f4854008538, group=false, table=0x7f485401c980)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/item_sum.cc:1329
#14 0x00000000008acb42 in create_tmp_field (thd=0x3f6e010, table=0x7f485401c980, item=0x7f4854008538, type=Item::SUM_FUNC_ITEM, copy_func=0x7f4884aafc08, from_field=0x7f485401d590,
default_field=0x7f485401d580, group=false, modify_item=false, table_cant_handle_bit_fields=false, make_copy_field=false)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_tmp_table.cc:258
#15 0x00000000008ae247 in create_tmp_table (thd=0x3f6e010, param=0x7f48540157b0, fields=..., group=0x0, distinct=false, save_sum_fields=true, select_options=2416188160,
rows_limit=18446744073709551615, table_alias=0x7f4854008d40 "a") at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_tmp_table.cc:729
#16 0x00000000008bb8d8 in select_union::create_result_table (this=0x7f4854015790, thd_arg=0x3f6e010, column_types=0x7f4854007f08, is_union_distinct=false, options=2416188160,
table_alias=0x7f4854008d40 "a", bit_fields_as_long=false, create_table=false) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_union.cc:161
#17 0x00000000007f78ea in mysql_derived_prepare (thd=0x3f6e010, lex=0x3f70180, derived=0x7f4854015180)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_derived.cc:213
#18 0x00000000007f767d in mysql_handle_single_derived (lex=0x3f70180, derived=0x7f4854015180, processor=0x7f7694 <mysql_derived_prepare(THD*, LEX*, TABLE_LIST*)>)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_derived.cc:115
#19 0x00000000007f7598 in mysql_handle_derived (lex=0x3f70180, processor=0x7f7694 <mysql_derived_prepare(THD*, LEX*, TABLE_LIST*)>)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_derived.cc:77
#20 0x00000000007c500f in open_normal_and_derived_tables (thd=0x3f6e010, tables=0x7f4854015180, flags=0)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_base.cc:5775
#21 0x000000000083518f in execute_sqlcom_select (thd=0x3f6e010, all_tables=0x7f4854015180) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_parse.cc:5076
#22 0x000000000082dadc in mysql_execute_command (thd=0x3f6e010) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_parse.cc:2649
#23 0x0000000000837fa9 in mysql_parse (thd=0x3f6e010, rawbuf=0x7f4854006d80 "select * from(SELECT MIN(GET_LOCK(0,0)/ '0b0' ^ (RAND()))) as a", length=63, parser_state=0x7f4884ab1680)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_parse.cc:6357
#24 0x000000000082a92b in dispatch_command (command=COM_QUERY, thd=0x3f6e010, packet=0x409c841 "select * from(SELECT MIN(GET_LOCK(0,0)/ '0b0' ^ (RAND()))) as a", packet_length=63)
at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_parse.cc:1332
#25 0x0000000000829990 in do_command (thd=0x3f6e010) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_parse.cc:1034
#26 0x00000000007f0d8f in do_handle_one_connection (thd_arg=0x3f6e010) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_connect.cc:982
#27 0x00000000007f0860 in handle_one_connection (arg=0x3f6e010) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/sql/sql_connect.cc:898
#28 0x0000000000e5f509 in pfs_spawn_thread (arg=0x405ff70) at /export/home/pb2/build/sb_0-13622626-1415294505.52/mysqlcom-pro-5.6.23/storage/perfschema/pfs.cc:1860
#29 0x0000003deb0079d1 in start_thread (arg=0x7f4884ab2700) at pthread_create.c:301
#30 0x0000003deace89dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
[root@cluster-repo mysql-advanced-5.6.23]# more docs/INFO_SRC
revision-id: michael.izioumtchenko@oracle.com-20141106152508-nntohvuco3v1rjjx
date: 2014-11-06 16:25:08 +0100
build-date: 2014-11-06 18:00:43 +0100
revno: 6243
branch-nick: daily-5.6
MySQL source 5.6.23
[14 Nov 2014 11:29]
MySQL Verification Team
// 5.7.6 debug build
(gdb) bt
#0 __pthread_kill (threadid=<value optimized out>, signo=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:63
#1 0x0000000000f990a1 in my_write_core (sig=6) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/mysys/stacktrace.c:247
#2 0x000000000092d7cc in handle_fatal_signal (sig=6) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/signal_handler.cc:219
#3 <signal handler called>
#4 0x0000003deac32625 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#5 0x0000003deac33e05 in abort () at abort.c:92
#6 0x0000003deac2b74e in __assert_fail_base (fmt=<value optimized out>, assertion=0x1a85108 "scale >= 0 && precision > 0 && scale <= precision",
file=0x1a84ea0 "/pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/strings/decimal.c", line=<value optimized out>, function=<value optimized out>) at assert.c:96
#7 0x0000003deac2b810 in __assert_fail (assertion=0x1a85108 "scale >= 0 && precision > 0 && scale <= precision",
file=0x1a84ea0 "/pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/strings/decimal.c", line=1534, function=0x1a85360 "decimal_bin_size") at assert.c:105
#8 0x0000000001433a2f in decimal_bin_size (precision=0, scale=0) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/strings/decimal.c:1534
#9 0x0000000000976fe1 in my_decimal_get_binary_size (precision=0, scale=0) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/my_decimal.h:292
#10 0x000000000095dbc9 in Field_new_decimal::Field_new_decimal (this=0x7f46c80288e0, len_arg=0, maybe_null_arg=true, name=0x7f46c80073b0 "MIN(GET_LOCK(0,0)/ '0b0' ^ (RAND()))",
dec_arg=0 '\000', unsigned_arg=false) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/field.cc:2673
#11 0x000000000095dd81 in Field_new_decimal::create_from_item (item=0x7f46c8006720) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/field.cc:2717
#12 0x0000000000bafe59 in Item_sum::create_tmp_field (this=0x7f46c8006720, group=false, table=0x7f46c8028cb0)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/item_sum.cc:625
#13 0x0000000000bb2410 in Item_sum_hybrid::create_tmp_field (this=0x7f46c8006720, group=false, table=0x7f46c8028cb0)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/item_sum.cc:1419
#14 0x0000000000d41e41 in create_tmp_field (thd=0x7f46c8000d30, table=0x7f46c8028cb0, item=0x7f46c8006720, type=Item::SUM_FUNC_ITEM, copy_func=0x7f46c80288b0, from_field=0x7f46c80299f0,
default_field=0x7f46c80299b8, group=false, modify_item=false, table_cant_handle_bit_fields=false, make_copy_field=false)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_tmp_table.cc:259
#15 0x0000000000d4395e in create_tmp_table (thd=0x7f46c8000d30, param=0x7f46c8025f08, fields=..., group=0x0, distinct=false, save_sum_fields=true, select_options=2416188160,
rows_limit=18446744073709551615, table_alias=0x7f46c8006aa0 "a") at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_tmp_table.cc:839
#16 0x0000000000d4e1e4 in select_union::create_result_table (this=0x7f46c8025ee8, thd_arg=0x7f46c8000d30, column_types=0x7f46c8025110, is_union_distinct=false, options=2416188160,
table_alias=0x7f46c8006aa0 "a", bit_fields_as_long=false, create_table=false) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_union.cc:275
#17 0x0000000000c6a81c in mysql_derived_prepare (thd=0x7f46c8000d30, lex=0x7f46c80030a0, derived=0x7f46c80258c8)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_derived.cc:204
#18 0x0000000000c6a5af in mysql_handle_single_derived (lex=0x7f46c80030a0, derived=0x7f46c80258c8, processor=0xc6a5c6 <mysql_derived_prepare(THD*, LEX*, TABLE_LIST*)>)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_derived.cc:106
#19 0x0000000000c6a512 in mysql_handle_derived (lex=0x7f46c80030a0, processor=0xc6a5c6 <mysql_derived_prepare(THD*, LEX*, TABLE_LIST*)>)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_derived.cc:77
#20 0x0000000000c3a0b2 in open_normal_and_derived_tables (thd=0x7f46c8000d30, tables=0x7f46c80258c8, flags=0)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_base.cc:6102
#21 0x0000000000cbbe3f in execute_sqlcom_select (thd=0x7f46c8000d30, all_tables=0x7f46c80258c8) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:4974
#22 0x0000000000cb4078 in mysql_execute_command (thd=0x7f46c8000d30) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:2487
#23 0x0000000000cbce6a in mysql_parse (thd=0x7f46c8000d30, parser_state=0x7f4704f29660) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:5397
#24 0x0000000000cb0f2c in dispatch_command (command=COM_QUERY, thd=0x7f46c8000d30, packet=0x7f46c8009a61 "select * from(SELECT MIN(GET_LOCK(0,0)/ '0b0' ^ (RAND()))) as a", packet_length=63)
at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:1249
#25 0x0000000000cafbd4 in do_command (thd=0x7f46c8000d30) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:833
#26 0x0000000000dbe89c in handle_connection (arg=0x4908160) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/sql/conn_handler/connection_handler_per_thread.cc:298
#27 0x000000000138347f in pfs_spawn_thread (arg=0x49a6db0) at /pb2/build/sb_0-13559856-1414670154.69/mysqlcom-pro-5.7.6-m16/storage/perfschema/pfs.cc:2137
#28 0x0000003deb0079d1 in start_thread (arg=0x7f4704f2a700) at pthread_create.c:301
#29 0x0000003deace89dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
(gdb)
[root@cluster-repo mysql-advanced-5.7.6]# more docs/INFO_SRC
revision-id: knut.hatlen@oracle.com-20141030112312-87lkavvjlg9cqtvz
date: 2014-10-30 12:23:12 +0100
build-date: 2014-10-30 12:30:43 +0100
revno: 9156
branch-nick: daily-trunk-el6
MySQL source 5.7.6
[2 Feb 2015 15:45]
Paul DuBois
Noted in 5.7.6 changelog. For subqueries that used GET_LOCK() or RELEASE_LOCK() in decimal context, the server could create ill-defined temporary tables, resulting in a raised assertion.
