[MDEV-21406] Wrong result or Assertion `tmp != ((long long) 0x8000000000000000LL)' failed in TIME_from_longlong_datetime_packed Created: 2019-12-30  Updated: 2023-11-28

Status: Confirmed
Project: MariaDB Server
Component/s: Temporal Types
Affects Version/s: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10, 10.11
Fix Version/s: 10.4, 10.5, 10.6

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Alexander Barkov
Resolution: Unresolved Votes: 0
Labels: upstream

Issue Links:
Relates
relates to MDEV-24510 Assertion `tmp != ((long long) 0x8000... Closed
relates to MDEV-26507 Assertion `tmp != ((long long) 0x8000... Closed

 Description   

CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP, b INT);
INSERT INTO t1 () VALUES (),();
SELECT * FROM t1 WHERE IFNULL(b, DEFAULT(a)) IS NOT NULL;
 
# Cleanup
DROP TABLE t1;

On a debug build with ASAN (on some reason only with ASAN) the test case causes an assertion failure:

10.4 071feae3 debug ASAN

mysqld: /data/src/10.4/sql/compat56.cc:271: void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong): Assertion `tmp != ((long long) 0x8000000000000000LL)' failed.
191230  2:14:18 [ERROR] mysqld got signal 6 ;
 
#6  0x00007fc1221c3e67 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x556a7c450540 "tmp != ((long long) 0x8", '0' <repeats 15 times>, "LL)", file=file@entry=0x556a7c4502a0 "/data/src/10.4/sql/compat56.cc", line=line@entry=271, function=function@entry=0x556a7c4508e0 <TIME_from_longlong_datetime_packed(st_mysql_time*, long long)::__PRETTY_FUNCTION__> "void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong)") at assert.c:92
#7  0x00007fc1221c3f12 in __GI___assert_fail (assertion=0x556a7c450540 "tmp != ((long long) 0x8", '0' <repeats 15 times>, "LL)", file=0x556a7c4502a0 "/data/src/10.4/sql/compat56.cc", line=271, function=0x556a7c4508e0 <TIME_from_longlong_datetime_packed(st_mysql_time*, long long)::__PRETTY_FUNCTION__> "void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong)") at assert.c:101
#8  0x0000556a7acda9b4 in TIME_from_longlong_datetime_packed (ltime=0x7fc119518900, tmp=-9223372036854775808) at /data/src/10.4/sql/compat56.cc:271
#9  0x0000556a7ad17374 in Field_datetimef::get_TIME (this=0x62b0000648d8, ltime=0x7fc119518900, pos=0x62b0000649b9 "", fuzzydate=...) at /data/src/10.4/sql/field.cc:6971
#10 0x0000556a7ad46985 in Field_datetimef::get_date (this=0x62b0000648d8, ltime=0x7fc119518900, fuzzydate=...) at /data/src/10.4/sql/field.h:3467
#11 0x0000556a7adc999d in Item_field::get_date_result (this=0x62b0000632f8, thd=0x62b000046270, ltime=0x7fc119518900, fuzzydate=...) at /data/src/10.4/sql/item.cc:3229
#12 0x0000556a7adaf83f in Item::val_datetime_packed_result (this=0x62b0000632f8, thd=0x62b000046270) at /data/src/10.4/sql/item.cc:121
#13 0x0000556a7adfe484 in Item_cache_temporal::cache_value (this=0x62b0000666f0) at /data/src/10.4/sql/item.cc:9820
#14 0x0000556a7aaf1080 in Item_cache::has_value (this=0x62b0000666f0) at /data/src/10.4/sql/item.h:6573
#15 0x0000556a7ae0da9b in Item_cache_datetime::val_str (this=0x62b0000666f0, to=0x62b000063488) at /data/src/10.4/sql/item.h:6746
#16 0x0000556a7ae31f87 in Item_func_ifnull::str_op (this=0x62b000063458, str=0x62b000063488) at /data/src/10.4/sql/item_cmpfunc.cc:2389
#17 0x0000556a7aaebdb1 in Item_func_hybrid_field_type::str_op_with_null_check (this=0x62b000063458, str=0x62b000063488) at /data/src/10.4/sql/item_func.h:688
#18 0x0000556a7aaebee9 in Item_func_hybrid_field_type::val_str_from_str_op (this=0x62b000063458, str=0x7fc119518bb0) at /data/src/10.4/sql/item_func.h:697
#19 0x0000556a7aac90c7 in Type_handler_string_result::Item_func_hybrid_field_type_val_str (this=0x556a7d334ec0 <type_handler_varchar>, item=0x62b000063458, str=0x7fc119518bb0) at /data/src/10.4/sql/sql_type.cc:4930
#20 0x0000556a7a5d5380 in Item_func_hybrid_field_type::val_str (this=0x62b000063458, str=0x7fc119518bb0) at /data/src/10.4/sql/item_func.h:769
#21 0x0000556a7aac3f3a in Type_handler_string_result::Item_update_null_value (this=0x556a7d334ec0 <type_handler_varchar>, item=0x62b000063458) at /data/src/10.4/sql/sql_type.cc:3590
#22 0x0000556a7a39b574 in Item::update_null_value (this=0x62b000063458) at /data/src/10.4/sql/item.h:1783
#23 0x0000556a7a52bd74 in Item_func::is_null (this=0x62b000063458) at /data/src/10.4/sql/item_func.h:184
#24 0x0000556a7ae4b388 in Item_func_isnotnull::val_int (this=0x62b000063530) at /data/src/10.4/sql/item_cmpfunc.cc:5435
#25 0x0000556a7a72ddf1 in evaluate_join_record (join=0x62b000063f50, join_tab=0x62b000065d90, error=0) at /data/src/10.4/sql/sql_select.cc:20350
#26 0x0000556a7a72d254 in sub_select (join=0x62b000063f50, join_tab=0x62b000065d90, end_of_records=false) at /data/src/10.4/sql/sql_select.cc:20255
#27 0x0000556a7a72b63d in do_select (join=0x62b000063f50, procedure=0x0) at /data/src/10.4/sql/sql_select.cc:19793
#28 0x0000556a7a6c4a44 in JOIN::exec_inner (this=0x62b000063f50) at /data/src/10.4/sql/sql_select.cc:4452
#29 0x0000556a7a6c2350 in JOIN::exec (this=0x62b000063f50) at /data/src/10.4/sql/sql_select.cc:4234
#30 0x0000556a7a6c5e02 in mysql_select (thd=0x62b000046270, tables=0x62b000062970, wild_num=1, fields=..., conds=0x62b000063530, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x62b000063f20, unit=0x62b00004a198, select_lex=0x62b000062378) at /data/src/10.4/sql/sql_select.cc:4666
#31 0x0000556a7a69b649 in handle_select (thd=0x62b000046270, lex=0x62b00004a0d8, result=0x62b000063f20, setup_tables_done_option=0) at /data/src/10.4/sql/sql_select.cc:420
#32 0x0000556a7a61dc83 in execute_sqlcom_select (thd=0x62b000046270, all_tables=0x62b000062970) at /data/src/10.4/sql/sql_parse.cc:6360
#33 0x0000556a7a60ba27 in mysql_execute_command (thd=0x62b000046270) at /data/src/10.4/sql/sql_parse.cc:3899
#34 0x0000556a7a6262a2 in mysql_parse (thd=0x62b000046270, rawbuf=0x62b000062290 "SELECT * FROM t1 WHERE IFNULL(b, DEFAULT(a)) IS NOT NULL", length=56, parser_state=0x7fc11951b290, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7901
#35 0x0000556a7a5ff555 in dispatch_command (command=COM_QUERY, thd=0x62b000046270, packet=0x629000221271 "", packet_length=56, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1842
#36 0x0000556a7a5fc455 in do_command (thd=0x62b000046270) at /data/src/10.4/sql/sql_parse.cc:1360
#37 0x0000556a7a9830b1 in do_handle_one_connection (connect=0x611000002630) at /data/src/10.4/sql/sql_connect.cc:1412
#38 0x0000556a7a982a65 in handle_one_connection (arg=0x611000002630) at /data/src/10.4/sql/sql_connect.cc:1316
#39 0x0000556a7bde6dfe in pfs_spawn_thread (arg=0x6160000033f0) at /data/src/10.4/storage/perfschema/pfs.cc:1862
#40 0x00007fc12414c4a4 in start_thread (arg=0x7fc11951d300) at pthread_create.c:456
#41 0x00007fc122280d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Reproducible on 10.3-10.5.

Non-ASAN builds of 10.3-10.5 and any builds of 10.1-10.2, as well as MySQL 5.6/5.7/8.0, don't crash, but they return the empty result set:

SELECT * FROM t1 WHERE IFNULL(b, DEFAULT(a)) IS NOT NULL;
a	b
DROP TABLE t1;

This seems to be wrong, because IFNULL(b, DEFAULT(a)) IS NOT NULL is clearly true:

SELECT IFNULL(b, DEFAULT(a)) IS NOT NULL FROM t1;
IFNULL(b, DEFAULT(a)) IS NOT NULL
1
1

Also, if DATETIME is replaced with TIMESTAMP in the same case, then the result set is returned:

CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP, b INT);
INSERT INTO t1 () VALUES (),();
SELECT * FROM t1 WHERE IFNULL(b, DEFAULT(a)) IS NOT NULL;
a	b
2019-12-30 02:23:13	NULL
2019-12-30 02:23:13	NULL
DROP TABLE t1;

