1. 03 Jun, 2023 5 commits
    • Marko Mäkelä's avatar
      MDEV-31309 Innodb_buffer_pool_read_requests is not updated correctly · dd298873
      Marko Mäkelä authored
      srv_export_innodb_status(): Update
      export_vars.innodb_buffer_pool_read_requests as it was done
      before commit a55b951e (MDEV-26827).
      If innodb_status_variables[] pointed to a sharded variable, it would
      only access the first shard.
      dd298873
    • Marko Mäkelä's avatar
      MDEV-31308 InnoDB monitor trx_rseg_history_len was accidentally disabled by default · 89eb6fa8
      Marko Mäkelä authored
      innodb_counter_info[]: Revert a change that was accidentally made in
      commit 204e7225
      89eb6fa8
    • Marko Mäkelä's avatar
      MDEV-31158: Potential hang with ROW_FORMAT=COMPRESSED tables · 883333a7
      Marko Mäkelä authored
      btr_cur_need_opposite_intention(): Check also page_zip_available()
      so that we will escalate to exclusive index latch when a non-leaf
      page may have to be split further due to ROW_FORMAT=COMPRESSED page
      overflow.
      
      Tested by: Matthias Leich
      883333a7
    • Marko Mäkelä's avatar
      MDEV-29593 fixup: Avoid a leak if rseg.undo_cached is corrupted · 459eb9a6
      Marko Mäkelä authored
      trx_purge_truncate_rseg_history(): Avoid a leak similar to the one
      that was fixed in MDEV-31324, in case a supposedly cached undo log
      page is not found in the rseg.undo_cached list.
      459eb9a6
    • Marko Mäkelä's avatar
      MDEV-31343 Another server hang with innodb_undo_log_truncate=ON · e89bd39c
      Marko Mäkelä authored
      trx_purge_truncate_history(): While waiting for a write-fixed block
      to become available, simply wait for an exclusive latch on it.
      Also, simplify the iteration: first check for oldest_modification>2
      (to ignore clean pages or pages belonging to the temporary tablespace)
      and then compare the tablespace identifier.
      
      Before releasing buf_pool.flush_list_mutex we will buffer-fix the block
      of interest. In that way, buf_page_t::can_relocate() will not hold on
      the block and it must remain in the buffer pool until we have acquired
      an exclusive latch on it. If the block is still dirty, we will register
      it with the tablespace truncation mini-transaction; else, we will simply
      release the latch and buffer-fix and move to the next block.
      
      This also reverts commit c4d79399
      because that fix should no longer be necessary; the wait for an
      exclusive block latch should allow buf_pool_t::release_freed_page()
      on the same block to proceed.
      
      Tested by: Axel Schwenke, Matthias Leich
      e89bd39c
  2. 05 May, 2023 4 commits
    • Sergei Petrunia's avatar
      MDEV-31199: Assertion `field->table->stats_is_read' fails with hash_join_cardinality=on · a24f2bb5
      Sergei Petrunia authored
      Derived table creation code would call Field::make_new_field() which would
      memcpy the Field object from the source table, including Field::read_stats.
      
      But the temp. table as a whole had table->stats_is_read=false. Which was
      correct but not consistent with Field::read_stats and caused an assertion.
      
      Fixed by making sure that Field::read_stats=NULL for fields in the new
      temporary (i.e. work) tables.
      a24f2bb5
    • Oleksandr Byelkin's avatar
      Merge branch '10.5' into 10.6 · 1c394795
      Oleksandr Byelkin authored
      1c394795
    • Oleksandr Byelkin's avatar
      Merge branch '10.4' into 10.5 · b735ca47
      Oleksandr Byelkin authored
      b735ca47
    • Sergei Petrunia's avatar
      MDEV-31194: Server crash or assertion failure with join_cache_level=4 · 2594da7a
      Sergei Petrunia authored
      The problem, introduced in patch for MDEV-26301:
      
      When check_join_cache_usage() decides not to use join buffer, it must
      adjust the access method accordingly. For BNL-H joins this means switching
      from pseudo-"ref access"(with index=MAX_KEY) to some other access method.
      
      Failing to do this will cause assertions down the line when code that is
      not aware of BNL-H will try to initialize index use for ref access with
      index=MAX_KEY.
      
      The fix is to follow the regular code path to disable the join buffer for
      the join_tab ("goto no_join_cache") instead of just returning from
      check_join_cache_usage().
      2594da7a
  3. 04 May, 2023 10 commits
  4. 03 May, 2023 8 commits
  5. 02 May, 2023 13 commits