1. 19 Mar, 2019 1 commit
  2. 18 Mar, 2019 1 commit
    • Marko Mäkelä's avatar
      MDEV-18946 munmap of 1 byte during shutdown is EINVAL · 397b6b13
      Marko Mäkelä authored
      In MDEV-10814, a missing argument caused a later optional argument
      (bool true) to be treated as a size. The unmap of this memory occurs
      during shutdown and resizing innodb buffer pool. As a result the
      memory is lost but still allocated until shutdown is completed.
      397b6b13
  3. 17 Mar, 2019 4 commits
  4. 16 Mar, 2019 2 commits
    • Daniel Black's avatar
      MDEV-18946: innodb: {de|}allocate_large_{dodump|dontdump} added · a9056a2b
      Daniel Black authored
      In 1dc78d35a0beb9620bae1f4841cc07389b425707 the arguments
      to a deallocate_large(dontdump=true) was passed a wrong value.
      
      To avoid accidential calling large memory function that have
      DODUMP/DONTDUMP options and missing arguments, the functions
      have been given distinct names.
      a9056a2b
    • Daniel Black's avatar
      MDEV-18946: innodb: buffer_pool - unallocate large pages requires size · 8678a105
      Daniel Black authored
      MDEV-10814 introduce a bug where the size argument to
      deallocate_large was passed true, evaluating to 1, as the size.
      
      When this is passed to munmap this resulted in EINVAL and the
      page not being released. This only occured the buf_pool_free_instance
      when called on shutdown so no impact as the process termination
      correctly frees the memory.
      8678a105
  5. 15 Mar, 2019 7 commits
  6. 14 Mar, 2019 7 commits
    • Sergei Golubchik's avatar
      fix gcc 8 compiler warnings · 3d2d060b
      Sergei Golubchik authored
      There were two newly enabled warnings:
      1. cast for a function pointers. Affected sql_analyse.h, mi_write.c
         and ma_write.cc, mf_iocache-t.cc, mysqlbinlog.cc, encryption.cc, etc
      
      2. memcpy/memset of nontrivial structures. Fixed as:
      * the warning disabled for InnoDB
      * TABLE, TABLE_SHARE, and TABLE_LIST got a new method reset() which
        does the bzero(), which is safe for these classes, but any other
        bzero() will still cause a warning
      * Table_scope_and_contents_source_st uses `TABLE_LIST *` (trivial)
        instead of `SQL_I_List<TABLE_LIST>` (not trivial) so it's safe to
        bzero now.
      * added casts in debug_sync.cc and sql_select.cc (for JOIN)
      * move assignment method for MDL_request instead of memcpy()
      * PARTIAL_INDEX_INTERSECT_INFO::init() instead of bzero()
      * remove constructor from READ_RECORD() to make it trivial
      * replace some memcpy() with c++ copy assignments
      3d2d060b
    • Alexander Barkov's avatar
    • Monty's avatar
      Fixed bug in redo handling of batch insert in Aria · bb8c82c6
      Monty authored
      The symptom of the bug was that one got the following in
      the aria recovery log:
      "Table 'xxx', id 57, has create_rename_lsn (1,0x12dee) more recent than LOGREC_FILE_ID's LSN (1,0x12dc4), ignoring open request"
      
      After this all future redo entries was marked with
      "For table of short id 57, table skipped, so skipping record"
      
      Analyze:
      When ending batch insert, create_rename_lsn for the table
      is updated to signal that earlier redo entries for the
      table can't be applied. The problem was that future redo
      entries was also ignored as redo code assumed they where
      for the old table.
      
      Fixed by calling translog_dessign_id, which causes
      future redo entries to be seen as belonging to the
      updated table.
      bb8c82c6
    • Monty's avatar
      Fixed compiler warning in connect engine · f2f40a17
      Monty authored
      f2f40a17
    • Marko Mäkelä's avatar
      Datafile::validate_first_page(): Change some ERROR to Note · d3afdb1e
      Marko Mäkelä authored
      On startup, if the InnoDB doublewrite buffer can be used to
      recover a corrupted page, raising an ERROR about a recoverable
      error seems inappropriate. Issue Note instead, and adjust
      tests accordingly.
      
      Also, correctly validate the tablespace ID in the files.
      d3afdb1e
    • Alexander Barkov's avatar
      Tests for MDEV-18667 ASAN heap-use-after-free in make_date_time /... · 49c49e63
      Alexander Barkov authored
      Tests for MDEV-18667 ASAN heap-use-after-free in make_date_time / Arg_comparator::compare_string / Item_func_nullif::compare
      
      The patch for MDEV-14926 fixed MDEV-18667 as well. Adding tests only.
      49c49e63
    • Alexander Barkov's avatar
      MDEV-14926 AddressSanitizer: heap-use-after-free in make_date_time on weird... · cb66cdc6
      Alexander Barkov authored
      MDEV-14926 AddressSanitizer: heap-use-after-free in make_date_time on weird combination of functions
      cb66cdc6
  7. 13 Mar, 2019 8 commits
    • Anel Husakovic's avatar
      Ignore VScode workspace · 51e48b9f
      Anel Husakovic authored
      51e48b9f
    • Alexander Barkov's avatar
    • Marko Mäkelä's avatar
      Remove references to MySQL 5.7 native InnoDB partitioning · e63f6216
      Marko Mäkelä authored
      The native InnoDB partitioning was never enabled in MariaDB.
      Remove some declarations and comments referring to it.
      e63f6216
    • Marko Mäkelä's avatar
      MDEV-18836 ASAN: heap-use-after-free after TRUNCATE · 56304875
      Marko Mäkelä authored
      row_drop_tables_for_mysql_in_background(): Copy the table name
      before closing the table handle, to avoid heap-use-after-free if
      another thread succeeds in dropping the table before
      row_drop_table_for_mysql_in_background() completes the table name lookup.
      
      dict_mem_create_temporary_tablename(): With innodb_safe_truncate=ON
      (the default), generate a simple, unique, collision-free table name
      using only the id, no pseudorandom component. This is safe, because
      on startup, we will drop any #sql tables that might exist in InnoDB.
      This is a backport from 10.3. It should have been backported already
      as part of backporting MDEV-14717,MDEV-14585 which were prerequisites
      for the MDEV-13564 backup-friendly TRUNCATE TABLE.
      This seems to reduce the chance of table creation failures in
      ha_innobase::truncate().
      
      ha_innobase::truncate(): Do not invoke close(), but instead
      mimic it, so that we can restore to the original table handle
      in case opening the truncated copy of the table failed.
      56304875
    • Marko Mäkelä's avatar
      Add an end-of-tests marker to ease merges · ec24dd0b
      Marko Mäkelä authored
      ec24dd0b
    • Jan Lindström's avatar
      MDEV-14033: wsrep_on=off + binlog = mixed on MariaDB 10.2.9 · 691c3069
      Jan Lindström authored
      If wsrep provider (i.e. galera library) is defined but wsrep_on=OFF
      we should not force row binlog row format.
      691c3069
    • Jan Lindström's avatar
      MDEV-18577: Indexes problem on import dump SQL · d0ebb155
      Jan Lindström authored
      Problem was that we skipped background persistent statistics calculation
      on applier nodes if thread is marked as high priority (a.k.a BF).
      However, on applier nodes all DDL which is replicate will be executed
      as high priority i.e BF.
      
      Fixed by allowing background persistent statistics calculation on
      applier nodes even when thread is marked as BF. This could lead
      BF lock waits but for queries on that node needs that statistics.
      d0ebb155
    • Sergey Vojtovich's avatar
      MDEV-14984 - regression in connect performance · 20928e2e
      Sergey Vojtovich authored
      Removed redundant plugin_thdvar_cleanup() from end_connection(): called by
      THD::free_connection(), which always follows end_connection().
      
      Saves at least one lock(LOCK_plugin) and one
      rdlock(LOCK_system_variables_hash).
      
      Benchmarked on a 2socket/20core/40threads Broadwell system using sysbench
      connect brencmark @40 threads (with select 1 disabled).
      
      10.2 shows moderate improvement: 136219.93 -> 137766.31 CPS.
      10.3 is improvement is somewhat better: 93018.29 -> 101379.77 CPS.
      
      Also backported MyRocks memory leak fix from 10.4, which turned out to
      be unrelated.
      20928e2e
  8. 12 Mar, 2019 10 commits