Finally, here is a variation of the test case which causes the same assertion failure on 10.3 and 10.5 ASAN builds, but a different one on 10.4 ASAN build. The change in the test case is the absence of IS NOT NULL in the WHERE clause:

CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP, b INT);
INSERT INTO t1 () VALUES (),();
SELECT * FROM t1 WHERE IFNULL(b, DEFAULT(a));
 
# Cleanup
DROP TABLE t1;

10.4 071feae3 debug ASAN

mysqld: /data/src/10.4/sql/sql_type.h:2064: Datetime::Datetime(THD*, Item*, date_mode_t): Assertion `is_valid_value_slow()' failed.
191230  2:26:42 [ERROR] mysqld got signal 6 ;
 
#7  0x00007fbb7fd4ff12 in __GI___assert_fail (assertion=0x556fa264dea0 "is_valid_value_slow()", file=0x556fa264de00 "/data/src/10.4/sql/sql_type.h", line=2064, function=0x556fa264ecc0 <Datetime::Datetime(THD*, Item*, date_mode_t)::__PRETTY_FUNCTION__> "Datetime::Datetime(THD*, Item*, date_mode_t)") at assert.c:101
#8  0x0000556fa08f961f in Datetime::Datetime (this=0x7fbb770a1df0, thd=0x62b000046270, item=0x62b000066590, fuzzydate=...) at /data/src/10.4/sql/sql_type.h:2064
#9  0x0000556fa1041438 in Datetime::Datetime (this=0x7fbb770a1e60, thd=0x62b000046270, item=0x62b000066590) at /data/src/10.4/sql/sql_type.h:2067
#10 0x0000556fa10414f5 in Datetime::Datetime (this=0x7fbb770a1e60, item=0x62b000066590) at /data/src/10.4/sql/sql_type.h:2070
#11 0x0000556fa136daf2 in Item_cache_datetime::val_str (this=0x62b000066590, to=0x62b000063470) at /data/src/10.4/sql/item.h:6746
#12 0x0000556fa1391f87 in Item_func_ifnull::str_op (this=0x62b000063440, str=0x62b000063470) at /data/src/10.4/sql/item_cmpfunc.cc:2389
#13 0x0000556fa104bdb1 in Item_func_hybrid_field_type::str_op_with_null_check (this=0x62b000063440, str=0x62b000063470) at /data/src/10.4/sql/item_func.h:688
#14 0x0000556fa1407059 in Item_func_hybrid_field_type::val_int_from_str_op (this=0x62b000063440) at /data/src/10.4/sql/item_func.cc:943
#15 0x0000556fa1029112 in Type_handler_string_result::Item_func_hybrid_field_type_val_int (this=0x556fa3894ec0 <type_handler_varchar>, item=0x62b000063440) at /data/src/10.4/sql/sql_type.cc:4948
#16 0x0000556fa0b350cf in Item_func_hybrid_field_type::val_int (this=0x62b000063440) at /data/src/10.4/sql/item_func.h:757
#17 0x0000556fa0c8ddf1 in evaluate_join_record (join=0x62b000063e60, join_tab=0x62b000065c30, error=0) at /data/src/10.4/sql/sql_select.cc:20350
#18 0x0000556fa0c8d254 in sub_select (join=0x62b000063e60, join_tab=0x62b000065c30, end_of_records=false) at /data/src/10.4/sql/sql_select.cc:20255
#19 0x0000556fa0c8b63d in do_select (join=0x62b000063e60, procedure=0x0) at /data/src/10.4/sql/sql_select.cc:19793
#20 0x0000556fa0c24a44 in JOIN::exec_inner (this=0x62b000063e60) at /data/src/10.4/sql/sql_select.cc:4452
#21 0x0000556fa0c22350 in JOIN::exec (this=0x62b000063e60) at /data/src/10.4/sql/sql_select.cc:4234
#22 0x0000556fa0c25e02 in mysql_select (thd=0x62b000046270, tables=0x62b000062958, wild_num=1, fields=..., conds=0x62b000063440, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x62b000063e30, unit=0x62b00004a198, select_lex=0x62b000062360) at /data/src/10.4/sql/sql_select.cc:4666
#23 0x0000556fa0bfb649 in handle_select (thd=0x62b000046270, lex=0x62b00004a0d8, result=0x62b000063e30, setup_tables_done_option=0) at /data/src/10.4/sql/sql_select.cc:420
#24 0x0000556fa0b7dc83 in execute_sqlcom_select (thd=0x62b000046270, all_tables=0x62b000062958) at /data/src/10.4/sql/sql_parse.cc:6360
#25 0x0000556fa0b6ba27 in mysql_execute_command (thd=0x62b000046270) at /data/src/10.4/sql/sql_parse.cc:3899
#26 0x0000556fa0b862a2 in mysql_parse (thd=0x62b000046270, rawbuf=0x62b000062290 "SELECT * FROM t1 WHERE IFNULL(b, DEFAULT(a))", length=44, parser_state=0x7fbb770a4290, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7901
#27 0x0000556fa0b5f555 in dispatch_command (command=COM_QUERY, thd=0x62b000046270, packet=0x629000221271 "", packet_length=44, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1842
#28 0x0000556fa0b5c455 in do_command (thd=0x62b000046270) at /data/src/10.4/sql/sql_parse.cc:1360
#29 0x0000556fa0ee30b1 in do_handle_one_connection (connect=0x611000002630) at /data/src/10.4/sql/sql_connect.cc:1412
#30 0x0000556fa0ee2a65 in handle_one_connection (arg=0x611000002630) at /data/src/10.4/sql/sql_connect.cc:1316
#31 0x0000556fa2346dfe in pfs_spawn_thread (arg=0x6160000033f0) at /data/src/10.4/storage/perfschema/pfs.cc:1862
#32 0x00007fbb81cd84a4 in start_thread (arg=0x7fbb770a6300) at pthread_create.c:456
#33 0x00007fbb7fe0cd0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97



 Comments   
Comment by Elena Stepanova [ 2021-01-20 ]

Without IFNULL. Also only reproducible on an ASAN build (10.5 debug ASAN).

CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP);
SELECT * FROM t1 WHERE DEFAULT(a) < 0 ORDER BY BINARY(DES_ENCRYPT('bar' >= 'foo'));
 
# Cleanup
DROP TABLE t1;

10.5 9930cb22 ASAN

mariadbd: /data/src/10.5/sql/compat56.cc:271: void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong): Assertion `tmp != ((long long) 0x8000000000000000LL)' failed.
210120 21:04:46 [ERROR] mysqld got signal 6 ;
 
