[MDEV-17643] Assertion `nr >= 0.0' failed in Item_sum_std::val_real() Created: 2018-11-08  Updated: 2019-03-26  Resolved: 2019-03-15

Status: Closed
Project: MariaDB Server
Component/s: OTHER
Affects Version/s: 5.5, 10.0, 10.1, 10.2, 10.3
Fix Version/s: 10.2.23, 10.1.39, 10.3.14, 10.4.4

Type: Bug Priority: Major
Reporter: Alice Sherepa Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: upstream

Issue Links:
Relates
relates to MDEV-19050 Item_sum_std: change internal tempora... Stalled

 Description   

CREATE TABLE t1 ( pk int NOT NULL, i1 int NOT NULL, d1 date NOT NULL, t1 time);
INSERT INTO t1 VALUES (7,9,'2007-08-15','03:55:02'),(8,7,'1993-06-05','04:17:51'),(9,7,'2034-07-01','17:31:12'),(10,0,'1998-08-24','08:09:27');
 
SELECT DISTINCT 
STDDEV_SAMP(EXPORT_SET(t1, -1379790335835635712, (i1 + 'o'), (MD5(d1)))) 
FROM t1;

mysqld: /git/10.4/sql/item_sum.cc:2045: virtual double Item_sum_std::val_real(): Assertion `nr >= 0.0' failed.
181108 12:37:47 [ERROR] mysqld got signal 6 ;
 
stdlib/abort.c:91(__GI_abort)[0x7f7e4df6402a]
assert/assert.c:92(__assert_fail_base)[0x7f7e4df5abd7]
/lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f7e4df5ac82]
sql/item_sum.cc:2046(Item_sum_std::val_real())[0x5578c46985b4]
sql/sql_type.cc:6203(Type_handler::Item_send_double(Item*, Protocol*, st_value*) const)[0x5578c4214f30]
sql/sql_type.h:4010(Type_handler_double::Item_send(Item*, Protocol*, st_value*) const)[0x5578c4225956]
/git/10.4/sql/mysqld(+0xdea0d2)[0x5578c3b520d2]
sql/item.h:1019(Item::send(Protocol*, st_value*))[0x5578c3b45708]
sql/protocol.cc:986(Protocol::send_result_set_row(List<Item>*))[0x5578c3cadbb0]
sql/sql_class.cc:2937(select_send::send_data(List<Item>&))[0x5578c3eb7c43]
sql/sql_select.cc:20690(end_send_group(JOIN*, st_join_table*, bool))[0x5578c3ead4b3]
sql/sql_select.cc:19313(sub_select(JOIN*, st_join_table*, bool))[0x5578c3eac127]
sql/sql_select.cc:18904(do_select(JOIN*, Procedure*))[0x5578c3e4abe3]
sql/sql_select.cc:4082(JOIN::exec_inner())[0x5578c3e48928]
sql/sql_select.cc:3877(JOIN::exec())[0x5578c3e4bcb3]
sql/sql_select.cc:4283(mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x5578c3e26079]
sql/sql_select.cc:385(handle_select(THD*, LEX*, select_result*, unsigned long))[0x5578c3dac748]
sql/sql_parse.cc:6554(execute_sqlcom_select(THD*, TABLE_LIST*))[0x5578c3d9aea2]
sql/sql_parse.cc:3773(mysql_execute_command(THD*))[0x5578c3db4ced]
sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x5578c3d8fbea]
sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x5578c3d8cd82]
sql/sql_parse.cc:1396(do_command(THD*))[0x5578c40e19d9]
sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x5578c40e13b6]
sql/sql_connect.cc:1309(handle_one_connection)[0x5578c540cae9]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f7e4eb9f6ba]
x86_64/clone.S:111(clone)[0x7f7e4e03441d]

mysqld: /home/alice/git/5.5/sql/item_sum.cc:1770: virtual double Item_sum_std::val_real(): Assertion `nr >= 0.0' failed.
181108 12:42:22 [ERROR] mysqld got signal 6 ;
 
stdlib/abort.c:91(__GI_abort)[0x7fe14094602a]
assert/assert.c:92(__assert_fail_base)[0x7fe14093cbd7]
/lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7fe14093cc82]
sql/sql_table.cc:3905(set_table_default_charset)[0xbf1dad]
sql/sql_lex.cc:2378(st_select_lex_unit::print(String*, enum_query_type))[0xa5f4ae]
/home/alice/git/5.5/sql/mysqld(_ZN8Protocol19send_result_set_rowEP4ListI4ItemE+0x1e1)[0x528a2d]
/home/alice/git/5.5/sql/mysqld(_ZN11select_send9send_dataER4ListI4ItemE+0x217)[0x5e43a5]
/home/alice/git/5.5/sql/mysqld(_Z14end_send_groupP4JOINP13st_join_tableb+0x699)[0x756cc5]
/home/alice/git/5.5/sql/mysqld(_Z10sub_selectP4JOINP13st_join_tableb+0x1cf)[0x709a90]
/home/alice/git/5.5/sql/mysqld[0x741b0c]
/home/alice/git/5.5/sql/mysqld(_ZN4JOIN4execEv+0x784b)[0x77c785]
/home/alice/git/5.5/sql/mysqld(_Z12mysql_selectP3THDPPP4ItemP10TABLE_LISTjR4ListIS1_ES2_jP8st_orderSB_S2_SB_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x1d1b)[0x76aa46]
/home/alice/git/5.5/sql/mysqld(_Z13handle_selectP3THDP3LEXP13select_resultm+0x40d)[0x76b14a]
/home/alice/git/5.5/sql/mysqld[0x66d465]
/home/alice/git/5.5/sql/mysqld(_Z21mysql_execute_commandP3THD+0x16b5)[0x6831a7]
/home/alice/git/5.5/sql/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x3e9)[0x694e8b]
/home/alice/git/5.5/sql/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x19e2)[0x698288]
/home/alice/git/5.5/sql/mysqld(_Z10do_commandP3THD+0x695)[0x69c366]
/home/alice/git/5.5/sql/mysqld(_Z24do_handle_one_connectionP3THD+0x34d)[0x8ce524]
/home/alice/git/5.5/sql/mysqld(handle_one_connection+0xdc)[0x8ce79d]
myisam/rt_mbr.c:489(rtree_overlapping_area)[0x143c258]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fe14156f6ba]
x86_64/clone.S:111(clone)[0x7fe140a1641d]



 Comments   
Comment by Alexander Barkov [ 2019-03-15 ]

Shorter SQL scripts reproducing the same problem:

CREATE OR REPLACE TABLE t1 (a VARCHAR(128));
INSERT INTO t1 VALUES ('1e310');
INSERT INTO t1 VALUES ('-1e310');
INSERT INTO t1 VALUES ('0');
SELECT STDDEV_SAMP(a) FROM t1;

CREATE OR REPLACE TABLE t1 (a DOUBLE);
INSERT INTO t1 VALUES (1.7e+308), (-1.7e+308), (0);
SELECT STDDEV_SAMP(a) FROM t1;

Comment by Alexander Barkov [ 2019-03-18 ]

Repeatable with MySQL-5.7 and MySQL-8.0.

Generated at Thu Feb 08 08:38:01 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.