1. 16 Nov, 2022 1 commit
  2. 15 Nov, 2022 2 commits
  3. 14 Nov, 2022 5 commits
    • Marko Mäkelä's avatar
      MDEV-29984 innodb_fast_shutdown=0 fails to report change buffer merge progress · dc2741be
      Marko Mäkelä authored
      ibuf.size, ibuf.max_size: Changed the type to Atomic_relaxed<ulint>
      in order to fix some (not all) race conditions.
      
      ibuf_contract(): Renamed from ibuf_merge_pages(ulint*).
      
      ibuf_merge(), ibuf_merge_all(): Removed.
      
      srv_shutdown(): Invoke log_free_check() and ibuf_contract(). Even though
      ibuf_contract() is not writing anything, it will trigger calls of
      ibuf_merge_or_delete_for_page(), which will write something. Because
      we cannot invoke log_free_check() at that low level, we must invoke
      it at the high level.
      
      srv_shutdown_print(): Replaces srv_shutdown_print_master_pending().
      Report progress and remaining work every 15 seconds. For the
      change buffer merge, the remaining work is indicated by ibuf.size.
      dc2741be
    • 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
  4. 13 Nov, 2022 1 commit
  5. 10 Nov, 2022 1 commit
  6. 09 Nov, 2022 5 commits
  7. 08 Nov, 2022 15 commits
  8. 07 Nov, 2022 8 commits
  9. 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
  10. 03 Nov, 2022 1 commit