1. 05 Sep, 2024 1 commit
  2. 04 Sep, 2024 1 commit
    • Marko Mäkelä's avatar
      MDEV-34446 SIGSEGV on SET GLOBAL innodb_log_file_size with memory-mapped log file · fe5829a1
      Marko Mäkelä authored
      log_t::resize_write(): Advance log_sys.resize_lsn and reset
      the resize_log offset to START_OFFSET whenever the memory-mapped buffer
      would wrap around.
      
      Previously, in case the initial target offset would be beyond the
      requested innodb_log_file_size, we only adjusted the offset but
      not the LSN. An incorrect LSN would cause log_sys.buf_free to be out
      of bounds when the log resizing completes.
      
      The log_sys.lsn_lock will cover the entire duration of replicating
      memory-mapped log for resizing. We just need a mutex that is compatible
      with the caller holding log_sys.latch. While the choice of mtr_t::finisher
      (for normal log writes) depends on mtr_t::spin_wait_delay,
      replicating the log during resizing is a rare operation where we can
      afford possible additional context switching overhead.
      fe5829a1
  3. 03 Sep, 2024 1 commit
  4. 02 Sep, 2024 2 commits
  5. 01 Sep, 2024 11 commits
  6. 30 Aug, 2024 2 commits
  7. 29 Aug, 2024 8 commits
    • Marko Mäkelä's avatar
      MDEV-34750 SET GLOBAL innodb_log_file_size is not crash safe · 984606d7
      Marko Mäkelä authored
      The recent commit 4ca355d8 (MDEV-33894)
      caused a serious regression for online InnoDB ib_logfile0 resizing,
      breaking crash-safety unless the memory-mapped log file interface is
      being used. However, the log resizing was broken also before this.
      
      To prevent such regressions in the future, we extend the test
      innodb.log_file_size_online with a kill and restart of the server
      and with some writes running concurrently with the log size change.
      When run enough many times, this test revealed all the bugs that
      are being fixed by the code changes.
      
      log_t::resize_start(): Do not allow the resized log to start before
      the current log sequence number. In this way, there is no need to
      copy anything to the first block of resize_buf. The previous logic
      regarding that was incorrect in two ways. First, we would have to
      copy from the last written buffer (buf or flush_buf). Second, we failed
      to ensure that the mini-transaction end marker bytes would be 1
      in the buffer. If the source ib_logfile0 had wrapped around an odd number
      of times, the end marker would be 0. This was occasionally observed
      when running the test innodb.log_file_size_online.
      
      log_t::resize_write_buf(): To adjust for the resize_start() change,
      do not write anything that would be before the resize_lsn.
      Take the buffer (resize_buf or resize_flush_buf) as a parameter.
      Starting with commit 4ca355d8
      we no longer swap buffers when rewriting the last log block.
      
      log_t::append(): Define as a static function; only some debug
      assertions need to refer to the log_sys object.
      
      innodb_log_file_size_update(): Wake up the buf_flush_page_cleaner()
      if needed, and wait for it to complete a batch while waiting for
      the log resizing to be completed. If the current LSN is behind the
      resize target LSN, we will write redundant FILE_CHECKPOINT records to
      ensure that the log resizing completes. If the buf_pool.flush_list is
      empty or the buf_flush_page_cleaner() is stuck for some reason, our wait
      will time out in 5 seconds, so that we can periodically check if the
      execution of SET GLOBAL innodb_log_file_size was aborted. Previously,
      we could get into a busy loop here while the buf_flush_page_cleaner()
      would remain idle.
      984606d7
    • Jan Lindström's avatar
      MDEV-31173 : Server crashes when setting wsrep_cluster_address after adding... · 9091afdc
      Jan Lindström authored
      MDEV-31173 : Server crashes when setting wsrep_cluster_address after adding invalid value to wsrep_allowlist table
      
      Problem was that wsrep_schema tables were not marked as
      category information. Fix allows access to wsrep_schema
      tables even when node is detached.
      
      This is 10.4-10.9 version of fix.
      Signed-off-by: default avatarJulius Goryavsky <julius.goryavsky@mariadb.com>
      9091afdc
    • Jan Lindström's avatar
      MDEV-33997 : Assertion `((WSREP_PROVIDER_EXISTS_ && this->variables.wsrep_on)... · b1d74b7e
      Jan Lindström authored
      MDEV-33997 : Assertion `((WSREP_PROVIDER_EXISTS_ && this->variables.wsrep_on) && wsrep_emulate_bin_log) || mysql_bin_log.is_open()' failed in int THD::binlog_write_row(TABLE*, bool, const uchar*)
      
      Problem was that we did not found that table was partitioned
      and then we should find what is actual underlaying storage
      engine.
      
      We should not use RSU for !InnoDB tables.
      Signed-off-by: default avatarJulius Goryavsky <julius.goryavsky@mariadb.com>
      b1d74b7e
    • Oleksandr Byelkin's avatar
      MDEV-34831: MDEV-34704 introduces a typo, --qick · 5a61fd58
      Oleksandr Byelkin authored
      Fix MDEV-34704 typos.
      5a61fd58
    • Oleksandr Byelkin's avatar
      Merge branch '10.6' into 10.11 · 3a1ff739
      Oleksandr Byelkin authored
      3a1ff739
    • Oleksandr Byelkin's avatar
      Merge branch '10.5' into 10.6 · a4654ecc
      Oleksandr Byelkin authored
      a4654ecc
    • Oleksandr Byelkin's avatar
      MDEV-34833 Assertion failure in Item_float::do_build_clone (Item_static_float_func) · 03a5455c
      Oleksandr Byelkin authored
      Added missing method of Item_static_float_func
      03a5455c
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.11 · cfcf27c6
      Marko Mäkelä authored
      cfcf27c6
  8. 28 Aug, 2024 4 commits
    • Oleksandr Byelkin's avatar
      MDEV-34704 Quick mode produces the bug for mariadb client · 872dbec9
      Oleksandr Byelkin authored
        --quick-max-column-width parameter added to limit field
          width in --quick mode.
      872dbec9
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 0e76c1ba
      Marko Mäkelä authored
      0e76c1ba
    • Marko Mäkelä's avatar
      MDEV-34802 Recovery fails to note some log corruption · 1ff6b6f0
      Marko Mäkelä authored
      recv_recovery_from_checkpoint_start(): Abort startup due to log
      corruption if we were unable to parse the entire log between
      the latest log checkpoint and the corresponding FILE_CHECKPOINT record.
      
      Also, reduce some code bloat related to log output and log_sys.mutex.
      
      Reviewed by: Debarun Banerjee
      1ff6b6f0
    • Marko Mäkelä's avatar
      MDEV-34803 innodb_lru_flush_size is no longer used · bda40ccb
      Marko Mäkelä authored
      In commit fa8a46eb (MDEV-33613)
      the parameter innodb_lru_flush_size ceased to have any effect.
      
      Let us declare the parameter as deprecated and additionally as
      MARIADB_REMOVED_OPTION, so that there will be a warning written
      to the error log in case the option is specified in the command line.
      
      Let us also do the same for the parameter
      innodb_purge_rseg_truncate_frequency
      that was deprecated&ignored earlier in MDEV-32050.
      
      Reviewed by: Debarun Banerjee
      bda40ccb
  9. 27 Aug, 2024 5 commits
  10. 26 Aug, 2024 5 commits