1. 08 Apr, 2019 13 commits
  2. 07 Apr, 2019 7 commits
  3. 06 Apr, 2019 14 commits
    • Marko Mäkelä's avatar
      MDEV-12699 preparation: Clean up recv_sys · 1d30b7b1
      Marko Mäkelä authored
      The recv_sys data structures are accessed not only from the thread
      that executes InnoDB plugin initialization, but also from the
      InnoDB I/O threads, which can invoke recv_recover_page().
      
      Assert that sufficient concurrency control is in place.
      Some code was accessing recv_sys data structures without
      holding recv_sys->mutex.
      
      recv_recover_page(bpage): Refactor the call from buf_page_io_complete()
      into a separate function that performs necessary steps. The
      main thread was unnecessarily releasing and reacquiring recv_sys->mutex.
      
      recv_recover_page(block,mtr,recv_addr): Pass more parameters from
      the caller. Avoid redundant lookups and computations. Eliminate some
      redundant variables.
      
      recv_get_fil_addr_struct(): Assert that recv_sys->mutex is being held.
      That was not always the case!
      
      recv_scan_log_recs(): Acquire recv_sys->mutex for the whole duration
      of the function. (While we are scanning and buffering redo log records,
      no pages can be read in.)
      
      recv_read_in_area(): Properly protect access with recv_sys->mutex.
      
      recv_apply_hashed_log_recs(): Check recv_addr->state only once,
      and continuously hold recv_sys->mutex. The mutex will be released
      and reacquired inside recv_recover_page() and recv_read_in_area(),
      allowing concurrent processing by buf_page_io_complete() in I/O threads.
      1d30b7b1
    • Marko Mäkelä's avatar
      MDEV-12699 preparation: Write MLOG_INDEX_LOAD for FTS_ tables · aa3f7a10
      Marko Mäkelä authored
      The record MLOG_INDEX_LOAD is supposed to be written to indicate that
      some page modifications bypassed redo logging, and that redo logging
      is now re-enabled. It was not written for fulltext indexes during
      ALTER TABLE.
      
      row_merge_write_redo(): Declare globally. Assert that the index
      is neither a spatial nor fulltext index.
      
      recv_mlog_index_load(): Observe a MLOG_INDEX_LOAD operation.
      
      recv_parse_log_recs(): Handle MLOG_INDEX_LOAD also in multi-record
      mini-transactions. Because of this omission, we should keep writing
      MLOG_INDEX_LOAD in single-record mini-transactions, because older
      versions of Mariabackup would fail.
      
      row_fts_merge_insert(): Write MLOG_INDEX_LOAD for the auxiliary
      tables of fulltext indexes.
      aa3f7a10
    • Marko Mäkelä's avatar
      MDEV-12699 preparation: Initialize the entire page on MLOG_ZIP_PAGE_COMPRESS · 45d338dc
      Marko Mäkelä authored
      The record MLOG_ZIP_PAGE_COMPRESS is similar to MLOG_INIT_FILE_PAGE2
      that it contains all the information needed to initialize the page.
      Like for the other record, do initialize the entire page on recovery.
      45d338dc
    • Marko Mäkelä's avatar
      buf_page_get_gen(): Allow BUF_GET_IF_IN_POOL with a dummy page_size · 1b95118c
      Marko Mäkelä authored
      The page_size argument to buf_page_get_gen() only matters when the
      page is going to be loaded into the buffer pool. Allow callers to
      pass a dummy parameter when using BUF_GET_IF_IN_POOL (which would
      return NULL if the block is not in the buffer pool).
      1b95118c
    • Marko Mäkelä's avatar
      Fix a crash in CHECK TABLE for corrupted encrypted root page · 80f29211
      Marko Mäkelä authored
      btr_root_get(): Ignore the root->page.encrypted flag.
      The purpose of this flag is questionable since
      commit 8c43f963.
      
      btr_validate_index(): Avoid crash if btr_root_get() returns NULL.
      80f29211
    • Marko Mäkelä's avatar
      MDEV-15528 preparation: Do not modify a freed page · 1d0380e0
      Marko Mäkelä authored
      btr_free_root(): Add the parameter bool invalidate.
      
      btr_free_root_invalidate(): Remove.
      1d0380e0
    • Marko Mäkelä's avatar
      Clean up the parsing of MLOG_INIT_FILE_PAGE2 · 56df18be
      Marko Mäkelä authored
      fsp_apply_init_file_page(): Renamed from fsp_init_file_page_low().
      
      fsp_parse_init_file_page(): Remove. The redo log record has no
      parameters.
      56df18be
    • Marko Mäkelä's avatar
      recv_recovery_is_on(): Add UNIV_UNLIKELY · 71f9552f
      Marko Mäkelä authored
      Normally, InnoDB is not in the process of executing crash recovery.
      Provide a hint to the compiler that the recovery-related code paths
      are rarely executed.
      71f9552f
    • Marko Mäkelä's avatar
      Re-record plugins.feedback_plugin_load · c56ae2df
      Marko Mäkelä authored
      c56ae2df
    • Teemu Ollakka's avatar
      Fixed wsrep replaying for stored procedures (#1256) · eb872ceb
      Teemu Ollakka authored
      - Changed replaying to always allocate a separate THD object
        for applying log events. This is to avoid tampering original
        THD state during replay process.
      - Return success from sp_instr_stmt::exec_core() if replaying
        succeeds.
      - Do not push warnings/errors into diagnostics area if the
        transaction must be replayed. This is to avoid reporting
        transient errors to the client.
      
      Added two tests galera_sp_bf_abort, galera_sp_insert_parallel.
      Wsrep-lib position updated.
      eb872ceb
    • Jan Lindström's avatar
      MDEV-18265: Replace deprecated variable debug to debug_dbug on Galera tests · fe62ff6e
      Jan Lindström authored
      	deleted:    mysql-test/suite/galera/r/MW-86.result
      	deleted:    mysql-test/suite/galera/r/mysql-wsrep#216.result
      	modified:   mysql-test/suite/galera/t/GCF-1081.test
      	modified:   mysql-test/suite/galera_3nodes_sr/r/GCF-832.result
      	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-810A.test
      	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-810B.test
      	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-810C.test
      	modified:   mysql-test/suite/galera_3nodes_sr/t/GCF-832.test
      	modified:   mysql-test/suite/galera_sr/r/mysql-wsrep-features#35.result
      	modified:   mysql-test/suite/galera_sr/t/mysql-wsrep-features#35.test
      fe62ff6e
    • Sergei Golubchik's avatar
      update test results · 8a194d99
      Sergei Golubchik authored
      8a194d99
    • Alexander Barkov's avatar
    • Igor Babaev's avatar
      MDEV-18956 Assertion `sel->quick' failed in JOIN::make_range_rowid_filters · 18bf0bf4
      Igor Babaev authored
      If SUBS_IN_TO_EXISTS strategy has been chosen for a subquery then
      additional conditions are injected into WHERE/ON/HAVING of this subquery
      and it may happen that test_quick_select() invoked from
      JOIN::make_range_rowid_filters() discovers impossible range. This
      must be checked.
      18bf0bf4
  4. 05 Apr, 2019 6 commits