#7  0x00007ff2adbb1f36 in __GI___assert_fail (assertion=0x560d64010ae0 "tmp != ((long long) 0x8", '0' <repeats 15 times>, "LL)", file=0x560d64010640 "/data/src/10.5/sql/compat56.cc", line=271, function=0x560d64010a80 "void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong)") at assert.c:101
#8  0x0000560d62240fc4 in TIME_from_longlong_datetime_packed (ltime=0x7ff2a49f29f0, tmp=-9223372036854775808) at /data/src/10.5/sql/compat56.cc:271
#9  0x0000560d62286407 in Field_datetimef::val_datetime_packed (this=0x62b00003aff8, thd=0x62b000069288) at /data/src/10.5/sql/field.cc:7115
#10 0x0000560d62354ff1 in Item_field::val_datetime_packed (this=0x62b000039240, thd=0x62b000069288) at /data/src/10.5/sql/item.cc:3322
#11 0x0000560d623b2a97 in Arg_comparator::compare_datetime (this=0x62b000039518) at /data/src/10.5/sql/item_cmpfunc.cc:741
#12 0x0000560d623f9962 in Arg_comparator::compare (this=0x62b000039518) at /data/src/10.5/sql/item_cmpfunc.h:102
#13 0x0000560d623c043b in Item_func_lt::val_int (this=0x62b000039448) at /data/src/10.5/sql/item_cmpfunc.cc:1829
#14 0x0000560d6209c2b6 in Type_handler_int_result::Item_val_bool (this=0x560d65efb260 <type_handler_bool>, item=0x62b000039448) at /data/src/10.5/sql/sql_type.cc:4998
#15 0x0000560d6181d590 in Item::val_bool (this=0x62b000039448) at /data/src/10.5/sql/item.h:1489
#16 0x0000560d61c79f12 in Item::eval_const_cond (this=0x62b000039448) at /data/src/10.5/sql/item.h:1496
#17 0x0000560d61c163f6 in Item_bool_func2::remove_eq_conds (this=0x62b000039448, thd=0x62b000069288, cond_value=0x62b00003aac8, top_level_arg=true) at /data/src/10.5/sql/sql_select.cc:17504
#18 0x0000560d61c136c0 in optimize_cond (join=0x62b00003a7b0, conds=0x62b000039448, join_list=0x62b000038588, ignore_on_conds=false, cond_value=0x62b00003aac8, cond_equal=0x62b00003abf0, flags=1) at /data/src/10.5/sql/sql_select.cc:17040
#19 0x0000560d61ba1318 in JOIN::optimize_inner (this=0x62b00003a7b0) at /data/src/10.5/sql/sql_select.cc:1995
#20 0x0000560d61b9d242 in JOIN::optimize (this=0x62b00003a7b0) at /data/src/10.5/sql/sql_select.cc:1627
#21 0x0000560d61bbd4f3 in mysql_select (thd=0x62b000069288, tables=0x62b0000389e8, fields=..., conds=0x62b000039448, og_num=1, order=0x62b00003a550, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x62b00003a780, unit=0x62b00006d428, select_lex=0x62b0000383c0) at /data/src/10.5/sql/sql_select.cc:4644
#22 0x0000560d61b8f46c in handle_select (thd=0x62b000069288, lex=0x62b00006d360, result=0x62b00003a780, setup_tables_done_option=0) at /data/src/10.5/sql/sql_select.cc:417
#23 0x0000560d61af8a68 in execute_sqlcom_select (thd=0x62b000069288, all_tables=0x62b0000389e8) at /data/src/10.5/sql/sql_parse.cc:6281
#24 0x0000560d61ae7969 in mysql_execute_command (thd=0x62b000069288) at /data/src/10.5/sql/sql_parse.cc:3977
#25 0x0000560d61b03d62 in mysql_parse (thd=0x62b000069288, rawbuf=0x62b0000382a8 "SELECT * FROM t1 WHERE DEFAULT(a) < 0 ORDER BY BINARY(DES_ENCRYPT('bar' >= 'foo'))", length=82, parser_state=0x7ff2a49f47c0, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:8062
#26 0x0000560d61ada05b in dispatch_command (command=COM_QUERY, thd=0x62b000069288, packet=0x62900024e289 "SELECT * FROM t1 WHERE DEFAULT(a) < 0 ORDER BY BINARY(DES_ENCRYPT('bar' >= 'foo'))", packet_length=82, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:1889
#27 0x0000560d61ad6984 in do_command (thd=0x62b000069288) at /data/src/10.5/sql/sql_parse.cc:1370
#28 0x0000560d61f18bea in do_handle_one_connection (connect=0x61100000b888, put_in_cache=true) at /data/src/10.5/sql/sql_connect.cc:1410
#29 0x0000560d61f1854e in handle_one_connection (arg=0x61100000b748) at /data/src/10.5/sql/sql_connect.cc:1312
#30 0x0000560d62c23e99 in pfs_spawn_thread (arg=0x6160000eb308) at /data/src/10.5/storage/perfschema/pfs.cc:2201
#31 0x00007ff2ae0c7609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#32 0x00007ff2adc9d293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Comment by Alice Sherepa [ 2021-03-04 ]

