1. 15 Mar, 2022 1 commit
    • Marko Mäkelä's avatar
      MDEV-28043 Race condition between mtr_t::commit() and checkpoint · 8575d2fb
      Marko Mäkelä authored
      In commit a635c406 (MDEV-27774)
      a race condition was introduced between mtr_t::commit() and
      a log checkpoint.
      
      Between the time of assigning the log sequence number and adding
      the changed pages to buf_pool.flush_list, the log_sys.latch must
      be continuously held by the current thread, or otherwise a
      log checkpoint could get the wrong result from
      buf_pool.get_oldest_modification().
      
      buf_pool_t::insert_into_flush_list(): Add a debug assertion for
      increasing the probability of cathing this type of problem.
      
      mtr_t::m_latch_ex: A flag that indicates whether the mini-transaction
      is holding log_sys.latch in exclusive mode.
      
      mtr_t::do_write(), mtr_t::finish_write(): Remove the parameter
      "bool ex" and refer to m_latch_ex instead.
      
      mtr_t::commit(): Release log_sys.latch according to m_latch_ex.
      
      mtr_t::commit_shrink(), mtr_t::commit_files(): Set m_latch_ex.
      
      mtr_t::do_write(): Do not release an exclusive log_sys.latch,
      but instead set m_latch_ex if needed.
      8575d2fb
  2. 14 Mar, 2022 10 commits
    • Marko Mäkelä's avatar
      Merge 10.7 into 10.8 · 18bb95b6
      Marko Mäkelä authored
      18bb95b6
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.7 · e67d46e4
      Marko Mäkelä authored
      e67d46e4
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 572e3430
      Marko Mäkelä authored
      572e3430
    • Marko Mäkelä's avatar
      MDEV-28050: clang -Wtypedef-redefinition when PLUGIN_S3=NO · 258c34f1
      Marko Mäkelä authored
      Let us remove the redundant typedef.
      This problem was revealed by
      commit 77c184df
      258c34f1
    • Marko Mäkelä's avatar
      MDEV-24841: More workarounds · c2146ce7
      Marko Mäkelä authored
      For some reason, the tests of the MemorySanitizer build on 10.5 failed
      with both clang 13 and clang 14 with SIGSEGV. On 10.6 where it worked
      better, some more places to work around were identified.
      c2146ce7
    • Marko Mäkelä's avatar
      MDEV-24841 Build error with MSAN use-of-uninitialized-value in comp_err · 59359fb4
      Marko Mäkelä authored
      The MemorySanitizer implementation in clang includes some built-in
      instrumentation (interceptors) for GNU libc. In GNU libc 2.33, the
      interface to the stat() family of functions was changed. Until the
      MemorySanitizer interceptors are adjusted, any MSAN code builds
      will act as if that the stat() family of functions failed to initialize
      the struct stat.
      
      A fix was applied in
      https://reviews.llvm.org/rG4e1a6c07052b466a2a1cd0c3ff150e4e89a6d87a
      but it fails to cover the 64-bit variants of the calls.
      
      For now, let us work around the MemorySanitizer bug by defining
      and using the macro MSAN_STAT_WORKAROUND().
      59359fb4
    • Marko Mäkelä's avatar
      MDEV-28049 Error on compiling trx0purge.cc · 3b499679
      Marko Mäkelä authored
      In commit 83212632
      the trx_rseg_latch was instrumented for performance_schema,
      but some acqusitions of rd_lock() were not adjusted.
      Thus, the build would fail on platforms where a futex-based
      rw-lock is not available (SUX_LOCK_GENERIC) unless the code
      was built with cmake -DPLUGIN_PERFSCHEMA=NO.
      3b499679
    • Nayuta Yanagisawa's avatar
      MDEV-27169 Change default values of Spider plugin variables to default values of table variables · 810ed88c
      Nayuta Yanagisawa authored
      Some Spider table options introduces an unnecessary complication to
      Spider settings. For example, the default value of the plugin variable
      spider_auto_increment_mode is -1 (use table value) and the default
      table option value is 0 (normal mode). Thus, the virtual default value
      of the variable is 0. This kind of indirection is confusing.
      
      In order to delete such confusing table options in a future release,
      we first change the default values of some Spider plugin variables
      from -1 (use table value) to the corresponding default table values.
      The default table values are defined in spider_set_connect_info_default().
      
      At the same time, we also deprecate the option value -1 (use table value).
      810ed88c
    • Nayuta Yanagisawa's avatar
      MDEV-27923 Deprecate spider_use_handler · 332c59a2
      Nayuta Yanagisawa authored
      Deprecate the plugin variable spider_use_handler and the corresponding
      table parameters "uhd" and "use_handler".
      
      Passing a Handler statement to data nodes, without converting it to
      SQL sometimes, might improve the performance, while this introduces
      some complication to the implementation.
      
      In the first place, only a few people use Handler statements and the
      performance gain seems not to be very significant. Further, setting
      spider_use_handler > 0 disables the GROUP BY handler. So, we decided
      to deprecate the variable.
      332c59a2
    • Nayuta Yanagisawa's avatar
      MDEV-27860 SIGSEGV in spider_parse_connect_info on CREATE TABLE · 00021a92
      Nayuta Yanagisawa authored
      Check if option_struct is NULL in spider_parse_connect_info().
      00021a92
  3. 12 Mar, 2022 3 commits
  4. 11 Mar, 2022 20 commits
  5. 10 Mar, 2022 6 commits