tempesta-tech / mariadb

MariaDB System Versioning
GNU General Public License v2.0
6 stars 5 forks source link

Merge 10.3 #171

Closed midenok closed 7 years ago

midenok commented 7 years ago
midenok commented 7 years ago

versioning.insert fails:

#0  my_vsnprintf_ex (cs=0x55555710ea20 <my_charset_utf8_general_ci>, to=0x7fffe4728d60 "P7dVUU", n=512, fmt=0x5555579e9dd1 "Field '%-.192s' doesn't have a default value", ap=0x7fffe4728d48) at /home/midenok/src/mariadb/10.2/src/strings/my_vsnprintf.c:559
#1  0x0000555555ae7921 in push_warning_printf (thd=0x7fff8c000b00, level=Sql_condition::WARN_LEVEL_WARN, code=1364, format=0x5555579e9dd1 "Field '%-.192s' doesn't have a default value") at /home/midenok/src/mariadb/10.2/src/sql/sql_error.cc:798
#2  0x0000555555aed169 in has_no_default_value (thd=0x7fff8c000b00, field=0x7fff8c0bb000, table_list=0x7fff8c099070) at /home/midenok/src/mariadb/10.2/src/sql/sql_insert.cc:331
#3  0x0000555555af1809 in check_that_all_fields_are_given_values (thd=0x7fff8c000b00, entry=0x7fff8c0be0d0, table_list=0x7fff8c099070) at /home/midenok/src/mariadb/10.2/src/sql/sql_insert.cc:2043
#4  0x0000555555aee48b in mysql_insert (thd=0x7fff8c000b00, table_list=0x7fff8c099070, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false) at /home/midenok/src/mariadb/10.2/src/sql/sql_insert.cc:907
#5  0x0000555555b16a90 in mysql_execute_command (thd=0x7fff8c000b00) at /home/midenok/src/mariadb/10.2/src/sql/sql_parse.cc:4517
#6  0x0000555555efba06 in sp_instr_stmt::exec_core (this=0x7fff8c09b0f0, thd=0x7fff8c000b00, nextp=0x7fffe4729a94) at /home/midenok/src/mariadb/10.2/src/sql/sp_head.cc:3087
#7  0x0000555555efb03f in sp_lex_keeper::reset_lex_and_exec_core (this=0x7fff8c09b138, thd=0x7fff8c000b00, nextp=0x7fffe4729a94, open_tables=false, instr=0x7fff8c09b0f0) at /home/midenok/src/mariadb/10.2/src/sql/sp_head.cc:2850
#8  0x0000555555efb69d in sp_instr_stmt::execute (this=0x7fff8c09b0f0, thd=0x7fff8c000b00, nextp=0x7fffe4729a94) at /home/midenok/src/mariadb/10.2/src/sql/sp_head.cc:3003
#9  0x0000555555ef6785 in sp_head::execute (this=0x7fff8c091748, thd=0x7fff8c000b00, merge_da_on_success=true) at /home/midenok/src/mariadb/10.2/src/sql/sp_head.cc:1212
#10 0x0000555555ef884c in sp_head::execute_procedure (this=0x7fff8c091748, thd=0x7fff8c000b00, args=0x7fff8c005380) at /home/midenok/src/mariadb/10.2/src/sql/sp_head.cc:2001
#11 0x0000555555b129ca in do_execute_sp (thd=0x7fff8c000b00, sp=0x7fff8c091748) at /home/midenok/src/mariadb/10.2/src/sql/sql_parse.cc:2880
#12 0x0000555555b1a531 in mysql_execute_command (thd=0x7fff8c000b00) at /home/midenok/src/mariadb/10.2/src/sql/sql_parse.cc:5786
#13 0x0000555555b1fa08 in mysql_parse (thd=0x7fff8c000b00, rawbuf=0x7fff8c010d78 "call test_02('bigint unsigned', 'innodb', 'vtq_commit_ts(sys_end)')", length=67, parser_state=0x7fffe472a6b0, is_com_multi=false, is_next_command=false) at /home/midenok/src/mariadb/10.2/src/sql/sql_parse.cc:7877
midenok commented 7 years ago

trx start_time set