also on 10.5

create table t1 (d1 datetime not null);
insert into t1 values ('0000-00-00 00:00:00'), ('0000-00-00 00:00:00');
 
select avg(d1) over () from t1 group by uuid()  with rollup;

10.5 1f1f61a9de0c85

Version: '10.5.10-MariaDB-debug-log' 
/10.5/sql/compat56.cc:271: void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong): Assertion `tmp != ((long long) 0x8000000000000000LL)' failed.
210304 16:29:22 [ERROR] mysqld got signal 6 ;
 
linux/raise.c:51(__GI_raise)[0x7f615d72b18b]
stdlib/abort.c:81(__GI_abort)[0x7f615d70a859]
intl/loadmsgcat.c:509(get_sysdep_segment_value)[0x7f615d70a729]
:0(__GI___assert_fail)[0x7f615d71bf36]
sql/compat56.cc:273(TIME_from_longlong_datetime_packed(st_mysql_time*, long long))[0x561b8258a054]
sql/field.cc:7103(Field_datetimef::get_TIME(st_mysql_time*, unsigned char const*, date_mode_t) const)[0x561b825cf13b]
sql/field.h:3923(Field_datetimef::get_date(st_mysql_time*, date_mode_t))[0x561b825fdf99]
sql/field.cc:5854(Field_temporal::val_decimal(my_decimal*))[0x561b825bffcf]
sql/item.cc:3360(Item_field::val_decimal_result(my_decimal*))[0x561b8269e7b4]
sql/item.cc:8363(Item_ref::val_decimal(my_decimal*))[0x561b826c8a80]
sql/item_sum.cc:1807(Aggregator_simple::arg_val_decimal(my_decimal*))[0x561b828b2eaa]
sql/item_sum.cc:1629(Item_sum_sum::add_helper(bool))[0x561b828b113a]
sql/item_sum.cc:1602(Item_sum_sum::add())[0x561b828b0b8b]
sql/item_sum.cc:2025(Item_sum_avg::add())[0x561b828b626c]
sql/sql_window.cc:1102(Frame_cursor::add_value_to_items())[0x561b82441c03]
sql/sql_window.cc:1515(Frame_range_current_row_bottom::pre_next_partition(unsigned long long))[0x561b824442c1]
sql/sql_window.cc:1162(Cursor_manager::notify_cursors_partition_changed(unsigned long long))[0x561b82442355]
sql/sql_window.cc:2845(compute_window_func(THD*, List<Item_window_func>&, List<Cursor_manager>&, TABLE*, SORT_INFO*))[0x561b8243d34f]
sql/sql_window.cc:2976(Window_func_runner::exec(THD*, TABLE*, SORT_INFO*))[0x561b8243db58]
sql/sql_window.cc:3004(Window_funcs_sort::exec(JOIN*, bool))[0x561b8243dda6]
sql/sql_window.cc:3131(Window_funcs_computation::exec(JOIN*, bool))[0x561b8243ebae]
sql/sql_select.cc:28962(AGGR_OP::end_send())[0x561b81fb93f0]
sql/sql_select.cc:20397(sub_select_postjoin_aggr(JOIN*, st_join_table*, bool))[0x561b81f78b13]
sql/sql_select.cc:20632(sub_select(JOIN*, st_join_table*, bool))[0x561b81f794c6]
sql/sql_select.cc:20223(do_select(JOIN*, Procedure*))[0x561b81f77f08]
sql/sql_select.cc:4467(JOIN::exec_inner())[0x561b81f046b9]
sql/sql_select.cc:4248(JOIN::exec())[0x561b81f01ca4]
sql/sql_select.cc:4722(mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x561b81f06078]
sql/sql_select.cc:417(handle_select(THD*, LEX*, select_result*, unsigned long))[0x561b81ed78b6]
sql/sql_parse.cc:6282(execute_sqlcom_select(THD*, TABLE_LIST*))[0x561b81e41024]
sql/sql_parse.cc:3978(mysql_execute_command(THD*))[0x561b81e2ff1f]
sql/sql_parse.cc:8063(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x561b81e4c31e]
sql/sql_parse.cc:1892(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x561b81e22517]
sql/sql_parse.cc:1370(do_command(THD*))[0x561b81e1ee40]
sql/sql_connect.cc:1410(do_handle_one_connection(CONNECT*, bool))[0x561b822616dc]
sql/sql_connect.cc:1314(handle_one_connection)[0x561b82261040]
perfschema/pfs.cc:2203(pfs_spawn_thread)[0x561b82f70bf7]
nptl/pthread_create.c:478(start_thread)[0x7f615dc33609]
x86_64/clone.S:97(__GI___clone)[0x7f615d807293]
 
Query (0x62b0000852a8): select avg(d1) over () from t1 group by uuid()  with rollup

Comment by Alexander Barkov [ 2022-04-11 ]

Also repeatable with RAND() instead if UUID() with a 10.3 ASAN build:

create or replace table t1 (d1 datetime not null);
insert into t1 values ('0000-00-00 00:00:00'), ('0000-00-00 00:00:00');
select avg(d1) over () from t1 group by rand()  with rollup;

No crash in a DEBUG build (without ASAN).

Comment by Roel Van de Paar [ 2022-09-28 ]

(Crashes without ASAN)

INSTALL PLUGIN Spider SONAME 'ha_spider.so';
CREATE USER Spider@localhost IDENTIFIED BY 'PWD123';
CREATE SERVER srv FOREIGN DATA WRAPPER MYSQL OPTIONS (SOCKET '../socket.sock',DATABASE 'test',user 'Spider',PASSWORD 'PWD123');
CREATE TABLE t (c INT) ENGINE=InnoDB;
CREATE TABLE t2 (DATE DATETIME,KEY DATE (DATE)) ENGINE=Spider COMMENT='WRAPPER "mysql",srv "srv",TABLE "t"';
EXPLAIN SELECT 1 FROM DUAL WHERE (0) IN (SELECT * FROM t2);

Leads to:

10.11.0 6ebdd3013a18b01dbecec76b870810329eb76586 (Debug)

mysqld: /test/10.11_dbg/sql/compat56.cc:271: void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong): Assertion `tmp != ((long long) 0x8000000000000000LL)' failed.

