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

Assertion `compare_cost(file->cost_no_capping(&cost) + range->cost.comp_cost + range->cost.setup_cost, s->quick->read_time)' failed in best_access_path

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 11.4, 11.0.3, 12.0(EOL), 11.8
    • 11.4, 11.8
    • Optimizer
    • None

    Description

      --source include/have_innodb.inc
       
      SET @innodb_lookup_cost.save= @@InnoDB.OPTIMIZER_KEY_LOOKUP_COST;
       
      CREATE TABLE t (a INT, b INT, KEY(b)) ENGINE=InnoDB;
      SET OPTIMIZER_SCAN_SETUP_COST= 10000;
      SET GLOBAL InnoDB.OPTIMIZER_KEY_LOOKUP_COST= 1000;
      SET optimizer_switch= 'mrr=on';
       
      SELECT * FROM t WHERE b IN (1,2,3,4,5) OR b = 6;
       
      SET GLOBAL InnoDB.OPTIMIZER_KEY_LOOKUP_COST= @innodb_lookup_cost.save;
      DROP TABLE t;
      

      11.4 3109d994ebf867d6f3efc65a0e4c41195b8239f9

      mariadbd: /data/bld/11.4-asan-ubsan/sql/sql_select.cc:9605: void best_access_path(JOIN*, JOIN_TAB*, table_map, const POSITION*, uint, bool, double, POSITION*, POSITION*): Assertion `compare_cost(file->cost_no_capping(&cost) + range->cost.comp_cost + range->cost.setup_cost, s->quick->read_time)' failed.
      250727 21:22:27 [ERROR] /share8t/bld/11.4-asan-ubsan/sql/mariadbd got signal 6 ;
       
      #10 0x00007f7945653eb2 in __GI___assert_fail (assertion=0x55cfe39b2f00 "compare_cost(file->cost_no_capping(&cost) + range->cost.comp_cost + range->cost.setup_cost, s->quick->read_time)", file=0x55cfe39a25c0 "/data/bld/11.4-asan-ubsan/sql/sql_select.cc", line=9605, function=0x55cfe39b26e0 "void best_access_path(JOIN*, JOIN_TAB*, table_map, const POSITION*, uint, bool, double, POSITION*, POSITION*)") at ./assert/assert.c:101
      #11 0x000055cfe02485bb in best_access_path (join=0x62d0000de898, s=s@entry=0x62d0000df810, remaining_tables=remaining_tables@entry=1, join_positions=<optimized out>, idx=idx@entry=0, disable_jbuf=<optimized out>, record_count=<optimized out>, record_count@entry=1, pos=<optimized out>, loose_scan_pos=<optimized out>) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:9605
      #12 0x000055cfe024cdd5 in get_costs_for_tables (join=join@entry=0x62d0000de898, remaining_tables=remaining_tables@entry=1, idx=idx@entry=0, record_count=record_count@entry=1, trace_one_table=trace_one_table@entry=0x7f79343ff2e0, pos=pos@entry=0x62d0000dfe78, store_position=store_position@entry=0x7f79343ff1e0, allowed_tables=<optimized out>, stop_on_eq_ref=<optimized out>) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:11451
      #13 0x000055cfe02507ad in best_extension_by_limited_search (join=join@entry=0x62d0000de898, remaining_tables=remaining_tables@entry=1, idx=idx@entry=0, record_count=record_count@entry=1, read_time=read_time@entry=0, search_depth=search_depth@entry=62, use_cond_selectivity=use_cond_selectivity@entry=4, processed_eq_ref_tables=processed_eq_ref_tables@entry=0x7f79343ff4c0) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:12023
      #14 0x000055cfe0255348 in greedy_search (join=join@entry=0x62d0000de898, remaining_tables=remaining_tables@entry=1, search_depth=search_depth@entry=62, use_cond_selectivity=use_cond_selectivity@entry=4) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:10677
      #15 0x000055cfe025d617 in choose_plan (join=join@entry=0x62d0000de898, join_tables=<optimized out>, emb_sjm_nest=emb_sjm_nest@entry=0x0) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:10186
      #16 0x000055cfe02a144b in make_join_statistics (join=join@entry=0x62d0000de898, tables_list=..., keyuse_array=keyuse_array@entry=0x62d0000debf8) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:6331
      #17 0x000055cfe02aae1a in JOIN::optimize_inner (this=this@entry=0x62d0000de898) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:2708
      #18 0x000055cfe02abf01 in JOIN::optimize (this=this@entry=0x62d0000de898) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:2003
      #19 0x000055cfe02ad11f in mysql_select (thd=thd@entry=0x62c0001e0218, tables=<optimized out>, fields=..., conds=conds@entry=0x62d0000ddd90, og_num=og_num@entry=0, order=order@entry=0x0, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:5349
      #20 0x000055cfe02ae563 in handle_select (thd=thd@entry=0x62c0001e0218, lex=lex@entry=0x62c0001e45e8, result=result@entry=0x62d0000de868, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/bld/11.4-asan-ubsan/sql/sql_select.cc:642
      #21 0x000055cfdff3634b in execute_sqlcom_select (thd=thd@entry=0x62c0001e0218, all_tables=<optimized out>) at /data/bld/11.4-asan-ubsan/sql/sql_parse.cc:6183
      #22 0x000055cfdff7a359 in mysql_execute_command (thd=thd@entry=0x62c0001e0218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/11.4-asan-ubsan/sql/sql_parse.cc:3975
      #23 0x000055cfdff98727 in mysql_parse (thd=thd@entry=0x62c0001e0218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f7934401ac0) at /data/bld/11.4-asan-ubsan/sql/sql_parse.cc:7898
      #24 0x000055cfdffa1a07 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62c0001e0218, packet=packet@entry=0x62900028f219 "SELECT * FROM t WHERE b IN (1,2,3,4,5) OR b = 6", packet_length=packet_length@entry=47, blocking=blocking@entry=true) at /data/bld/11.4-asan-ubsan/sql/sql_parse.cc:1904
      #25 0x000055cfdffae65d in do_command (thd=thd@entry=0x62c0001e0218, blocking=blocking@entry=true) at /data/bld/11.4-asan-ubsan/sql/sql_parse.cc:1417
      #26 0x000055cfe07cd63a in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000008fb8, put_in_cache=put_in_cache@entry=true) at /data/bld/11.4-asan-ubsan/sql/sql_connect.cc:1408
      #27 0x000055cfe07ce797 in handle_one_connection (arg=0x608000008fb8) at /data/bld/11.4-asan-ubsan/sql/sql_connect.cc:1320
      #28 0x000055cfe21e73b3 in pfs_spawn_thread (arg=0x617000007e98) at /data/bld/11.4-asan-ubsan/storage/perfschema/pfs.cc:2201
      #29 0x00007f79456a81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #30 0x00007f794572885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      ANALYZE/EXPLAIN also fails on the assertion.

      No obvious immediate problem on a non-debug build. The plan on the non-debug build:

      11.4 non-debug 3109d994ebf867d6f3efc65a0e4c41195b8239f9

      ANALYZE FORMAT=JSON SELECT * FROM t WHERE b IN (1,2,3,4,5) OR b = 6;
      ANALYZE
      {
        "query_optimization": {
          "r_total_time_ms": 0.152959717
        },
        "query_block": {
          "select_id": 1,
          "cost": 2.002584125,
          "r_loops": 1,
          "r_total_time_ms": 0.094202868,
          "nested_loop": [
            {
              "table": {
                "table_name": "t",
                "access_type": "range",
                "possible_keys": ["b"],
                "key": "b",
                "key_length": "5",
                "used_key_parts": ["b"],
                "loops": 1,
                "r_loops": 1,
                "rows": 1,
                "r_rows": 0,
                "cost": 2.002584125,
                "r_engine_stats": {
                  "pages_accessed": 6
                },
                "filtered": 100,
                "r_filtered": 100,
                "index_condition": "t.b in (1,2,3,4,5) or t.b = 6",
                "mrr_type": "Rowid-ordered scan"
              }
            }
          ]
        }
      }
      

      Attachments

        Activity

          People

            psergei Sergei Petrunia
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

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