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

Mroonga: Assertion `is_valid_value_slow()' failed in Time::adjust_time_range_or_invalidate on reading a negative fractional TIME value

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      INSTALL PLUGIN mroonga SONAME 'ha_mroonga';
      CREATE TABLE t1 (c TIME(1)) ENGINE=Mroonga;
      INSERT INTO t1 VALUES (-0.1);
      SELECT * FROM t1;
      

      Leads to:

      CS 10.11.19 f24a3ef7edd4080d4cf6e109dac26e93872068dc (Debug, Clang 18.1.3-11) Build 28/09/2026

      mariadbd: /test/10.11_dbg/sql/sql_type.h:1792: void Time::adjust_time_range_or_invalidate(int *): Assertion `is_valid_value_slow()' failed.
      

      CS 10.11.19 f24a3ef7edd4080d4cf6e109dac26e93872068dc (Debug, Clang 18.1.3-11) Build 28/09/2026

      Core was generated by `/test/MD280926-mariadb-10.11.19-linux-x86_64-dbg/bin/mariadbd --no-defaults --l'.
      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 2758632)]
      (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  0x000077e99a84527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x000077e99a8288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000077e99a82881b in __assert_fail_base (fmt=0x77e99a9d1208 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x61cb93eaa1bf "is_valid_value_slow()", file=file@entry=0x61cb93eaa121 "/test/10.11_dbg/sql/sql_type.h", line=line@entry=1792, function=function@entry=0x61cb93f1667b "void Time::adjust_time_range_or_invalidate(int *)") at ./assert/assert.c:96
      #6  0x000077e99a83b517 in __assert_fail (assertion=0x61cb93eaa1bf "is_valid_value_slow()", file=0x61cb93eaa121 "/test/10.11_dbg/sql/sql_type.h", line=1792, function=0x61cb93f1667b "void Time::adjust_time_range_or_invalidate(int *)") at ./assert/assert.c:105
      #7  0x000061cb93189e52 in Time::adjust_time_range_or_invalidate (this=0x77e9981aa5f8, warn=0x77e9981aa620)at /test/10.11_dbg/sql/sql_type.h:1792
      #8  0x000061cb93167090 in Time::make_from_time (this=0x77e9981aa5f8, warn=0x77e9981aa620, from=0x77e9981aa8b0)at /test/10.11_dbg/sql/sql_type.cc:1009
      #9  0x000061cb931672da in Time::Time (this=0x77e9981aa5f8, warn=0x77e9981aa620, from=0x77e9981aa8b0, curdays=0)at /test/10.11_dbg/sql/sql_type.cc:1048
      #10 0x000061cb93297ed9 in Time::Time (this=0x77e9981aa5f8, warn=0x77e9981aa620, from=0x77e9981aa8b0, curdays=0, opt=@0x77e9981aa5f0: {<Temporal::Options> = {<date_mode_t> = {m_mode = (date_mode_t::TIME_ONLY | date_mode_t::FRAC_TRUNCATE | date_mode_t::INVALID_DATES)}, <No data fields>}, m_datetime_to_time_mode = Time::DATETIME_TO_TIME_YYYYMMDD_000000DD_MIX_TO_HOURS}, dec=1) at /test/10.11_dbg/sql/sql_type.h:1879
      #11 0x000061cb9327ff4b in Field_time::store_time_dec (this=0x6fe8bd6a7cc0, ltime=0x77e9981aa8b0, dec=6) at /test/10.11_dbg/sql/field.cc:6143
      #12 0x00006fe954effd76 in Field::store_time (this=0x6fe8bd6a7cc0, ltime=0x77e9981aa8b0) at /test/10.11_dbg/sql/field.h:995
      #13 0x00006fe954ee5106 in ha_mroonga::storage_store_field_time2 (this=0x6fe8bd6a65d8, field=0x6fe8bd6a7cc0, value=0x6fe8bd6a7b90 "`y\376\377\377\377\377\377", value_length=8)at /test/10.11_dbg/storage/mroonga/ha_mroonga.cpp:11203
      #14 0x00006fe954ee579c in ha_mroonga::storage_store_field (this=0x6fe8bd6a65d8, field=0x6fe8bd6a7cc0, value=0x6fe8bd6a7b90 "`y\376\377\377\377\377\377", value_length=8)at /test/10.11_dbg/storage/mroonga/ha_mroonga.cpp:11329
      #15 0x00006fe954ee5fa4 in ha_mroonga::storage_store_field_column (this=0x6fe8bd6a65d8, field=0x6fe8bd6a7cc0, is_primary_key=false, nth_column=0, record_id=1)at /test/10.11_dbg/storage/mroonga/ha_mroonga.cpp:11421
      #16 0x00006fe954ec9651 in ha_mroonga::storage_store_fields (this=0x6fe8bd6a65d8, buf=0x6fe8bd6a7c90 <incomplete sequence \375\200>, record_id=1) at /test/10.11_dbg/storage/mroonga/ha_mroonga.cpp:11471
      #17 0x00006fe954ec8d8c in ha_mroonga::storage_get_next_record (this=0x6fe8bd6a65d8, buf=0x6fe8bd6a7c90 <incomplete sequence \375\200>)at /test/10.11_dbg/storage/mroonga/ha_mroonga.cpp:10007
      #18 0x00006fe954ec8a8e in ha_mroonga::storage_rnd_next (this=0x6fe8bd6a65d8, buf=0x6fe8bd6a7c90 <incomplete sequence \375\200>)at /test/10.11_dbg/storage/mroonga/ha_mroonga.cpp:5670
      #19 0x00006fe954ec906a in ha_mroonga::rnd_next (this=0x6fe8bd6a65d8, buf=0x6fe8bd6a7c90 <incomplete sequence \375\200>)at /test/10.11_dbg/storage/mroonga/ha_mroonga.cpp:5682
      #20 0x000061cb932b8358 in handler::ha_rnd_next (this=0x6fe8bd6a65d8, buf=0x6fe8bd6a7c90 <incomplete sequence \375\200>)at /test/10.11_dbg/sql/handler.cc:3660
      #21 0x000061cb932b99e9 in handler::read_first_row (this=0x6fe8bd6a65d8, buf=0x6fe8bd6a7c90 <incomplete sequence \375\200>, primary_key=64)at /test/10.11_dbg/sql/handler.cc:3907
      #22 0x000061cb92f9935b in handler::ha_read_first_row (this=0x6fe8bd6a65d8, buf=0x6fe8bd6a7c90 <incomplete sequence \375\200>, primary_key=64)at /test/10.11_dbg/sql/sql_class.h:7816
      #23 0x000061cb92f88ccf in join_read_system (tab=0x6fe8bc015580)at /test/10.11_dbg/sql/sql_select.cc:23857
      #24 0x000061cb92f87f35 in join_read_const_table (thd=0x6fe8bc000d58, tab=0x6fe8bc015580, pos=0x6fe8bc015b70)at /test/10.11_dbg/sql/sql_select.cc:23753
      #25 0x000061cb92f427e3 in make_join_statistics (join=0x6fe8bc014be0, tables_list=@0x6fe8bc013758: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x6fe8bc015398, last = 0x6fe8bc015398, elements = 1}, <No data fields>}, keyuse_array=0x6fe8bc014f38) at /test/10.11_dbg/sql/sql_select.cc:5758
      #26 0x000061cb92f3bed9 in JOIN::optimize_inner (this=0x6fe8bc014be0)at /test/10.11_dbg/sql/sql_select.cc:2679
      #27 0x000061cb92f39a1e in JOIN::optimize (this=0x6fe8bc014be0)at /test/10.11_dbg/sql/sql_select.cc:1967
      #28 0x000061cb92f31882 in mysql_select (thd=0x6fe8bc000d58, tables=0x6fe8bc013b70, fields=@0x6fe8bc0137f8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x6fe8bc013b20, last = 0x6fe8bc013b20, elements = 1}, <No data fields>}, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2164525824, result=0x6fe8bc014bb8, unit=0x6fe8bc005028, select_lex=0x6fe8bc013540) at /test/10.11_dbg/sql/sql_select.cc:5271
      #29 0x000061cb92f313c5 in handle_select (thd=0x6fe8bc000d58, lex=0x6fe8bc004f50, result=0x6fe8bc014bb8, setup_tables_done_option=0)at /test/10.11_dbg/sql/sql_select.cc:601
      #30 0x000061cb92ed7cc1 in execute_sqlcom_select (thd=0x6fe8bc000d58, all_tables=0x6fe8bc013b70) at /test/10.11_dbg/sql/sql_parse.cc:6452
      #31 0x000061cb92ecb7ea in mysql_execute_command (thd=0x6fe8bc000d58, is_called_from_prepared_stmt=false)at /test/10.11_dbg/sql/sql_parse.cc:4032
      #32 0x000061cb92ec3944 in mysql_parse (thd=0x6fe8bc000d58, rawbuf=0x6fe8bc0134c0 "SELECT * FROM t1", length=16, parser_state=0x77e9981b1ae0) at /test/10.11_dbg/sql/sql_parse.cc:8210
      #33 0x000061cb92ec0e39 in dispatch_command (command=COM_QUERY, thd=0x6fe8bc000d58, packet=0x6fe8bc00af49 "SELECT * FROM t1", packet_length=16, blocking=true) at /test/10.11_dbg/sql/sql_parse.cc:1924
      #34 0x000061cb92ec44f3 in do_command (thd=0x6fe8bc000d58, blocking=true)at /test/10.11_dbg/sql/sql_parse.cc:1434
      #35 0x000061cb930a5eb9 in do_handle_one_connection (connect=0x61cbbc96a018, put_in_cache=true) at /test/10.11_dbg/sql/sql_connect.cc:1500
      #36 0x000061cb930a5c52 in handle_one_connection (arg=0x61cbbca4b1d8)at /test/10.11_dbg/sql/sql_connect.cc:1412
      #37 0x000077e99a89cb84 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #38 0x000077e99a929ecc in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug Detection Matrix

          Rel    o/d  Build   Commit                                    UniqueID observed
      CS  10.11  dbg  280926  f24a3ef7edd4080d4cf6e109dac26e93872068dc  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      CS  10.11  opt  280926  f24a3ef7edd4080d4cf6e109dac26e93872068dc  No bug found
      CS  11.4   dbg  140926  03acdd67d599ab7136ef18c36f3479a306870290  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      CS  11.4   opt  140926  03acdd67d599ab7136ef18c36f3479a306870290  No bug found
      CS  11.8   dbg  140926  08c28e3fbd56c26fe0973bfcc807fa95c2b23ee3  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      CS  11.8   opt  140926  08c28e3fbd56c26fe0973bfcc807fa95c2b23ee3  No bug found
      CS  12.3   dbg  140926  0fcc374c2df8b9a7a5004b3afcc7cc42c3b7c13f  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      CS  12.3   opt  140926  0fcc374c2df8b9a7a5004b3afcc7cc42c3b7c13f  No bug found
      CS  13.1   dbg  140926  e30f2bd21e463d5f5f9f9210b75193a0257b8a8c  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      CS  13.1   opt  140926  e30f2bd21e463d5f5f9f9210b75193a0257b8a8c  No bug found
      CS  13.2   dbg  240926  45717ef4c736a6a92e0acf49399ce677bfcaea89  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      CS  13.2   opt  240926  45717ef4c736a6a92e0acf49399ce677bfcaea89  No bug found
      ES  11.4   dbg  060526  90f707057d44f1b5c013a0c3672fd12f32ea7085  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      ES  11.4   opt  060526  90f707057d44f1b5c013a0c3672fd12f32ea7085  No bug found
      ES  11.8   dbg  060526  1499789de285a8109d68d79347de0281865b28f4  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      ES  11.8   opt  060526  1499789de285a8109d68d79347de0281865b28f4  No bug found
      ES  12.3   dbg  280926  082387a5f3cbb877157998bb4baa95928f4aa121  is_valid_value_slow()|SIGABRT|Time::adjust_time_range_or_invalidate|Time::make_from_time|Time::Time|Time::Time
      ES  12.3   opt  280926  082387a5f3cbb877157998bb4baa95928f4aa121  No bug found
      

      Attachments

        Issue Links

          Activity

            People

              sanja Oleksandr Byelkin
              ramesh Ramesh Sivaraman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 0.5h
                  0.5h

                  Git Integration

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