Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-36563

Assertion `!mysql_bin_log.is_open()' failed in THD::mark_tmp_table_as_free_for_reuse upon REPAIR

Details

    Description

      Does not look related to MDEV-16539. Present only in preview-12.0-preview.

      --source include/have_binlog_format_statement.inc
      CREATE TEMPORARY TABLE t (c INT);
      REPAIR TABLE t;
      

      Leads to:

      preview-12.0-preview CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025

      mariadbd: /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833: void THD::mark_tmp_table_as_free_for_reuse(TABLE *): Assertion `!mysql_bin_log.is_open()' failed.
      

      preview-12.0-preview CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025

      Core was generated by `/test/P12_MD290325-mariadb-12.0.0-linux-x86_64-dbg/bin/mariadbd --defaults-grou'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 391420)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x00007d182ec4526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007d182ec288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007d182ec2881b in __assert_fail_base (fmt=0x7d182edd01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x618839317619 "!mysql_bin_log.is_open()", file=file@entry=0x61883931731b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=line@entry=833, function=function@entry=0x6188393175e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:94
      #6  0x00007d182ec3b507 in __assert_fail (assertion=0x618839317619 "!mysql_bin_log.is_open()", file=0x61883931731b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=833, function=0x6188393175e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:103
      #7  0x00006188385ae734 in THD::mark_tmp_table_as_free_for_reuse (this=0x7d17ec000d58, table=0x7d17ec093468)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833
      #8  0x00006188385ae502 in THD::mark_tmp_tables_as_free_for_reuse (this=0x7d17ec000d58)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:787
      #9  0x00006188381ae15b in close_thread_tables (thd=0x7d17ec000d58)at /test/preview-12.0-preview_dbg/sql/sql_base.cc:942
      #10 0x000061883847ec3d in mysql_admin_table (thd=0x7d17ec000d58, tables=0x7d17ec016d98, check_opt=0x7d17ec0064c8, operator_name=0x618839ac5b98 <msg_repair>, lock_type=TL_WRITE, org_open_for_modify=true, no_errors_from_open=false, extra_open_options=32, prepare_func=0x61883847f9f0 <prepare_for_repair(THD*, TABLE_LIST*, st_ha_check_opt*)>, operator_func=(int (handler::*)(class handler * const, class THD *, HA_CHECK_OPT *)) 0x6188386b65e0 <handler::ha_repair(THD*, st_ha_check_opt*)>, view_operator_func=0x6188383f87a0 <view_repair(THD*, TABLE_LIST*, st_ha_check_opt*)>, is_cmd_replicated=true)at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:1471
      #11 0x000061883847f9ab in Sql_cmd_repair_table::execute (this=0x7d17ec0174d0, thd=0x7d17ec000d58) at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:1715
      #12 0x00006188382887f2 in mysql_execute_command (thd=0x7d17ec000d58, is_called_from_prepared_stmt=false)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:5859
      #13 0x0000618838277b54 in mysql_parse (thd=0x7d17ec000d58, rawbuf=0x7d17ec016ce0 "REPAIR TABLE t", length=14, parser_state=0x7d1828a17a10)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:7889
      #14 0x0000618838274f28 in dispatch_command (command=COM_QUERY, thd=0x7d17ec000d58, packet=0x7d17ec1c87a9 "", packet_length=14, blocking=true) at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1875
      #15 0x0000618838278703 in do_command (thd=0x7d17ec000d58, blocking=true)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1416
      #16 0x00006188384657e9 in do_handle_one_connection (connect=0x61883c4bd258, put_in_cache=true)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1415
      #17 0x000061883846558e in handle_one_connection (arg=0x61883c4b9178)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1327
      #18 0x00007d182ec9ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #19 0x00007d182ed29c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Attachments

        Issue Links

          Activity

            Please also test with InnoDB:

            --source include/have_innodb.inc
            --source include/have_binlog_format_statement.inc
            CREATE TEMPORARY TABLE t (c INT) ENGINE=InnoDB;
            REPAIR TABLE t;
            

            Which produces a slightly different stack trace:

            CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025

            mariadbd: /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833: void THD::mark_tmp_table_as_free_for_reuse(TABLE *): Assertion `!mysql_bin_log.is_open()' failed.
            

            CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025

            Core was generated by `/test/P12_MD290325-mariadb-12.0.0-linux-x86_64-dbg/bin/mariadbd --defaults-grou'.
            Program terminated with signal SIGABRT, Aborted.
            #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
             
            [Current thread is 1 (LWP 888545)]
            (gdb) bt
            #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
            #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
            #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
            #3  0x00007f44a464526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
            #4  0x00007f44a46288ff in __GI_abort () at ./stdlib/abort.c:79
            #5  0x00007f44a462881b in __assert_fail_base (fmt=0x7f44a47d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x59d8b42a5619 "!mysql_bin_log.is_open()", file=file@entry=0x59d8b42a531b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=line@entry=833, function=function@entry=0x59d8b42a55e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:94
            #6  0x00007f44a463b507 in __assert_fail (assertion=0x59d8b42a5619 "!mysql_bin_log.is_open()", file=0x59d8b42a531b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=833, function=0x59d8b42a55e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:103
            #7  0x000059d8b353c734 in THD::mark_tmp_table_as_free_for_reuse (this=0x7f43c0000d58, table=0x7f43c0038508)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833
            #8  0x000059d8b353c502 in THD::mark_tmp_tables_as_free_for_reuse (this=0x7f43c0000d58)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:787
            #9  0x000059d8b313c15b in close_thread_tables (thd=0x7f43c0000d58)at /test/preview-12.0-preview_dbg/sql/sql_base.cc:942
            #10 0x000059d8b340ebe6 in admin_recreate_table (thd=0x7f43c0000d58, table_list=0x7f43c0016d98, recreate_info=0x7f449d7fbe30, table_copy=true)at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:60
            #11 0x000059d8b340b29e in mysql_admin_table (thd=0x7f43c0000d58, tables=0x7f43c0016d98, check_opt=0x7f43c00064c8, operator_name=0x59d8b4a53b98 <msg_repair>, lock_type=TL_WRITE, org_open_for_modify=true, no_errors_from_open=false, extra_open_options=32, prepare_func=0x59d8b340d9f0 <prepare_for_repair(THD*, TABLE_LIST*, st_ha_check_opt*)>, operator_func=(int (handler::*)(class handler * const, class THD *, HA_CHECK_OPT *)) 0x59d8b36445e0 <handler::ha_repair(THD*, st_ha_check_opt*)>, view_operator_func=0x59d8b33867a0 <view_repair(THD*, TABLE_LIST*, st_ha_check_opt*)>, is_cmd_replicated=true)at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:1130
            #12 0x000059d8b340d9ab in Sql_cmd_repair_table::execute (this=0x7f43c00174d0, thd=0x7f43c0000d58) at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:1715
            #13 0x000059d8b32167f2 in mysql_execute_command (thd=0x7f43c0000d58, is_called_from_prepared_stmt=false)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:5859
            #14 0x000059d8b3205b54 in mysql_parse (thd=0x7f43c0000d58, rawbuf=0x7f43c0016ce0 "REPAIR TABLE t", length=14, parser_state=0x7f449d7fda10)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:7889
            #15 0x000059d8b3202f28 in dispatch_command (command=COM_QUERY, thd=0x7f43c0000d58, packet=0x7f43c01c9539 "", packet_length=14, blocking=true) at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1875
            #16 0x000059d8b3206703 in do_command (thd=0x7f43c0000d58, blocking=true)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1416
            #17 0x000059d8b33f37e9 in do_handle_one_connection (connect=0x59d8b75d36f8, put_in_cache=true)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1415
            #18 0x000059d8b33f358e in handle_one_connection (arg=0x59d8b75908f8)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1327
            #19 0x00007f44a469ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
            #20 0x00007f44a4729c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
            

            Roel Roel Van de Paar added a comment - Please also test with InnoDB: --source include/have_innodb.inc --source include/have_binlog_format_statement.inc CREATE TEMPORARY TABLE t (c INT ) ENGINE=InnoDB; REPAIR TABLE t; Which produces a slightly different stack trace: CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025 mariadbd: /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833: void THD::mark_tmp_table_as_free_for_reuse(TABLE *): Assertion `!mysql_bin_log.is_open()' failed. CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025 Core was generated by `/test/P12_MD290325-mariadb-12.0.0-linux-x86_64-dbg/bin/mariadbd --defaults-grou'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44   [Current thread is 1 (LWP 888545)] (gdb) bt #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44 #1 __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78 #2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89 #3 0x00007f44a464526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26 #4 0x00007f44a46288ff in __GI_abort () at ./stdlib/abort.c:79 #5 0x00007f44a462881b in __assert_fail_base (fmt=0x7f44a47d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x59d8b42a5619 "!mysql_bin_log.is_open()", file=file@entry=0x59d8b42a531b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=line@entry=833, function=function@entry=0x59d8b42a55e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:94 #6 0x00007f44a463b507 in __assert_fail (assertion=0x59d8b42a5619 "!mysql_bin_log.is_open()", file=0x59d8b42a531b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=833, function=0x59d8b42a55e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:103 #7 0x000059d8b353c734 in THD::mark_tmp_table_as_free_for_reuse (this=0x7f43c0000d58, table=0x7f43c0038508)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833 #8 0x000059d8b353c502 in THD::mark_tmp_tables_as_free_for_reuse (this=0x7f43c0000d58)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:787 #9 0x000059d8b313c15b in close_thread_tables (thd=0x7f43c0000d58)at /test/preview-12.0-preview_dbg/sql/sql_base.cc:942 #10 0x000059d8b340ebe6 in admin_recreate_table (thd=0x7f43c0000d58, table_list=0x7f43c0016d98, recreate_info=0x7f449d7fbe30, table_copy=true)at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:60 #11 0x000059d8b340b29e in mysql_admin_table (thd=0x7f43c0000d58, tables=0x7f43c0016d98, check_opt=0x7f43c00064c8, operator_name=0x59d8b4a53b98 <msg_repair>, lock_type=TL_WRITE, org_open_for_modify=true, no_errors_from_open=false, extra_open_options=32, prepare_func=0x59d8b340d9f0 <prepare_for_repair(THD*, TABLE_LIST*, st_ha_check_opt*)>, operator_func=(int (handler::*)(class handler * const, class THD *, HA_CHECK_OPT *)) 0x59d8b36445e0 <handler::ha_repair(THD*, st_ha_check_opt*)>, view_operator_func=0x59d8b33867a0 <view_repair(THD*, TABLE_LIST*, st_ha_check_opt*)>, is_cmd_replicated=true)at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:1130 #12 0x000059d8b340d9ab in Sql_cmd_repair_table::execute (this=0x7f43c00174d0, thd=0x7f43c0000d58) at /test/preview-12.0-preview_dbg/sql/sql_admin.cc:1715 #13 0x000059d8b32167f2 in mysql_execute_command (thd=0x7f43c0000d58, is_called_from_prepared_stmt=false)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:5859 #14 0x000059d8b3205b54 in mysql_parse (thd=0x7f43c0000d58, rawbuf=0x7f43c0016ce0 "REPAIR TABLE t", length=14, parser_state=0x7f449d7fda10)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:7889 #15 0x000059d8b3202f28 in dispatch_command (command=COM_QUERY, thd=0x7f43c0000d58, packet=0x7f43c01c9539 "", packet_length=14, blocking=true) at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1875 #16 0x000059d8b3206703 in do_command (thd=0x7f43c0000d58, blocking=true)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1416 #17 0x000059d8b33f37e9 in do_handle_one_connection (connect=0x59d8b75d36f8, put_in_cache=true)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1415 #18 0x000059d8b33f358e in handle_one_connection (arg=0x59d8b75908f8)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1327 #19 0x00007f44a469ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447 #20 0x00007f44a4729c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
            Roel Roel Van de Paar added a comment - - edited

            Two additional testcase which crash on INSERT instead, with a slightly different stack

            --source include/have_binlog_format_statement.inc
            SET sql_mode='';
            SET @@session.binlog_format=statement;
            CREATE TEMPORARY TABLE t(c CHAR,c2 CHAR CHARACTER SET 'latin1' COLLATE 'latin1_bin',c3 BLOB,KEY (c)) ENGINE=MRG_MyISAM;
            INSERT INTO t VALUES('Vfe3*sMehd?JF%i=?B@y{=xKKgVnh~;QKhL]nfCV{{tfuL8bzu~@f:M7g-fiV}x_*;zJdhH]jY?=W#A=2LTQKE9$TpuPQ@WgEpkN$y$f^K%mSj^oKz[vVzM[)fNB8PkkL#vx%@-qM(q+_RPPg1KL+bE&q~Drk)O_jTYRj9w(cEJU(f0O1(&ZXu^a}&ws$?tXeHJ(Z@2t_.B=;f$%E;mH.X#=?~YLl/)}@*BcxgJ7@%eRx$vnM@OVTHEScvh8pnRHOs^?1=Dvqa?qO2{y[2i+yRB_1@eZ$5D=7f+wT]UO7AN?p.l6II1Zekt=}GK7MI#uH0,LDnRb{#ROE&nc$eaC',SUBTIME(0,0),'dF0fBRC?rJtgvHmb(tIn9g]_Xn~f#]Rl~c._P?{SFv)=m+8@.eh.LcW[p##tZ7AUY$IurvB=7M{-uGlTI6[HkOb8+tYRTeYS=(;nj4$=p=Y/7EpVWM9L0Q*?eh.nFd1ahx[]kE3=D.XVV//i7VLTd&kXtZ$BYP6K=dHL?=F^Y1FSDnG*s~E#$@M=St]}9w$7{Eln:[zTa$-0uUb5mOcq0nt6?O=p=T*7N*R[;S%vjkp^IK^XN^s*YEI7=EV*Sx5=SU_sSLGfsh^,rD^(-rmTim&iWOL=OPxtH.Di[W2-F5AIq]ZYRE~&8@=8YkjaXo}~]o@-8C.iZWq)1Wi-Ov:S=;hv=E.elNe[*N[S,5xzF3;8IgN}OHwj1[N:EgjT+h-B1]p}.B1^?YcdxjUQLl&8fo~WFmUTd1RXHU^X{.Tfe}}1e5-Txi}d*C=2w@)1p7~MkfMnF:k_,x6;W}zIw*Z=SX/JDSVg^g6HWR;pB.zFr}.X4]%r}zz1Unn#@N=T,=3JK6A0{1N^BmirEMcfi(tiU#iRcRQJUvhI&wcbF/iiIePff:f)kdW+T9+b@ixKhEI1CQoP3e*_]r0K=C=yC^WiYXoSXRN?mW6-:D#c(=MS+xWO=6IOM~gk~$dq},k$0ce1[1_K%pms9thlFH1Z]n/xzah=*H0J.j_vMpgBas]xbO&]s[OF_kgD=5J?XE=8K-Z/1RlQQJRXaW4^6z.AjF.@y#$OirVCclLD2YH0fW+=zuBoFC=QYDQnQFe7,?7onWhTNX&5oGl7GfVW}&oKswiBc:j1dA3waQ=g-2cCk/?Y^Hs+.%sE#=Gnm5yUE2tR6=5r;#NkrT.Z&*JG=5h,i8ppTMz4Ev/-/@l=z0d=C2thPH]2:WI1Gho');
            

            --source include/have_binlog_format_statement.inc
            SET sql_mode='';
            SET sql_log_bin=0;
            CREATE TABLE t3 (c CHAR(1) CHARACTER SET 'latin1' COLLATE 'latin1_bin',c2 CHAR(1) BINARY,c3 NUMERIC(1,0));
            SET @@enforce_storage_engine=MyISAM;
            INSERT INTO t3 VALUES ('ua[BIy9r+3hD+=WC=-TKAd5Yh=ag1=5@YKdvjeC8bQXkcS$@+FX~GH3_=0iE[hbIjG} (xtT4=,CtKjm=J0U7M.FnN*=pr_izj,wm]8;:F9nHO1y) Z.hH):Bd5sVQ7Ew)?epI,ZU:vSDkfLWZT6?XA@1sd??%joyZ@)}:-oQ6=) pog_k{KIWol/~yT5) A#GMm1-4LFn&=SZcv * I/M (8a_=[rC7~Gsgai{xjXYyN,URycwB,=,3q^(=Opn=E=nsZtrk@GU2Ou) kxJd?Xfl#V (FbpQT/1]{9f=7?rV}ZPQ]+W9eBXUVl/5 (*+/eCt3e (o8Wf9o6{GukS4=fz.@KT@LQCE9aA7:Fw%.yrvbd_qx7PNPFrfAb[K * Gi]7#@~jod,S3O=0d8nl % hxQtpk + Po-~2v&D2s?VHGKg=Vppq0asYwUI) Jhm&$lYJy[t7yS{O (BkXKbX=nMs9c];L=UX^9KxZ~=j,cP} (IUMhG}kf_mni8g3;fMaLB0=r4aTqDW9:=M=w6H % R3FUDf[q - a7+4C*2V&{a&q@sEn=h$z8dM1Z ^ OjL=viO + gZ6V1aitHN}$* H$,enk (.)@D /- EN#jb=dz&@W1TskcfNEODeH$8J (I (?z2I$juk4nLLVQ2Ab[ldpFLW2=C8$3:%U % Y[=Yf?^jC-8b{.&K7tkc;nw.Dj[1$1K]wv * E@ot${ptxUV8[xb0r * z%Xfpc=XLiY#&d~Xr@8,C9aWup2h-2_jx}mSyFV}7xhMJj=,&KCHqN5mTEAZlT&4/Y]mm,=&gu_:=D=_u ^ TuB:zfws#B3HNSVBaynj=o~+:Cf=* ytbd;Ia8tn=rmbug) pX9YIk ^ qlM2Fmyth5&u:)=,=2~/=A=]:GLU[n4* wIz (^8N ^ Cqny[H}B=Eg2h]=vL6y (Z,nefY=-B9fmw % S0c9_cmcbm7X (iHrS;ru@@E[CsU,g~m?1) U1EzVxDd=b~7Mrt@H % Y4VG (W$}k8O&5)6@AQO%=E (6q=f - V7tx5&SHfk?Q2&cCIbn^','̡͓I̗̘n͇͇v̮̫ok̲̫i̖͙n̡̻g̲͈ ̰t͔̦h̞̲e̢̤ ͍̬f̴̘è͖ẹ̥̩l͖͔i͓͚n͖͍g͍ ̨o͚̪f̘̣ ̖̘c҉͔h̵̤á̗̼o̼̣s̱͈.̛̖',0);
            INSERT INTO t3 SELECT * FROM t3;
            CREATE TEMPORARY TABLE t2 (c CHAR(1) BINARY,c2 CHAR(1),c3 CHAR(1) BINARY,PRIMARY KEY(c (1)));
            --error ER_DUP_ENTRY
            INSERT INTO t2 SELECT * FROM t3;
            INSERT INTO t2 (c) VALUES (1);
            INSERT INTO t2 (c) VALUES (1);
            

            Stacks for both testcases are similar. Stack for the second testcase:

            CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025

            mariadbd: /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833: void THD::mark_tmp_table_as_free_for_reuse(TABLE *): Assertion `!mysql_bin_log.is_open()' failed.
            

            CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025

            Core was generated by `/test/P12_MD290325-mariadb-12.0.0-linux-x86_64-dbg/bin/mariadbd --defaults-grou'.
            Program terminated with signal SIGABRT, Aborted.
            #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
             
            [Current thread is 1 (LWP 4097509)]
            (gdb) bt
            #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
            #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
            #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
            #3  0x000079392644526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
            #4  0x00007939264288ff in __GI_abort () at ./stdlib/abort.c:79
            #5  0x000079392642881b in __assert_fail_base (fmt=0x7939265d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x592271dad619 "!mysql_bin_log.is_open()", file=file@entry=0x592271dad31b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=line@entry=833, function=function@entry=0x592271dad5e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:94
            #6  0x000079392643b507 in __assert_fail (assertion=0x592271dad619 "!mysql_bin_log.is_open()", file=0x592271dad31b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=833, function=0x592271dad5e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:103
            #7  0x0000592271044734 in THD::mark_tmp_table_as_free_for_reuse (this=0x7938e4000d58, table=0x7938e4061098)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833
            #8  0x0000592271044502 in THD::mark_tmp_tables_as_free_for_reuse (this=0x7938e4000d58)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:787
            #9  0x0000592270c4415b in close_thread_tables (thd=0x7938e4000d58)at /test/preview-12.0-preview_dbg/sql/sql_base.cc:942
            #10 0x0000592270c43cb9 in close_thread_tables_for_query (thd=0x7938e4000d58)at /test/preview-12.0-preview_dbg/sql/sql_base.cc:815
            #11 0x0000592270d1ec87 in mysql_execute_command (thd=0x7938e4000d58, is_called_from_prepared_stmt=false)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:5949
            #12 0x0000592270d0db54 in mysql_parse (thd=0x7938e4000d58, rawbuf=0x7938e4016ce0 "INSERT INTO t2 (c) VALUES (1)", length=29, parser_state=0x793920253a10)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:7889
            #13 0x0000592270d0af28 in dispatch_command (command=COM_QUERY, thd=0x7938e4000d58, packet=0x7938e41c87a9 "INSERT INTO t2 (c) VALUES (1)", packet_length=29, blocking=true)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1875
            #14 0x0000592270d0e703 in do_command (thd=0x7938e4000d58, blocking=true)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1416
            #15 0x0000592270efb7e9 in do_handle_one_connection (connect=0x592275842258, put_in_cache=true)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1415
            #16 0x0000592270efb58e in handle_one_connection (arg=0x59227583e178)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1327
            #17 0x000079392649ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
            #18 0x0000793926529c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
            

            Roel Roel Van de Paar added a comment - - edited Two additional testcase which crash on INSERT instead, with a slightly different stack --source include/have_binlog_format_statement.inc SET sql_mode= '' ; SET @@session.binlog_format=statement; CREATE TEMPORARY TABLE t(c CHAR ,c2 CHAR CHARACTER SET 'latin1' COLLATE 'latin1_bin' ,c3 BLOB, KEY (c)) ENGINE=MRG_MyISAM; INSERT INTO t VALUES ( 'Vfe3*sMehd?JF%i=?B@y{=xKKgVnh~;QKhL]nfCV{{tfuL8bzu~@f:M7g-fiV}x_*;zJdhH]jY?=W#A=2LTQKE9$TpuPQ@WgEpkN$y$f^K%mSj^oKz[vVzM[)fNB8PkkL#vx%@-qM(q+_RPPg1KL+bE&q~Drk)O_jTYRj9w(cEJU(f0O1(&ZXu^a}&ws$?tXeHJ(Z@2t_.B=;f$%E;mH.X#=?~YLl/)}@*BcxgJ7@%eRx$vnM@OVTHEScvh8pnRHOs^?1=Dvqa?qO2{y[2i+yRB_1@eZ$5D=7f+wT]UO7AN?p.l6II1Zekt=}GK7MI#uH0,LDnRb{#ROE&nc$eaC' ,SUBTIME(0,0), 'dF0fBRC?rJtgvHmb(tIn9g]_Xn~f#]Rl~c._P?{SFv)=m+8@.eh.LcW[p##tZ7AUY$IurvB=7M{-uGlTI6[HkOb8+tYRTeYS=(;nj4$=p=Y/7EpVWM9L0Q*?eh.nFd1ahx[]kE3=D.XVV//i7VLTd&kXtZ$BYP6K=dHL?=F^Y1FSDnG*s~E#$@M=St]}9w$7{Eln:[zTa$-0uUb5mOcq0nt6?O=p=T*7N*R[;S%vjkp^IK^XN^s*YEI7=EV*Sx5=SU_sSLGfsh^,rD^(-rmTim&iWOL=OPxtH.Di[W2-F5AIq]ZYRE~&8@=8YkjaXo}~]o@-8C.iZWq)1Wi-Ov:S=;hv=E.elNe[*N[S,5xzF3;8IgN}OHwj1[N:EgjT+h-B1]p}.B1^?YcdxjUQLl&8fo~WFmUTd1RXHU^X{.Tfe}}1e5-Txi}d*C=2w@)1p7~MkfMnF:k_,x6;W}zIw*Z=SX/JDSVg^g6HWR;pB.zFr}.X4]%r}zz1Unn#@N=T,=3JK6A0{1N^BmirEMcfi(tiU#iRcRQJUvhI&wcbF/iiIePff:f)kdW+T9+b@ixKhEI1CQoP3e*_]r0K=C=yC^WiYXoSXRN?mW6-:D#c(=MS+xWO=6IOM~gk~$dq},k$0ce1[1_K%pms9thlFH1Z]n/xzah=*H0J.j_vMpgBas]xbO&]s[OF_kgD=5J?XE=8K-Z/1RlQQJRXaW4^6z.AjF.@y#$OirVCclLD2YH0fW+=zuBoFC=QYDQnQFe7,?7onWhTNX&5oGl7GfVW}&oKswiBc:j1dA3waQ=g-2cCk/?Y^Hs+.%sE#=Gnm5yUE2tR6=5r;#NkrT.Z&*JG=5h,i8ppTMz4Ev/-/@l=z0d=C2thPH]2:WI1Gho' ); --source include/have_binlog_format_statement.inc SET sql_mode= '' ; SET sql_log_bin=0; CREATE TABLE t3 (c CHAR (1) CHARACTER SET 'latin1' COLLATE 'latin1_bin' ,c2 CHAR (1) BINARY ,c3 NUMERIC (1,0)); SET @@enforce_storage_engine=MyISAM; INSERT INTO t3 VALUES ( 'ua[BIy9r+3hD+=WC=-TKAd5Yh=ag1=5@YKdvjeC8bQXkcS$@+FX~GH3_=0iE[hbIjG} (xtT4=,CtKjm=J0U7M.FnN*=pr_izj,wm]8;:F9nHO1y) Z.hH):Bd5sVQ7Ew)?epI,ZU:vSDkfLWZT6?XA@1sd??%joyZ@)}:-oQ6=) pog_k{KIWol/~yT5) A#GMm1-4LFn&=SZcv * I/M (8a_=[rC7~Gsgai{xjXYyN,URycwB,=,3q^(=Opn=E=nsZtrk@GU2Ou) kxJd?Xfl#V (FbpQT/1]{9f=7?rV}ZPQ]+W9eBXUVl/5 (*+/eCt3e (o8Wf9o6{GukS4=fz.@KT@LQCE9aA7:Fw%.yrvbd_qx7PNPFrfAb[K * Gi]7#@~jod,S3O=0d8nl % hxQtpk + Po-~2v&D2s?VHGKg=Vppq0asYwUI) Jhm&$lYJy[t7yS{O (BkXKbX=nMs9c];L=UX^9KxZ~=j,cP} (IUMhG}kf_mni8g3;fMaLB0=r4aTqDW9:=M=w6H % R3FUDf[q - a7+4C*2V&{a&q@sEn=h$z8dM1Z ^ OjL=viO + gZ6V1aitHN}$* H$,enk (.)@D /- EN#jb=dz&@W1TskcfNEODeH$8J (I (?z2I$juk4nLLVQ2Ab[ldpFLW2=C8$3:%U % Y[=Yf?^jC-8b{.&K7tkc;nw.Dj[1$1K]wv * E@ot${ptxUV8[xb0r * z%Xfpc=XLiY#&d~Xr@8,C9aWup2h-2_jx}mSyFV}7xhMJj=,&KCHqN5mTEAZlT&4/Y]mm,=&gu_:=D=_u ^ TuB:zfws#B3HNSVBaynj=o~+:Cf=* ytbd;Ia8tn=rmbug) pX9YIk ^ qlM2Fmyth5&u:)=,=2~/=A=]:GLU[n4* wIz (^8N ^ Cqny[H}B=Eg2h]=vL6y (Z,nefY=-B9fmw % S0c9_cmcbm7X (iHrS;ru@@E[CsU,g~m?1) U1EzVxDd=b~7Mrt@H % Y4VG (W$}k8O&5)6@AQO%=E (6q=f - V7tx5&SHfk?Q2&cCIbn^' , '̡͓I̗̘n͇͇v̮̫ok̲̫i̖͙n̡̻g̲͈ ̰t͔̦h̞̲e̢̤ ͍̬f̴̘è͖ẹ̥̩l͖͔i͓͚n͖͍g͍ ̨o͚̪f̘̣ ̖̘c҉͔h̵̤á̗̼o̼̣s̱͈.̛̖' ,0); INSERT INTO t3 SELECT * FROM t3; CREATE TEMPORARY TABLE t2 (c CHAR (1) BINARY ,c2 CHAR (1),c3 CHAR (1) BINARY , PRIMARY KEY (c (1))); --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t3; INSERT INTO t2 (c) VALUES (1); INSERT INTO t2 (c) VALUES (1); Stacks for both testcases are similar. Stack for the second testcase: CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025 mariadbd: /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833: void THD::mark_tmp_table_as_free_for_reuse(TABLE *): Assertion `!mysql_bin_log.is_open()' failed. CS 12.0.0 61c96785d1910976fd740aa0724105b16952786d (Debug) Build 29/03/2025 Core was generated by `/test/P12_MD290325-mariadb-12.0.0-linux-x86_64-dbg/bin/mariadbd --defaults-grou'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44   [Current thread is 1 (LWP 4097509)] (gdb) bt #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44 #1 __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78 #2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89 #3 0x000079392644526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26 #4 0x00007939264288ff in __GI_abort () at ./stdlib/abort.c:79 #5 0x000079392642881b in __assert_fail_base (fmt=0x7939265d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x592271dad619 "!mysql_bin_log.is_open()", file=file@entry=0x592271dad31b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=line@entry=833, function=function@entry=0x592271dad5e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:94 #6 0x000079392643b507 in __assert_fail (assertion=0x592271dad619 "!mysql_bin_log.is_open()", file=0x592271dad31b "/test/preview-12.0-preview_dbg/sql/temporary_tables.cc", line=833, function=0x592271dad5e5 "void THD::mark_tmp_table_as_free_for_reuse(TABLE *)") at ./assert/assert.c:103 #7 0x0000592271044734 in THD::mark_tmp_table_as_free_for_reuse (this=0x7938e4000d58, table=0x7938e4061098)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:833 #8 0x0000592271044502 in THD::mark_tmp_tables_as_free_for_reuse (this=0x7938e4000d58)at /test/preview-12.0-preview_dbg/sql/temporary_tables.cc:787 #9 0x0000592270c4415b in close_thread_tables (thd=0x7938e4000d58)at /test/preview-12.0-preview_dbg/sql/sql_base.cc:942 #10 0x0000592270c43cb9 in close_thread_tables_for_query (thd=0x7938e4000d58)at /test/preview-12.0-preview_dbg/sql/sql_base.cc:815 #11 0x0000592270d1ec87 in mysql_execute_command (thd=0x7938e4000d58, is_called_from_prepared_stmt=false)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:5949 #12 0x0000592270d0db54 in mysql_parse (thd=0x7938e4000d58, rawbuf=0x7938e4016ce0 "INSERT INTO t2 (c) VALUES (1)", length=29, parser_state=0x793920253a10)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:7889 #13 0x0000592270d0af28 in dispatch_command (command=COM_QUERY, thd=0x7938e4000d58, packet=0x7938e41c87a9 "INSERT INTO t2 (c) VALUES (1)", packet_length=29, blocking=true)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1875 #14 0x0000592270d0e703 in do_command (thd=0x7938e4000d58, blocking=true)at /test/preview-12.0-preview_dbg/sql/sql_parse.cc:1416 #15 0x0000592270efb7e9 in do_handle_one_connection (connect=0x592275842258, put_in_cache=true)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1415 #16 0x0000592270efb58e in handle_one_connection (arg=0x59227583e178)at /test/preview-12.0-preview_dbg/sql/sql_connect.cc:1327 #17 0x000079392649ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447 #18 0x0000793926529c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

            Hi monty,

            I've confirmed that this is only present since MDEV-36099's introduction.

            bnestere Brandon Nesterenko added a comment - Hi monty , I've confirmed that this is only present since MDEV-36099 's introduction.

            The errors comes from checking of temporary table changes where logged to the binlog and if not turning of temporary table changes to the binlog. The check was a bit over-reaching and I have now fixed this. In production the given assert would not have caused any issues.

            monty Michael Widenius added a comment - The errors comes from checking of temporary table changes where logged to the binlog and if not turning of temporary table changes to the binlog. The check was a bit over-reaching and I have now fixed this. In production the given assert would not have caused any issues.

            Pushed to bb-main-monty

            monty Michael Widenius added a comment - Pushed to bb-main-monty

            People

              monty Michael Widenius
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.