Bug #88259 Assertion `mon > 0 && mon < 13' failed.
Submitted: 27 Oct 2017 23:54 Modified: 4 Jan 2018 16:36
Reporter: Roel Van de Paar Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Information schema Severity:S6 (Debug Builds)
Version:8.0.3 RC OS:Any
Assigned to: CPU Architecture:Any
Tags: debug

[27 Oct 2017 23:54] Roel Van de Paar
Description:
Core was generated by `/sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/bin/mysqld --no-defaults --core'.
Program terminated with signal 6, Aborted.
#0  0x00007f0a86f539b1 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
61	  val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
(gdb) bt
#0  0x00007f0a86f539b1 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
#1  0x000000000369e428 in my_write_core (sig=6) at /git/mysql-server_dbg/mysys/stacktrace.cc:291
#2  0x000000000286b8f6 in handle_fatal_signal (sig=6) at /git/mysql-server_dbg/sql/signal_handler.cc:234
#3  <signal handler called>
#4  0x00007f0a8526b1f7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#5  0x00007f0a8526c8e8 in __GI_abort () at abort.c:90
#6  0x00007f0a85264266 in __assert_fail_base (fmt=0x7f0a853b6e68 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x4302fb1 "mon > 0 && mon < 13", file=file@entry=0x4302f30 "/git/mysql-server_dbg/sql/tztime.cc", 
    line=line@entry=877, 
    function=function@entry=0x4303560 <sec_since_epoch(int, int, int, int, int, int)::__PRETTY_FUNCTION__> "my_time_t sec_since_epoch(int, int, int, int, int, int)") at assert.c:92
#7  0x00007f0a85264312 in __GI___assert_fail (assertion=0x4302fb1 "mon > 0 && mon < 13", 
    file=0x4302f30 "/git/mysql-server_dbg/sql/tztime.cc", line=877, 
    function=0x4303560 <sec_since_epoch(int, int, int, int, int, int)::__PRETTY_FUNCTION__> "my_time_t sec_since_epoch(int, int, int, int, int, int)") at assert.c:101
#8  0x00000000025f44fa in sec_since_epoch (year=2000, mon=20, mday=17, hour=0, min=0, sec=0) at /git/mysql-server_dbg/sql/tztime.cc:877
#9  0x00000000025f4d5e in Time_zone_offset::TIME_to_gmt_sec (this=0x7f0a736f5378, t=0x7f0a874f6860, in_dst_time_gap=0x7f0a874f6897)
    at /git/mysql-server_dbg/sql/tztime.cc:1444
#10 0x0000000002830f0c in (anonymous namespace)::is_persistent_statistics_expired (thd=0x7f0a3f419000, 
    cached_timestamp=@0x7f0a874f6d80: 2017) at /git/mysql-server_dbg/sql/dd/info_schema/table_stats.cc:88
#11 0x0000000002832088 in dd::info_schema::Table_statistics::read_stat (this=0x7f0a3f41b910, thd=0x7f0a3f419000, schema_name_ptr=..., 
    table_name_ptr=..., index_name_ptr=..., partition_name=0x0, column_name_ptr=..., index_ordinal_position=0, 
    column_ordinal_position=0, engine_name_ptr=..., se_private_id=30, ts_se_private_data=0x0, tbl_se_private_data=0x0, 
    table_stat_data=@0x7f0a874f6d88: 3, cached_timestamp=@0x7f0a874f6d80: 2017, stype=dd::info_schema::INDEX_COLUMN_CARDINALITY)
    at /git/mysql-server_dbg/sql/dd/info_schema/table_stats.cc:476
#12 0x0000000002abb7a1 in Item_func_internal_index_column_cardinality::val_int (this=0x7f0a3f641cb8)
    at /git/mysql-server_dbg/sql/item_func.cc:9945
#13 0x0000000002a2e6a7 in Item::send (this=0x7f0a3f641cb8, protocol=0x7f0a3f41a0f0, buffer=0x7f0a874f6f30)
    at /git/mysql-server_dbg/sql/item.cc:7602
#14 0x0000000002a31048 in Item_ref::send (this=0x7f0a3f65af90, prot=0x7f0a3f41a0f0, tmp=0x7f0a874f6f30)
    at /git/mysql-server_dbg/sql/item.cc:8572
#15 0x0000000002a32a4c in Item_direct_view_ref::send (this=0x7f0a3f65af90, prot=0x7f0a3f41a0f0, tmp=0x7f0a874f6f30)
    at /git/mysql-server_dbg/sql/item.cc:9110
#16 0x0000000002442635 in THD::send_result_set_row (this=0x7f0a3f419000, row_items=0x7f0a3f42f1e8)
    at /git/mysql-server_dbg/sql/sql_class.cc:2871
#17 0x0000000002bbb560 in Query_result_send::send_data (this=0x7f0a3f659bd8, items=...) at /git/mysql-server_dbg/sql/query_result.cc:96
#18 0x000000000246823d in end_send (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6dfa28, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:3397
#19 0x0000000002464f21 in evaluate_join_record (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df8a8)
    at /git/mysql-server_dbg/sql/sql_executor.cc:2056
#20 0x00000000024642dc in sub_select (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df8a8, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1704
#21 0x0000000002464f21 in evaluate_join_record (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df728)
    at /git/mysql-server_dbg/sql/sql_executor.cc:2056
#22 0x00000000024642dc in sub_select (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df728, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1704
#23 0x0000000002464f21 in evaluate_join_record (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df5a8)
    at /git/mysql-server_dbg/sql/sql_executor.cc:2056
#24 0x00000000024642dc in sub_select (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df5a8, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1704
#25 0x0000000002464f21 in evaluate_join_record (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df428)
    at /git/mysql-server_dbg/sql/sql_executor.cc:2056
#26 0x00000000024642dc in sub_select (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df428, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1704
#27 0x0000000002464f21 in evaluate_join_record (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df2a8)
    at /git/mysql-server_dbg/sql/sql_executor.cc:2056
#28 0x00000000024642dc in sub_select (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df2a8, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1704
#29 0x0000000002464f21 in evaluate_join_record (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df128)
    at /git/mysql-server_dbg/sql/sql_executor.cc:2056
#30 0x00000000024642dc in sub_select (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6df128, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1704
#31 0x0000000002c1d567 in JOIN_CACHE::generate_full_extensions (this=0x7f0a3f6dfba8, rec_ptr=0x7f0a3f6e2020 "\001")
    at /git/mysql-server_dbg/sql/sql_join_buffer.cc:2206
#32 0x0000000002c1d24c in JOIN_CACHE_BNL::join_matching_records (this=0x7f0a3f6dfba8, skip_last=false)
    at /git/mysql-server_dbg/sql/sql_join_buffer.cc:2086
#33 0x0000000002c1cbe4 in JOIN_CACHE::join_records (this=0x7f0a3f6dfba8, skip_last=false)
    at /git/mysql-server_dbg/sql/sql_join_buffer.cc:1894
#34 0x0000000002c1ff69 in JOIN_CACHE::end_send (this=0x7f0a3f6dfba8) at /git/mysql-server_dbg/sql/sql_join_buffer.h:501
#35 0x0000000002463c12 in sub_select_op (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6defa8, end_of_records=true)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1418
#36 0x0000000002463d81 in sub_select (join=0x7f0a3f65b828, qep_tab=0x7f0a3f6dee28, end_of_records=true)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1576
#37 0x0000000002463883 in do_select (join=0x7f0a3f65b828) at /git/mysql-server_dbg/sql/sql_executor.cc:1297
#38 0x0000000002460c55 in JOIN::exec (this=0x7f0a3f65b828) at /git/mysql-server_dbg/sql/sql_executor.cc:285
#39 0x0000000002512b73 in Sql_cmd_dml::execute_inner (this=0x7f0a3f4304d8, thd=0x7f0a3f419000)
    at /git/mysql-server_dbg/sql/sql_select.cc:725
#40 0x0000000002512627 in Sql_cmd_dml::execute (this=0x7f0a3f4304d8, thd=0x7f0a3f419000) at /git/mysql-server_dbg/sql/sql_select.cc:605
#41 0x00000000024be1ff in mysql_execute_command (thd=0x7f0a3f419000, first_level=true) at /git/mysql-server_dbg/sql/sql_parse.cc:4628
#42 0x00000000024c042b in mysql_parse (thd=0x7f0a3f419000, parser_state=0x7f0a874f92f0) at /git/mysql-server_dbg/sql/sql_parse.cc:5414
#43 0x00000000024b68e7 in dispatch_command (thd=0x7f0a3f419000, com_data=0x7f0a874f9b80, command=COM_QUERY)
    at /git/mysql-server_dbg/sql/sql_parse.cc:1708
#44 0x00000000024b53f5 in do_command (thd=0x7f0a3f419000) at /git/mysql-server_dbg/sql/sql_parse.cc:1291
#45 0x000000000285b2d6 in handle_connection (arg=0x7f0a736eb3c0)
    at /git/mysql-server_dbg/sql/conn_handler/connection_handler_per_thread.cc:328
#46 0x00000000036ec54d in pfs_spawn_thread (arg=0x7f0a73793620) at /git/mysql-server_dbg/storage/perfschema/pfs.cc:2985
#47 0x00007f0a86f4ee25 in start_thread (arg=0x7f0a874fa700) at pthread_create.c:308
#48 0x00007f0a8532e34d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

How to repeat:
CREATE DATABASE test;
USE test;
SET SESSION time_zone='-10:00';
CREATE TABLE t1(c1 TIMESTAMP,c2 BINARY,c3 INT,c4 BINARY KEY,c5 TIMESTAMP UNIQUE KEY,c6 FIXED(0,0)DEFAULT 3.141592);
SET collation_connection=utf32_general_ci;
SELECT cardinality FROM information_schema.statistics;
SELECT cardinality FROM information_schema.statistics;
[27 Oct 2017 23:54] Roel Van de Paar
2017-10-27T23:17:23.193766Z 0 [Note] /sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/bin/mysqld: ready for connections. Version: '8.0.3-rc-debug-log'  socket: '/sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/socket.sock'  port: 16654  MySQL Community Server (GPL)
mysqld: /git/mysql-server_dbg/sql/tztime.cc:877: my_time_t sec_since_epoch(int, int, int, int, int, int): Assertion `mon > 0 && mon < 13' failed.
23:22:52 UTC - mysqld got signal 6 ;
[27 Oct 2017 23:54] Roel Van de Paar
This bug is all over the runs. Will add few more testcases.
[28 Oct 2017 0:40] Roel Van de Paar
CREATE DATABASE test;
USE test;
CREATE TABLE t2(a INT,b INT,dummy CHAR DEFAULT,KEY(a));
SET @@time_zone="+12:59";
SET collation_connection=utf16_german2_ci;
select table_name,table_type,auto_increment,table_comment from information_schema.tables;
select table_name,table_type,auto_increment,table_comment from information_schema.tables;

# mysqld options required for replay:  --sql_mode=
CREATE DATABASE test;
USE test;
SET TIME_ZONE='-05:00';
CREATE TABLE t1(a INT,b INT UNSIGNED,c CHAR(1),d CHAR (1),e BINARY (1),f CHAR (1),g BLOB,h BLOB,id INT,KEY(b)) ENGINE=RocksDB;
set names sjis;
show table status;
show table status;
[28 Oct 2017 19:53] MySQL Verification Team
Thank you for the bug report. Verified as described.
[4 Jan 2018 16:36] Paul DuBois
Posted by developer:
 
Fixed in 8.0.4, 9.0.0.

When used as an argument to the IF() function, the value of a
TIMESTAMP column could be handled differently for different
collations.