10.11.0 6ebdd3013a18b01dbecec76b870810329eb76586 (Debug)

Core was generated by `/test/MD190922-mariadb-10.11.0-linux-x86_64-dbg/bin/mysqld --no-defaults --core'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
[Current thread is 1 (Thread 0x14ea28096700 (LWP 4033029))]
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x000014ea3f407859 in __GI_abort () at abort.c:79
#2  0x000014ea3f407729 in __assert_fail_base (fmt=0x14ea3f59d588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55fa1c5e4ba8 "tmp != ((long long) 0x8", '0' <repeats 15 times>, "LL)", file=0x55fa1c5e4998 "/test/10.11_dbg/sql/compat56.cc", line=271, function=<optimized out>) at assert.c:92
#3  0x000014ea3f418fd6 in __GI___assert_fail (assertion=assertion@entry=0x55fa1c5e4ba8 "tmp != ((long long) 0x8", '0' <repeats 15 times>, "LL)", file=file@entry=0x55fa1c5e4998 "/test/10.11_dbg/sql/compat56.cc", line=line@entry=271, function=function@entry=0x55fa1c5e4b68 "void TIME_from_longlong_datetime_packed(MYSQL_TIME*, longlong)") at assert.c:101
#4  0x000055fa1bb32a56 in TIME_from_longlong_datetime_packed (ltime=ltime@entry=0x14ea28093990, tmp=tmp@entry=-9223372036854775808) at /test/10.11_dbg/sql/compat56.cc:271
#5  0x000055fa1bb419fd in Field_datetimef::get_TIME (this=<optimized out>, ltime=0x14ea28093990, pos=0x14e9e40171a9 "", fuzzydate={m_mode = date_mode_t::CONV_NONE}) at /test/10.11_dbg/sql/field.cc:7197
#6  0x000055fa1bb61b2b in Field_datetimef::get_date (this=<optimized out>, ltime=<optimized out>, fuzzydate=<optimized out>) at /test/10.11_dbg/sql/field.h:3961
#7  0x000055fa1bb394af in Field_datetime_with_dec::val_str (this=0x14e9e404ff80, str=0x14ea28093a38, unused=<optimized out>) at /test/10.11_dbg/sql/sql_basic_types.h:204
#8  0x000014ea223a7e54 in Field::val_str (str=0x14ea28093a38, this=0x14e9e404ff80) at /test/10.11_dbg/sql/field.h:1604
#9  Field::val_str (new_ptr=0x14e9e40171a9 "", str=0x14ea28093a38, this=0x14e9e404ff80) at /test/10.11_dbg/sql/field.h:1604
#10 spider_db_mysql_util::append_column_value (this=0x14ea22414150 <spider_db_mysql_utility>, spider=<optimized out>, str=0x14e9e4084ae0, field=0x14e9e404ff80, new_ptr=0x14e9e40171a9 "", is_like=<optimized out>, access_charset=0x55fa1cd9e120 <my_charset_latin1>) at /test/10.11_dbg/storage/spider/spd_db_mysql.cc:4206
#11 0x000014ea2230f1a5 in spider_db_append_key_where_internal (str=0x14e9e4084ae0, str_part=str_part@entry=0x0, str_part2=str_part2@entry=0x0, start_key=0x14ea28094340, end_key=0x0, spider=0x14e9e4078600, set_order=false, sql_type=1, dbton_id=0) at /test/10.11_dbg/storage/spider/spd_db_conn.cc:1737
#12 0x000014ea223bd4b9 in spider_mbase_handler::append_key_where (this=<optimized out>, str=<optimized out>, str_part=str_part@entry=0x0, str_part2=str_part2@entry=0x0, start_key=<optimized out>, end_key=<optimized out>, sql_type=1, set_order=false) at /test/10.11_dbg/storage/spider/spd_db_mysql.cc:10659
#13 0x000014ea223bd4f7 in spider_mbase_handler::append_key_where_part (this=<optimized out>, start_key=<optimized out>, end_key=<optimized out>, sql_type=<optimized out>) at /test/10.11_dbg/storage/spider/spd_db_mysql.cc:10643
#14 0x000014ea223810db in ha_spider::append_key_where_sql_part (this=this@entry=0x14e9e4078600, start_key=start_key@entry=0x14ea28094340, end_key=end_key@entry=0x0, sql_type=sql_type@entry=1) at /test/10.11_dbg/storage/spider/ha_spider.cc:10933
#15 0x000014ea223102f8 in spider_db_append_key_where (start_key=start_key@entry=0x14ea28094340, end_key=end_key@entry=0x0, spider=spider@entry=0x14e9e4078600) at /test/10.11_dbg/storage/spider/spd_db_conn.cc:2052
#16 0x000014ea22381e57 in ha_spider::index_read_map_internal (this=this@entry=0x14e9e4078600, buf=buf@entry=0x14e9e404ff38 "\377\200", key=key@entry=0x14e9e40171a8 "", keypart_map=keypart_map@entry=1, find_flag=find_flag@entry=HA_READ_KEY_EXACT) at /test/10.11_dbg/storage/spider/ha_spider.cc:1348
#17 0x000014ea22382d87 in ha_spider::index_read_map (this=0x14e9e4078600, buf=0x14e9e404ff38 "\377\200", key=0x14e9e40171a8 "", keypart_map=1, find_flag=HA_READ_KEY_EXACT) at /test/10.11_dbg/storage/spider/ha_spider.cc:1632
#18 0x000055fa1bb74e41 in handler::ha_index_read_map (this=0x14e9e4078600, buf=0x14e9e404ff38 "\377\200", key=0x14e9e40171a8 "", keypart_map=1, find_flag=find_flag@entry=HA_READ_KEY_EXACT) at /test/10.11_dbg/sql/handler.cc:3472
#19 0x000055fa1bc8807a in subselect_indexsubquery_engine::exec (this=0x14e9e40cca78) at /test/10.11_dbg/sql/item_subselect.cc:4523
#20 0x000055fa1bc7e13a in Item_subselect::exec (this=this@entry=0x14e9e4014d48) at /test/10.11_dbg/sql/item_subselect.cc:855
#21 0x000055fa1bc833e9 in Item_in_subselect::exec (this=0x14e9e4014d48) at /test/10.11_dbg/sql/item_subselect.cc:1037
#22 0x000055fa1bc7d2db in Item_in_subselect::val_bool (this=0x14e9e4014d48) at /test/10.11_dbg/sql/item_subselect.cc:1990
#23 0x000055fa1b754f49 in Item::val_bool_result (this=<optimized out>) at /test/10.11_dbg/sql/item.h:1783
#24 0x000055fa1bbc5b58 in Item_in_optimizer::val_int (this=0x14e9e4016e48) at /test/10.11_dbg/sql/item_cmpfunc.cc:1650
#25 0x000055fa1ba7ceb0 in Type_handler_int_result::Item_val_bool (this=<optimized out>, item=<optimized out>) at /test/10.11_dbg/sql/sql_type.cc:5091
#26 0x000055fa1b754e7a in Item::val_bool (this=0x14e9e4016e48) at /test/10.11_dbg/sql/item.h:1687
#27 0x000055fa1b8c4592 in Item::eval_const_cond (this=0x14e9e4016e48) at /test/10.11_dbg/sql/item.h:1694
#28 Item::remove_eq_conds (this=0x14e9e4016e48, thd=<optimized out>, cond_value=0x14e9e4016388, top_level_arg=<optimized out>) at /test/10.11_dbg/sql/sql_select.cc:18612
#29 0x000055fa1b8c9240 in optimize_cond (join=join@entry=0x14e9e4016000, conds=0x14e9e4016e48, join_list=0x14e9e4013490, ignore_on_conds=ignore_on_conds@entry=false, cond_value=cond_value@entry=0x14e9e4016388, cond_equal=cond_equal@entry=0x14e9e40164b0, flags=1) at /test/10.11_dbg/sql/sql_select.cc:18162
#30 0x000055fa1b90f5ff in JOIN::optimize_inner (this=this@entry=0x14e9e4016000) at /test/10.11_dbg/sql/sql_select.cc:2252
#31 0x000055fa1b910464 in JOIN::optimize (this=this@entry=0x14e9e4016000) at /test/10.11_dbg/sql/sql_select.cc:1864
#32 0x000055fa1b910557 in mysql_select (thd=thd@entry=0x14e9e4000d48, tables=0x0, fields=@0x14e9e4013578: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14e9e40137d0, last = 0x14e9e40137d0, elements = 1}, <No data fields>}, conds=0x14e9e4014d48, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2164525828, result=0x14e9e40159b0, unit=0x14e9e4004f80, select_lex=0x14e9e40132d8) at /test/10.11_dbg/sql/sql_select.cc:5057
#33 0x000055fa1b9110c9 in mysql_explain_union (thd=thd@entry=0x14e9e4000d48, unit=unit@entry=0x14e9e4004f80, result=result@entry=0x14e9e40159b0) at /test/10.11_dbg/sql/sql_select.cc:28494
#34 0x000055fa1b87aaac in execute_sqlcom_select (thd=thd@entry=0x14e9e4000d48, all_tables=0x14e9e4013e38) at /test/10.11_dbg/sql/sql_parse.cc:6199
#35 0x000055fa1b887109 in mysql_execute_command (thd=thd@entry=0x14e9e4000d48, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.11_dbg/sql/sql_parse.cc:3945
#36 0x000055fa1b87503c in mysql_parse (thd=thd@entry=0x14e9e4000d48, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14ea28095330) at /test/10.11_dbg/sql/sql_parse.cc:8037
#37 0x000055fa1b88266d in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14e9e4000d48, packet=packet@entry=0x14e9e400aed9 "", packet_length=packet_length@entry=58, blocking=blocking@entry=true) at /test/10.11_dbg/sql/sql_class.h:1345
#38 0x000055fa1b884d97 in do_command (thd=0x14e9e4000d48, blocking=blocking@entry=true) at /test/10.11_dbg/sql/sql_parse.cc:1407
#39 0x000055fa1b9e8fb9 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55fa1e267608, put_in_cache=put_in_cache@entry=true) at /test/10.11_dbg/sql/sql_connect.cc:1416
#40 0x000055fa1b9e94c3 in handle_one_connection (arg=0x55fa1e267608) at /test/10.11_dbg/sql/sql_connect.cc:1318
#41 0x000014ea3f918609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#42 0x000014ea3f504133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bug confirmed present in:
MariaDB: 10.4.27 (dbg), 10.5.18 (dbg), 10.6.10 (dbg), 10.7.6 (dbg), 10.8.5 (dbg), 10.9.3 (dbg), 10.10.0 (dbg), 10.10.2 (dbg), 10.11.0 (dbg)

Bug (or feature/syntax) confirmed not present in:
MariaDB: 10.3.37 (dbg), 10.3.37 (opt), 10.4.27 (opt), 10.5.18 (opt), 10.6.10 (opt), 10.7.6 (opt), 10.8.5 (opt), 10.9.3 (opt), 10.10.0 (opt), 10.10.2 (opt), 10.11.0 (opt)
MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.38 (dbg), 5.7.38 (opt), 8.0.29 (dbg), 8.0.29 (opt)

Generated at Thu Feb 08 09:06:53 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.