1. 09 May, 2017 1 commit
  2. 08 May, 2017 5 commits
  3. 05 May, 2017 6 commits
  4. 03 May, 2017 1 commit
  5. 02 May, 2017 6 commits
  6. 30 Apr, 2017 3 commits
  7. 29 Apr, 2017 2 commits
  8. 28 Apr, 2017 2 commits
    • Sergei Golubchik's avatar
      Merge branch '10.0' 10.1 · e74f2e2b
      Sergei Golubchik authored
      e74f2e2b
    • Marko Mäkelä's avatar
      MDEV-12602 InnoDB: Failing assertion: space->n_pending_ops == 0 · b82c602d
      Marko Mäkelä authored
      This fixes a regression caused by MDEV-12428.
      When we introduced a variant of fil_space_acquire() that could
      increment space->n_pending_ops after space->stop_new_ops was set,
      the logic of fil_check_pending_operations() was broken.
      
      fil_space_t::n_pending_ios: A new field to track read or write
      access from the buffer pool routines immediately before a block
      write or after a block read in the file system.
      
      fil_space_acquire_for_io(), fil_space_release_for_io(): Similar
      to fil_space_acquire_silent() and fil_space_release(), but
      modify fil_space_t::n_pending_ios instead of fil_space_t::n_pending_ops.
      
      Adjust a number of places accordingly, and remove some redundant
      tablespace lookups.
      
      The following parts of this fix differ from the 10.2 version of this fix:
      
      buf_page_get_corrupt(): Add a tablespace parameter.
      
      In 10.2, we already had a two-phase process of freeing fil_space objects
      (first, fil_space_detach(), then release fil_system->mutex, and finally
      free the fil_space and fil_node objects).
      
      fil_space_free_and_mutex_exit(): Renamed from fil_space_free().
      Detach the tablespace from the fil_system cache, release the
      fil_system->mutex, and then wait for space->n_pending_ios to reach 0,
      to avoid accessing freed data in a concurrent thread.
      During the wait, future calls to fil_space_acquire_for_io() will
      not find this tablespace, and the count can only be decremented to 0,
      at which point it is safe to free the objects.
      
      fil_node_free_part1(), fil_node_free_part2(): Refactored from
      fil_node_free().
      b82c602d
  9. 27 Apr, 2017 14 commits