1. 14 Nov, 2022 4 commits
    • Marko Mäkelä's avatar
      Cleanup: Remove a useless header file · 744b33c2
      Marko Mäkelä authored
      744b33c2
    • Marko Mäkelä's avatar
      MDEV-16264 fixup: Remove unused variables · ee7fba17
      Marko Mäkelä authored
      ee7fba17
    • Marko Mäkelä's avatar
      MDEV-29982 Improve the InnoDB log overwrite error message · e0e096fa
      Marko Mäkelä authored
      The InnoDB write-ahead log ib_logfile0 is of fixed size,
      specified by innodb_log_file_size. If the tail of the log
      manages to overwrite the head (latest checkpoint) of the log,
      crash recovery will be broken.
      
      Let us clarify the messages about this, including adding
      a message on the completion of a log checkpoint that notes
      that the dangerous situation is over.
      
      To reproduce the dangerous scenario, we will introduce the
      debug injection label ib_log_checkpoint_avoid_hard, which will
      avoid log checkpoints even harder than the previous
      ib_log_checkpoint_avoid.
      
      log_t::overwrite_warned: The first known dangerous log sequence number.
      Set in log_close() and cleared in log_write_checkpoint_info(),
      which will output a "Crash recovery was broken" message.
      e0e096fa
    • Marko Mäkelä's avatar
      MDEV-29905 fixup: Remove some unnecessary code · 2283f82d
      Marko Mäkelä authored
      srv_shutdown(): Do not call log_free_check(), because it will now
      be repeatedly called by ibuf_merge_all(). Do not call
      srv_sync_log_buffer_in_background(), because we do not actually care
      about durability during shutdown. Log writes will already be triggered
      by buf_flush_page_cleaner() for writing back modified pages, possibly by
      log_free_check().
      
      logs_empty_and_mark_files_at_shutdown(): Clean up a condition.
      This function is the caller of srv_shutdown(), and it will ensure that
      the log and the buffer pool will be in clean state before shutdown.
      2283f82d
  2. 13 Nov, 2022 1 commit
  3. 10 Nov, 2022 1 commit
  4. 09 Nov, 2022 5 commits
  5. 08 Nov, 2022 15 commits
  6. 07 Nov, 2022 8 commits
  7. 05 Nov, 2022 1 commit
    • Vladislav Vaintroub's avatar
      MDEV-29951 server hang in crash handler · 92be8d20
      Vladislav Vaintroub authored
      When trying to output stacktrace, and addr2line is not installed, the
      child process forked by start_addr2line_fork() will fail to do exec(),
      and finish with exit(1).
      
      There is a problem with exit() though - it runs exit handlers,
      and for the forked copy of crashing process, it is a bad idea.
      
      In 10.5+ code for example, exit handlers include
      tpool::task_group static destructors, and it will hang infinitely
      waiting for completion of the outstanding tasks.
      
      The fix is to use _exit() instead, which skips the execution of exit
      handlers
      92be8d20
  8. 03 Nov, 2022 1 commit
  9. 02 Nov, 2022 3 commits
  10. 01 Nov, 2022 1 commit
    • Sergei Golubchik's avatar
      MDEV-29924 Assertion `(((nr) % (1LL << 24)) % (int) log_10_int[6 - dec]) == 0'... · 1a3859ff
      Sergei Golubchik authored
      MDEV-29924 Assertion `(((nr) % (1LL << 24)) % (int) log_10_int[6 - dec]) == 0' failed in my_time_packed_to_binary on SELECT when using TIME field
      
      when assigning the cached item to the Item_cache for the first time
      make sure to use Item_cache::setup(), not Item_cache::store().
      Because the former copies the metadata (and allocates memory, in case
      of Item_cache_row), and Item_cache::decimal must be set for
      comparisons to work correctly.
      1a3859ff