#0  trx_start_low (trx=0x7ffff403de40, read_write=true) at /home/midenok/src/mariadb/midenok/src/storage/innobase/trx/trx0trx.cc:1353
#1  0x00005555562349cf in trx_start_if_not_started_xa_low (trx=0x7ffff403de40, read_write=true) at /home/midenok/src/mariadb/midenok/src/storage/innobase/trx/trx0trx.cc:2856
#2  0x00005555561676df in row_insert_for_mysql (mysql_rec=0x7fff8c03f058 "\375!", prebuilt=0x7fff8c046118, ins_mode=ROW_INS_VERSIONED) at /home/midenok/src/mariadb/midenok/src/storage/innobase/row/row0mysql.cc:1482
#3  0x000055555600f507 in ha_innobase::write_row (this=0x7fff8c03e858, record=0x7fff8c03f058 "\375!") at /home/midenok/src/mariadb/midenok/src/storage/innobase/handler/ha_innodb.cc:8730
#4  0x0000555555dfe1e7 in handler::ha_write_row (this=0x7fff8c03e858, buf=0x7fff8c03f058 "\375!") at /home/midenok/src/mariadb/midenok/src/sql/handler.cc:6012
#5  0x0000555555b28875 in write_record (thd=0x7fff8c000b00, table=0x7fff8c03dc40, info=0x7fffe571abb0) at /home/midenok/src/mariadb/midenok/src/sql/sql_insert.cc:1995
#6  0x0000555555b25f08 in mysql_insert (thd=0x7fff8c000b00, table_list=0x7fff8c011080, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false) at /home/midenok/src/mariadb/midenok/src/sql/sql_insert.cc:1058
#7  0x0000555555b56e06 in mysql_execute_command (thd=0x7fff8c000b00) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:4535
#8  0x0000555555b5ff66 in mysql_parse (thd=0x7fff8c000b00, rawbuf=0x7fff8c010f98 "insert into t0 values (33)", length=26, parser_state=0x7fffe571b6b0, is_com_multi=false, is_next_command=false) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:7902

vtq_notify_on_commit set

#0  row_insert_for_mysql (mysql_rec=0x7fff8c03f058 "\375!", prebuilt=0x7fff8c046118, ins_mode=ROW_INS_VERSIONED) at /home/midenok/src/mariadb/midenok/src/storage/innobase/row/row0mysql.cc:1566
#1  0x000055555600f507 in ha_innobase::write_row (this=0x7fff8c03e858, record=0x7fff8c03f058 "\375!") at /home/midenok/src/mariadb/midenok/src/storage/innobase/handler/ha_innodb.cc:8730
#2  0x0000555555dfe1e7 in handler::ha_write_row (this=0x7fff8c03e858, buf=0x7fff8c03f058 "\375!") at /home/midenok/src/mariadb/midenok/src/sql/handler.cc:6012
#3  0x0000555555b28875 in write_record (thd=0x7fff8c000b00, table=0x7fff8c03dc40, info=0x7fffe571abb0) at /home/midenok/src/mariadb/midenok/src/sql/sql_insert.cc:1995
#4  0x0000555555b25f08 in mysql_insert (thd=0x7fff8c000b00, table_list=0x7fff8c011080, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false) at /home/midenok/src/mariadb/midenok/src/sql/sql_insert.cc:1058
#5  0x0000555555b56e06 in mysql_execute_command (thd=0x7fff8c000b00) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:4535
#6  0x0000555555b5ff66 in mysql_parse (thd=0x7fff8c000b00, rawbuf=0x7fff8c010f98 "insert into t0 values (33)", length=26, parser_state=0x7fffe571b6b0, is_com_multi=false, is_next_command=false) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:7902
midenok commented 7 years ago

innodb.log_corruption fails

