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.