1. 02 Aug, 2020 1 commit
  2. 31 Jul, 2020 6 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-14711 Fix-up · 5ec40fbb
      Thirunarayanan Balathandayuthapani authored
      5ec40fbb
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-22511 innodb.truncate_foreign failed in buildbot with wrong error code · a6066e23
      Thirunarayanan Balathandayuthapani authored
      - Adding lock_wait_timeout value as 1 make sure that truncate table
      fails instead of making MDL timeout.
      a6066e23
    • Marko Mäkelä's avatar
      MDEV-11799 Doublewrite recovery can corrupt data pages · 879ba197
      Marko Mäkelä authored
      The purpose of the InnoDB doublewrite buffer is to make InnoDB
      tolerant against cases where the server was killed in the middle
      of a page write. (In Linux, killing a process may interrupt a
      write system call, typically on a 4096-byte boundary.)
      
      There may exist multiple copies of a page number in the doublewrite
      buffer. Recovery should choose the latest valid copy of the page.
      By design, the FIL_PAGE_LSN must not precede the latest checkpoint LSN
      nor be later than the end of the recovered log.
      
      For page_compressed and encrypted pages, we were missing proper
      consistency checks. In the 10.4 data set generated for in MDEV-23231,
      the data file contained a valid page_compressed page, and an
      identical copy of that page was also present in the doublewrite
      buffer. But, recovery would incorrectly consider the page invalid
      and restore an uncompressed copy of the same page that had been
      written before the log checkpoint. (In fact, no redo log was to
      be applied to that page.)
      
      buf_dblwr_process(): Validate the FIL_PAGE_LSN in the doublewrite
      buffer pages, and always skip page 0, because those pages should
      have been recovered by Datafile::restore_from_doublewrite() if
      necessary.
      
      Datafile::restore_from_doublewrite(): Choose the latest applicable
      page from the doublewrite buffer.
      
      recv_dblwr_t::find_page(): Also validate encrypted or
      page_compressed pages.
      
      recv_dblwr_t::validate_page(): New function to validate a page,
      either a copy in a data file or in the doublewrite buffer.
      Also validate encrypted or page_compressed pages.
      
      This is joint work with Thirunarayanan Balathandayuthapani.
      879ba197
    • Marko Mäkelä's avatar
      MDEV-23198 Crash in REPLACE · f35d1721
      Marko Mäkelä authored
      row_vers_impl_x_locked_low(): clust_offsets may point to memory
      that is allocated by mem_heap_alloc() and may have been freed.
      For initializing clust_offsets, try to use the stack-allocated
      buffer instead of a pointer that may point to freed memory.
      
      This fixes a regression that was introduced in
      commit f0aa073f (MDEV-20950).
      f35d1721
    • Nikita Malyavin's avatar
      MDEV-18042 Server crashes upon adding a non-null date column under... · fd0abc89
      Nikita Malyavin authored
      MDEV-18042 Server crashes upon adding a non-null date column under NO_ZERO_DATE with ALGORITHM=INPLACE
      
      accept table_name and db_name instead of table_share in make_truncated_value_warning
      fd0abc89
    • Nikita Malyavin's avatar
      MDEV-19338 InnoDB: Failing assertion: !cursor->index->is_committed() · 91ebf184
      Nikita Malyavin authored
      Call mark_columns_per_binlog_row_image before find_row() to set up table->vcol_set early,
      so the virtual column value will be updated after record read (ha_rnd_pos/ha_index_next/etc)
      by table->update_virtual_fields() call
      91ebf184
  3. 30 Jul, 2020 5 commits
  4. 29 Jul, 2020 9 commits
  5. 28 Jul, 2020 8 commits
  6. 27 Jul, 2020 9 commits
    • Daniel Black's avatar
      MDEV-17076: mtr int options aren't negative · beec8404
      Daniel Black authored
      beec8404
    • Daniel Black's avatar
      MDEV-17076: mtr max-{core,datadir} 0 means 0 · 99af3cbc
      Daniel Black authored
      There was no ability to set the mtr arguments of:
      * --max-save-core; and
      * --max-save-datadir
      
      to 0. This is desireable in an automatied scenario where space
      is limited hence targeting 10.1 branch.
      
      We take away the 0 means unlimited aspect for these,
      however, perl can handle some big numbers so they may as well be
      close enough to unlimited for all meaningful purposes.
      99af3cbc
    • Teodor Mircea Ionita's avatar
      1ce97358
    • Daniel Black's avatar
      MDEV-12474: rocksdb: mtr - rocksdb.concurrent_alter use sh · 186d9d0d
      Daniel Black authored
      FreeBSD doesn't have bash installed by default and sh
      has sufficient job control for this test.
      
      $  mysql-test/mtr --mem --max-test-fail=30 --force --parallel=1 rocksdb.concurrent_alter
      Logging: /home/dan/mariadb-server-10.5/mysql-test/mysql-test-run.pl  --mem --max-test-fail=30 --force --parallel=1 rocksdb.concurrent_alter
      vardir: /usr/home/dan/build-mariadb-server-10.5/mysql-test/var
      Checking leftover processes...
      Removing old var directory...
      Creating var directory '/usr/home/dan/build-mariadb-server-10.5/mysql-test/var'...
       - symlinking 'var' to '/tmp/var_auto_P81m'
      Checking supported features...
      MariaDB Version 10.5.4-MariaDB
       - SSL connections supported
      
       - binaries built with wsrep patch
      Collecting tests...
      Installing system database...
      
      ==============================================================================
      
      TEST                                      RESULT   TIME (ms) or COMMENT
      --------------------------------------------------------------------------
      
      worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
      rocksdb.concurrent_alter 'write_committed' [ pass ]  16348
      rocksdb.concurrent_alter 'write_prepared' [ pass ]  16771
      --------------------------------------------------------------------------
      The servers were restarted 1 times
      Spent 33.119 of 41 seconds executing testcases
      
      Completed: All 2 tests were successful.
      
      $ uname -a
      FreeBSD freebsd 12.1-RELEASE-p6 FreeBSD 12.1-RELEASE-p6 GENERIC  amd64
      186d9d0d
    • Daniel Black's avatar
      MDEV-23088: Change LimitNOFILE default from 16364 to 16384 · c81a2d23
      Daniel Black authored
      Correct to a true 2^14 rather than some different number that
      was actually just a number typo.
      
      Bug report thanks to Hartmut Holzgraefe.
      c81a2d23
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-23233: Race condition for btr_search_drop_page_hash_index() in buf_page_create() · a1f899a8
      Thirunarayanan Balathandayuthapani authored
      commit ad6171b9 (MDEV-22456)
      introduced code to buf_page_create() that would lazily drop
      adaptive hash index entries for an index that has been
      evicted from the data dictionary cache.
      
      Unfortunately, that call was missing adequate protection.
      While the btr_search_drop_page_hash_index(block) was executing,
      the block could be reused for something else.
      
      buf_page_create(): If btr_search_drop_page_hash_index() must be
      invoked, pin the block before releasing the buf_pool->page_hash lock,
      so that the block cannot be grabbed by other threads.
      a1f899a8
    • Jan Lindström's avatar
      Enable fixed test case. · b4c74210
      Jan Lindström authored
      b4c74210
    • Varun Gupta's avatar
      MDEV-18916: crash in Window_spec::print_partition() with decimals · a6410deb
      Varun Gupta authored
      Removed an unnecessary ifndef which was printing the window name for a named
      window only in the case of debug build. The print() for the window function
      should behave in the same way on both release and debug builds.
      a6410deb
    • Alexander Barkov's avatar
      MDEV-23282 FLOAT(53,0) badly handles out-of-range values · 29851b67
      Alexander Barkov authored
      truncate_double() did not take into account the max_value
      limit in case when dec<NOT_FIXED_DEC.
      29851b67
  7. 25 Jul, 2020 1 commit
  8. 24 Jul, 2020 1 commit
    • Sergei Petrunia's avatar
      MDEV-23221: A subquery causes crash · b000d695
      Sergei Petrunia authored
      * Fix the crash: IN-to-EXISTS rewrite causes an error (and so
        JOIN::optimize() fails with an error, too), don't call
        update_used_tables(). Terminate the query execution instead.
      
      * Fix the cause of the error in the IN-to-EXISTS rewrite: don't do
        the rewrite if doing it will cause an error of this kind:
        This version of MariaDB doesn't yet support 'SUBQUERY in ROW in left
        expression of IN/ALL/ANY'
      
      * Fix another issue exposed by this testcase:
        JOIN::setup_subquery_caches() may be invoked before any select has
        saved its query plan, and will crash because none of the SELECTs
        has called create_explain_query_if_not_exists() to create the Explain
        Data Structure for this SELECT.
      
      TODO: When merging this to 10.2, remove the poorly-placed call to
      create_explain_query_if_not_exists made by fix for M_D_E_V-16153
      b000d695