#0  0x00007f7d0bac16ff in pthread_kill () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00005572a7f6fa34 in my_write_core (sig=11) at /home/midenok/src/mariadb/midenok/src/mysys/stacktrace.c:477
#2  0x00005572a77a58ca in handle_fatal_signal (sig=11) at /home/midenok/src/mariadb/midenok/src/sql/signal_handler.cc:299
#3  <signal handler called>
#4  0x00005572a7be7112 in trx_assign_rseg_low () at /home/midenok/src/mariadb/midenok/src/storage/innobase/trx/trx0trx.cc:1105
#5  0x00005572a7be7a22 in trx_start_low (trx=0x7f7d05e2d988, read_write=true) at /home/midenok/src/mariadb/midenok/src/storage/innobase/trx/trx0trx.cc:1287
#6  0x00005572a7beba5e in trx_start_if_not_started_xa_low (trx=0x7f7d05e2d988, read_write=true) at /home/midenok/src/mariadb/midenok/src/storage/innobase/trx/trx0trx.cc:2861
#7  0x00005572a7afefb5 in row_ins_step (thr=0x5572aa43f048) at /home/midenok/src/mariadb/midenok/src/storage/innobase/row/row0ins.cc:3800
#8  0x00005572a7ac9617 in que_thr_step (thr=0x5572aa43f048) at /home/midenok/src/mariadb/midenok/src/storage/innobase/que/que0que.cc:1032
#9  0x00005572a7ac9922 in que_run_threads_low (thr=0x5572aa43f048) at /home/midenok/src/mariadb/midenok/src/storage/innobase/que/que0que.cc:1114
#10 0x00005572a7ac9ae2 in que_run_threads (thr=0x5572aa43f048) at /home/midenok/src/mariadb/midenok/src/storage/innobase/que/que0que.cc:1154
#11 0x00005572a7ac9d93 in que_eval_sql (info=0x0, sql=0x5572a82d0190 "PROCEDURE CREATE_VTQ_SYS_TABLE_PROC () IS\nBEGIN\nCREATE TABLE\nSYS_VTQ(TRX_ID BIGINT UNSIGNED, COMMIT_ID BIGINT UNSIGNED, BEGIN_TS BIGINT UNSIGNED, COMMIT_TS BIGINT UNSIGNED, ISO_LEVEL CHAR(1));\nCREATE UNIQUE CLUSTERED INDEX TRX_ID_IND ON SYS_VTQ (TRX_ID);\nCREATE INDEX COMMIT_ID_IND ON SYS_VTQ (COMMIT_ID);\nCREATE INDEX BEGIN_TS_IND ON SYS_VTQ (BEGIN_TS);\nCREATE INDEX COMMIT_TS_IND ON SYS_VTQ (COMMIT_TS);\nEND;\n", reserve_dict_mutex=0, trx=0x7f7d05e2d988) at /home/midenok/src/mariadb/midenok/src/storage/innobase/que/que0que.cc:1231
#12 0x00005572a7ca5bb7 in dict_create_or_check_vtq_table () at /home/midenok/src/mariadb/midenok/src/storage/innobase/dict/dict0crea.cc:1932
#13 0x00005572a7b9c479 in innobase_start_or_create_for_mysql () at /home/midenok/src/mariadb/midenok/src/storage/innobase/srv/srv0start.cc:2553
#14 0x00005572a79bdcc6 in innobase_init (p=0x5572aa246300) at /home/midenok/src/mariadb/midenok/src/storage/innobase/handler/ha_innodb.cc:4419
#15 0x00005572a77a7770 in ha_initialize_handlerton (plugin=0x5572aa2372e8) at /home/midenok/src/mariadb/midenok/src/sql/handler.cc:512
#16 0x00005572a752240e in plugin_initialize (tmp_root=0x7ffe48d49730, plugin=0x5572aa2372e8, argc=0x5572a8bd18b0 <remaining_argc>, argv=0x5572aa0efd20, options_only=false) at /home/midenok/src/mariadb/midenok/src/sql/sql_plugin.cc:1409
#17 0x00005572a75230f9 in plugin_init (argc=0x5572a8bd18b0 <remaining_argc>, argv=0x5572aa0efd20, flags=2) at /home/midenok/src/mariadb/midenok/src/sql/sql_plugin.cc:1697
#18 0x00005572a7423c08 in init_server_components () at /home/midenok/src/mariadb/midenok/src/sql/mysqld.cc:5247
#19 0x00005572a7424c51 in mysqld_main (argc=146, argv=0x5572aa0efd20) at /home/midenok/src/mariadb/midenok/src/sql/mysqld.cc:5839
#20 0x00005572a7419e40 in main (argc=25, argv=0x7ffe48d49f58) at /home/midenok/src/mariadb/midenok/src/sql/main.cc:25
midenok commented 7 years ago

