1. 19 Mar, 2021 3 commits
  2. 18 Mar, 2021 14 commits
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 190a8312
      Marko Mäkelä authored
      190a8312
    • Marko Mäkelä's avatar
      MDEV-25121: innodb_flush_method=O_DIRECT fails on compressed tables · 12672542
      Marko Mäkelä authored
      Tests with 4096-byte sector size confirm that it is
      safe to use O_DIRECT with page_compressed tables.
      That had been disabled on Linux, in an attempt to fix MDEV-21584
      which had been filed for the O_DIRECT problems earlier.
      
      The fil_node_t::block_size was being set mostly correctly until
      commit 10dd290b (MDEV-17380)
      introduced a regression in MariaDB Server 10.4.4.
      
      fil_node_open_file(): Only avoid setting O_DIRECT on
      ROW_FORMAT=COMPRESSED tables that use KEY_BLOCK_SIZE=1 or 2
      (1024 or 2048 bytes).
      
      fil_ibd_create(): Avoid setting O_DIRECT on ROW_FORMAT=COMPRESSED tables
      that use KEY_BLOCK_SIZE=1 or 2 (1024 or 2048 bytes).
      
      fil_node_t::find_metadata(): Require fstat() to be always invoked
      outside Microsoft Windows, so that fil_node_t::block_size can be set.
      
      fil_node_t::read_page0(): Rely on find_metadata() to assign block_size.
      
      Thanks to Vladislav Vaintroub for testing this on Microsoft Windows
      using an old-fashioned rotational hard disk with 4KiB sector size.
      
      Reviewed by: Vladislav Vaintroub
      
      This is a port of commit 00f620b2
      and commit 6505662c from 10.2.
      12672542
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 39c015b7
      Marko Mäkelä authored
      39c015b7
    • Marko Mäkelä's avatar
      MDEV-25125 Assertion failure in fetch_data_into_cache_low() · 867724fd
      Marko Mäkelä authored
      Before MDEV-14638, there was no race condition between the
      execution of fetch_data_into_cache() and transaction commit.
      
      fetch_data_into_cache(): Acquire trx_t::mutex before checking
      trx_t::state, to prevent a concurrent transition from
      TRX_STATE_COMMITTED_IN_MEMORY to TRX_STATE_NOT_STARTED
      in trx_commit_in_memory().
      867724fd
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 19052b6d
      Marko Mäkelä authored
      19052b6d
    • Marko Mäkelä's avatar
      MDEV-10682 Race condition between ANALYZE and STATS_AUTO_RECALC · c557e954
      Marko Mäkelä authored
      ha_innobase::info_low(): While collecting statistics for
      ANALYZE TABLE, ensure that dict_stats_process_entry_from_recalc_pool()
      is not executing on the same table.
      
      We observed result differences for the test innodb.innodb_stats because
      dict_stats_empty_index() was being invoked by the background statistics
      calculation while ha_innobase::analyze() was executing
      dict_stats_analyze_index_level().
      c557e954
    • Marko Mäkelä's avatar
      MDEV-25121: innodb_flush_method=O_DIRECT fails on compressed tables · 6505662c
      Marko Mäkelä authored
      Tests with 4096-byte sector size confirm that it is
      safe to use O_DIRECT with page_compressed tables.
      That had been disabled on Linux, in an attempt to fix MDEV-21584
      which had been filed for the O_DIRECT problems earlier.
      
      The fil_node_t::block_size was being set mostly correctly until
      commit 10dd290b (MDEV-17380)
      introduced a regression in MariaDB Server 10.4.4.
      
      fil_node_t::read_page0(): Initialize fil_node_t::block_size.
      This will probably make similar code in fil_space_extend_must_retry()
      redundant, but we play it safe and will not remove that code.
      
      Thanks to Vladislav Vaintroub for testing this on Microsoft Windows
      using an old-fashioned rotational hard disk with 4KiB sector size.
      
      Reviewed by: Vladislav Vaintroub
      6505662c
    • Vladislav Vaintroub's avatar
      MDEV-21584 - portability fix · 00f620b2
      Vladislav Vaintroub authored
      This patch implements OS_DATA_FILE_NO_O_DIRECT on Windows.
      00f620b2
    • Marko Mäkelä's avatar
      Cleanup: Remove unused OS_DATA_TEMP_FILE · 14a8b700
      Marko Mäkelä authored
      This had been originally added in
      mysql/mysql-server@192bb153b675fe09037a53e456a79eee7211e3a7
      with the motivation to disable O_DIRECT for the dedicated tablespace
      for temporary tables. In MariaDB Server,
      commit 5eb53955 (MDEV-12227)
      should be a better solution.
      
      The code became orphaned later in
      mysql/mysql-server@c61244c0e6c58727cffebfb312ac415a463fa0fe
      and it had been applied to MariaDB Server 10.2.2 in
      commit 2e814d47 and
      commit fec844ac.
      
      Thanks to Vladislav Vaintroub for spotting this.
      14a8b700
    • Jan Lindström's avatar
      MDEV-24916 : Assertion `current_stmt_binlog_format == BINLOG_FORMAT_STMT ||... · c9ba6689
      Jan Lindström authored
      MDEV-24916 : Assertion `current_stmt_binlog_format == BINLOG_FORMAT_STMT || current_stmt_binlog_format == BINLOG_FORMAT_ROW' failed in THD::is_current_stmt_binlog_format_row
      
      Store old value of binlog format before wsrep code so that
      if we bail out because wsrep is not ready for connections
      we can restore binlog format correctly.
      c9ba6689
    • Jan Lindström's avatar
      MDEV-18874 : Galera test MW-286 causes Mutex = TTASEventMutex<GenericPolicy>]:... · f4e14f0e
      Jan Lindström authored
      MDEV-18874 : Galera test MW-286 causes Mutex = TTASEventMutex<GenericPolicy>]: Assertion `!is_owned()' failed. assertion
      
      MDEV-24649 galera.galera_bf_lock_wait MTR failed with sigabrt: Assertion `!is_ow
      ned()' failed in sync0policy.ic on MutexDebug with Mutex = TTASEventMutex<GenericPolicy>
      
      Bug was fixed as part of MDEV-23328, this just adds test cases to
      regression set.
      f4e14f0e
    • Daniel Black's avatar
      crc32c: Fix AIX compulation - ALIGN defined · 5dbea46c
      Daniel Black authored
      ALIGN was defined already:
      
      mysys/crc32/crc32c.cc:390: warning: "ALIGN" redefined
       #define ALIGN(n, m)     ((n + ((1 << m) - 1)) & ~((1 << m) - 1))
      
      In file included from /root/aix/build/include/my_global.h:543,
                       from /root/aix/build/mysys/crc32/crc32c.cc:22:
      /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/include-fixed/sys/socket.h:788: note: this is the location of the previous definition
       #define ALIGN(p)                (ulong)((caddr_t)(p) + MACHINE_ALIGNMENT - 1 - \
      5dbea46c
    • Etienne Guesnet's avatar
      CRC32 on AIX · 60d1461a
      Etienne Guesnet authored
      60d1461a
    • Daniel Black's avatar
      mariadb.pc: plugindir is used · 69740581
      Daniel Black authored
      As evidenced by converstation on Zulip,
      knowing where to install a plugin is important too.
      69740581
  3. 17 Mar, 2021 6 commits
  4. 16 Mar, 2021 3 commits
    • Anel Husakovic's avatar
      MDEV-24601: INFORMATION_SCHEMA doesn't differentiate between column and... · 825c0e2a
      Anel Husakovic authored
      MDEV-24601: INFORMATION_SCHEMA doesn't differentiate between column and table-level CHECK constraints
      
      - Reviewed by: wlad@mariadb.com
      825c0e2a
    • Jan Lindström's avatar
      MDEV-24916 : Assertion `current_stmt_binlog_format == BINLOG_FORMAT_STMT ||... · f4e4bff9
      Jan Lindström authored
      MDEV-24916 : Assertion `current_stmt_binlog_format == BINLOG_FORMAT_STMT || current_stmt_binlog_format == BINLOG_FORMAT_ROW' failed in THD::is_current_stmt_binlog_format_row
      
      Store old value of binlog format before wsrep code so that
      if we bail out because wsrep is not ready for connections
      we can restore binlog format correctly.
      f4e4bff9
    • Julius Goryavsky's avatar
      MDEV-21039: Server fails to start with unknown mysqld_safe options · bf303e82
      Julius Goryavsky authored
      Adding any unknown option to the "[mysqld_safe]" section makes
      mysqld impossible to start with mysqld_multi. For example, after
      adding the unknown option "numa_interleave" to the "[mysqld_safe]"
      section, mysqld_multi exits with the following diagnostics:
      
      [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--numa_interleave'
      
      To get rid of this behavior, this patch adds the passing of the default
      group suffix from mysqld_multi to the mysqld_safe side.
      bf303e82
  5. 15 Mar, 2021 4 commits
  6. 12 Mar, 2021 4 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-24730 Insert log operation fails after purge resets n_core_fields · eb7c5530
      Thirunarayanan Balathandayuthapani authored
      Online log for insert operation of redundant table fails with
      index->is_instant() assert. Purge can reset the n_core_fields when
      alter is waiting to upgrade MDL for commit phase of DDL. In the
      meantime, any insert DML tries to log the operation fails with
      index is not being instant.
      
      row_log_get_n_core_fields(): Get the n_core_fields of online log
      for the given index.
      
      rec_get_converted_size_comp_prefix_low(): Use n_core_fields of online
      log when InnoDB calculates the size of data tuple during redundant
      row format table rebuild.
      
      rec_convert_dtuple_to_rec_comp(): Use n_core_fields of online log
      when InnoDB does the conversion of data tuple to record during
      redudant row format table rebuild.
      
      - Adding the test case which has more than 129 instant columns.
      eb7c5530
    • Vladislav Vaintroub's avatar
      update libmariadb · ba7d86a6
      Vladislav Vaintroub authored
      ba7d86a6
    • Vladislav Vaintroub's avatar
      MDEV-25123 support MSVC ASAN · 031b3dfc
      Vladislav Vaintroub authored
      031b3dfc
    • Varun Gupta's avatar
      MDEV-24519: Server crashes in Charset::set_charset upon SELECT · 390de205
      Varun Gupta authored
      The query causing the issue here has implicit grouping for we
      have to produce one row with special values for the aggregates
      (depending on each aggregate function), and NULL values for all
      non-aggregate fields.
      
      The subselect item where implicit grouping was being done,
      null_value for the subselect item was not being set for
      the case when the implicit grouping produces NULL values
      for the items in the select list of the subquery.
      This which was leading to the crash.
      
      The fix would be to set the null_value when all the values
      for the row column have NULL values.
      
      Further changes are
      
      1) etting null_value for Item_singlerow_subselect only
         after val_* functions have been called.
      2) Introduced a parameter null_value_inside to Item_cache that
         would store be set to TRUE if any of the arguments of the
         Item_cache are null.
      
      Reviewed And co-authored by Monty
      390de205
  7. 11 Mar, 2021 6 commits