main.sp fails

set @@sql_mode= cast(pow(2,32)-1 as unsigned integer);
select 1;

on 9d91d10e57a70774d0a9fcabec94ebdf325c5bea:

#0  my_vsnprintf_ex (cs=0x5555571af400 <my_charset_utf8_general_ci>, to=0x7fffe5718d50 "", n=512, fmt=0x555557a878e1 "%s near '%-.80s' at line %d", ap=0x7fffe5718d38) at /home/midenok/src/mariadb/midenok/src/strings/my_vsnprintf.c:559
#1  0x0000555556563f7a in my_printf_error (error=1064, format=0x555557a878e1 "%s near '%-.80s' at line %d", MyFlags=0) at /home/midenok/src/mariadb/midenok/src/mysys/my_error.c:151
#2  0x0000555555b34416 in THD::parse_error (this=0x7fff8c000b00, err_text=0x555557a88b77 "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use", yytext=0x7fff8c010f08 "select 1") at /home/midenok/src/mariadb/midenok/src/sql/sql_class.h:3915
#3  0x0000555555d5afe8 in ORAerror (thd=0x7fff8c000b00, s=0x555557a88b77 "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use") at /home/midenok/src/mariadb/midenok/src/sql/sql_yacc_ora.yy:149
#4  0x0000555555d893a7 in ORAparse (thd=0x7fff8c000b00) at /home/midenok/src/mariadb/midenok/build/sql/sql_yacc_ora.cc:45694
#5  0x0000555555b50644 in parse_sql (thd=0x7fff8c000b00, parser_state=0x7fffe571b6b0, creation_ctx=0x0, do_pfs_digest=true) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:9989
#6  0x0000555555b4b666 in mysql_parse (thd=0x7fff8c000b00, rawbuf=0x7fff8c010f08 "select 1", length=8, parser_state=0x7fffe571b6b0, is_com_multi=false, is_next_command=false) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:7914

10.3 (good):

#0  ORAparse (thd=0x7fff88000b00) at /home/midenok/src/mariadb/10.2/build/sql/sql_yacc_ora.cc:21800
#1  0x0000555555b4ed1e in parse_sql (thd=0x7fff88000b00, parser_state=0x7fffe47296d0, creation_ctx=0x0, do_pfs_digest=true) at /home/midenok/src/mariadb/10.2/src/sql/sql_parse.cc:9926
#2  0x0000555555b49d40 in mysql_parse (thd=0x7fff88000b00, rawbuf=0x7fff88010ec8 "select 1", length=8, parser_state=0x7fffe47296d0, is_com_multi=false, is_next_command=false) at /home/midenok/src/mariadb/10.2/src/sql/sql_parse.cc:7850
midenok commented 7 years ago

Important: all %token directives must be synchronised between sql_yacc.yy and sql_yacc_ora.yy. Because both use same lexer (from sql_yacc.yy). main.sp and Oracle-related tests are fixed.

midenok commented 7 years ago

innodb.log_corruption fixed in storage/innobase/srv/srv0start.cc:

--- a/storage/innobase/srv/srv0start.cc
+++ b/storage/innobase/srv/srv0start.cc
@@ -2534,6 +2534,10 @@ innobase_start_or_create_for_mysql(void)
                err = dict_create_or_check_sys_tablespace();
                if (err == DB_SUCCESS) {
                        err = dict_create_or_check_sys_virtual();
+                       if (err == DB_SUCCESS) {
+                               /* Create the SYS_VTQ system table */
+                               err = dict_create_or_check_vtq_table();
+                       }
                }
        }
        switch (err) {
@@ -2549,12 +2553,6 @@ innobase_start_or_create_for_mysql(void)
                return(srv_init_abort(err));
        }

-       /* Create the SYS_VTQ system table */
-       err = dict_create_or_check_vtq_table();
-       if (err != DB_SUCCESS) {
-               return(err);
-       }
-
        srv_is_being_started = false;

        ut_a(trx_purge_state() == PURGE_STATE_INIT)