1. 08 Jan, 2018 4 commits
  2. 05 Jan, 2018 2 commits
    • Vladislav Vaintroub's avatar
      Fix conf_to_src build. · 3a22d6c1
      Vladislav Vaintroub authored
      2cd31691 broke conf_to_src,
      because strings library is now dependend on mysys (my_alloc etc are used
      now directly in string lib)
      
      Fix by adding appropriate dependency.
      
      Also exclude conf_to_src from VS IDE builds. EXCLUDE_FROM_ALL
      is not enough for that.
      3a22d6c1
    • Aleksey Midenkov's avatar
      Tests: detect table count for some encryption tests · d9e0c06b
      Aleksey Midenkov authored
      debug_key_management
      encrypt_and_grep
      innodb_encryption
      
      If real table count is different from what is expected by the test, it
      just hangs on waiting to fulfill hardcoded number. And then exits with
      **failed** after 10 minutes of wait: quite unfriendly and hard to
      figure out what's going on.
      d9e0c06b
  3. 04 Jan, 2018 2 commits
  4. 03 Jan, 2018 3 commits
  5. 02 Jan, 2018 4 commits
  6. 28 Dec, 2017 2 commits
  7. 27 Dec, 2017 3 commits
  8. 25 Dec, 2017 4 commits
    • Sergei Golubchik's avatar
      MDEV-14026 ALTER TABLE ... DELAY_KEY_WRITE=1 creates table copy for... · 5377242f
      Sergei Golubchik authored
      MDEV-14026 ALTER TABLE ... DELAY_KEY_WRITE=1 creates table copy for partitioned MyISAM table with DATA DIRECTORY/INDEX DIRECTORY options
      
      set data_file_name and index_file_name in HA_CREATE_INFO
      before calling check_if_incompatible_data()
      5377242f
    • Sergei Golubchik's avatar
      6d8b1bd6
    • Sergei Golubchik's avatar
      cleanup: ha_myisam::data_file_name and index_file_name · c881d82c
      Sergei Golubchik authored
      don't allocate them on THD::mem_root on every init(HA_STATUS_CONST) call,
      do it once in open() (because they don't change) on TABLE::mem_root
      (so they stay valid until the table is closed)
      c881d82c
    • Sachin Setiya's avatar
      MDEV-10715 Galera: Replicate MariaDB GTID to other nodes in the cluster · 2fe61861
      Sachin Setiya authored
      Problem:- Gtid are not transferred in Galera Cluster.
      
      Solution:- We need to transfer gtid in the case on either when cluster is
      slave/master in async replication. In normal Gtid replication gtid are generated on
      recieving node itself and it is always on sync with other nodes. Because galera keeps
      node in sync , So all nodes get same no of event groups. So the issue arises when
      say galera is slave in async replication.
      A
      |    (Async replication)
      D <-> E <-> F  {Galera replication}
      So what should happen is that all node should apply the master gtid but this does
      node happen, becuase node E, F does not recieve gtid from D in write set , So what E(or F)
      does is that it applies wsrep_gtid_domain_id, D server-id , E gtid next seq no. This
      generated gtid does not always work when say A has different domain id.
      
      So In this commit, on galera node when we see that this event is recieved from master
      we simply write Gtid_Log_Event in write_set and send it to other nodes.
      2fe61861
  9. 22 Dec, 2017 2 commits
  10. 21 Dec, 2017 6 commits
    • Vicențiu Ciorbaru's avatar
      Follow up to MDEV-12366: FLUSH privileges can break hierarchy of roles · 24efee91
      Vicențiu Ciorbaru authored
      A suggestion to make role propagation simpler from serg@mariadb.org.
      
      Instead of gathering the leaf roles in an array, which for very wide
      graphs could potentially mean a big part of the whole roles schema, keep
      the previous logic. When finally merging a role, set its counter
      to something positive.
      
      This will effectively mean that a role has been merged, thus a random pass
      through roles hash that touches a previously merged role won't cause the problem
      described in MDEV-12366 any more, as propagate_role_grants_action will stop
      attempting to merge from that role.
      24efee91
    • Marko Mäkelä's avatar
      Make a test more robust · 461cf3e5
      Marko Mäkelä authored
      Sometimes, the test would fail with a result difference for
      the READ UNCOMMITTED read, because the incremental backup
      would finish before redo log was written for all the rows
      that were inserted in the second batch.
      
      To fix that, cause a redo log write by creating another
      transaction. The transaction rollback (which internally does commit)
      will be flushed to the redo log, and before that, all the preceding
      changes will be flushed to the redo log as well.
      461cf3e5
    • Marko Mäkelä's avatar
      Merge 10.0 into 10.1 · 9d7c0882
      Marko Mäkelä authored
      9d7c0882
    • Marko Mäkelä's avatar
      MDEV-12827 Assertion failure when reporting duplicate key error in online table rebuild · 0202e472
      Marko Mäkelä authored
      row_log_table_apply_insert_low(), row_log_table_apply_update():
      When reporting the error_key_num, only count the clustered index
      if it corresponds to a key in the SQL layer.
      
      The assertion failure was probably introduced by the (incomplete)
      MySQL 5.6.28 bug fix
      Bug #21364096 THE BOGUS DUPLICATE KEY ERROR IN ONLINE DDL
      WITH INCORRECT KEY NAME
      which we are improving.
      
      Side note: the fix was incorrectly merged to MySQL 5.7.10;
      incorrect key names will continue to be reported in MySQL 5.7.
      0202e472
    • Marko Mäkelä's avatar
      MDEV-6247 post-fix: Re-enable some debug assertions · 1cf28964
      Marko Mäkelä authored
      These assertions were disabled in MariaDB 10.1.1 in
      commit df4dd593
      with a bogus comment referring to the function wsrep_fake_trx_id()
      that was introduced in the very same commit.
      1cf28964
    • Elena Stepanova's avatar
      5f896b36
  11. 20 Dec, 2017 8 commits
    • Sachin Setiya's avatar
      MDEV-13478 Full SST sync fails because of the error in the cleaning part · 2a4faa8a
      Sachin Setiya authored
      Problem:
       The command was:
          find $paths -mindepth 1 -regex $cpat -prune -o -exec rm -rf {} \+
       Which was supposed to work as
          * skipping $paths directories themselves (-mindepth 1)
          * see if the dir/file name matches $cpat (-regex)
          * if yes - don't dive into the directory, skip it (-prune)
          * otherwise (-o)
          * remove it and everything inside (-exec)
       Now -exec ... \+ works like this:
          every new found path is appended to the end of the command line.
          when accumulated command line length reaches `getconf ARG_MAX` (~2Gb)
          it's executed, and find continues, appending to a new command line.
      
       What happens here, find appends some directory to the command line,
       then dives into it, and starts appending files from that directory.
       At some point command line overflows, rm -rf gets executed and removes
       the whole directory. Now find tries to continue scanning the directory
       that was already removed.
      
      Fix: don't dive into directories that will be recursively removed
      anyway, use -prune for them. Basically, we should be pruning both paths
      that have matched $cpat and paths that have not matched it. This is
      achived by pruning unconditionally, before the regex is tested:
          find $paths -mindepth 1 -prune -regex $cpat -o -exec rm -rf {} \+
      
      Patch Credit:- Serg
      2a4faa8a
    • Vicențiu Ciorbaru's avatar
    • Vicențiu Ciorbaru's avatar
      Merge branch '10.0' into 10.1 · e3d89652
      Vicențiu Ciorbaru authored
      e3d89652
    • Christian Hesse's avatar
      Generate and install sysusers and tmpfiles configuration · 7bbc6c14
      Christian Hesse authored
      Using systemd we can automate creating users and directories. So
      generate and install the configuration files.
      Signed-off-by: default avatarVicențiu Ciorbaru <vicentiu@mariadb.org>
      
      Small change in cmake/install_layout.cmake compared to original contributor
      patch to also install SYSTEMD_SYSUSERS and SYSTEMD_TMPFILES directories. The
      variables were being set, but the loop which defines the final install files
      was not updated.
      7bbc6c14
    • Vicențiu Ciorbaru's avatar
      042f7632
    • Varun Gupta's avatar
      MDEV-12350: Heap corruption, overrun buffer, ASAN errors, server crash in my_fill_8bit / filesort · 924db8b4
      Varun Gupta authored
      In the function make_sortkey a tmp buffer was defined and in the absence of
      param->tmp_buffer, tmp buffer used the sort_keys buffer. sort_keys buffer
      has a length defined in sort_field->length, while param->tmp_buffer is
      stored in param->rec_length. Make sure to use the appropriate length
      based on which buffer we are using otherwise we'll overflow.
      
      Also added a type cast to size_t during the calculation of the sort keys
      buffer size to avoid an oveflow if the buffer size exceeds 32 bits.
      924db8b4
    • Alexander Barkov's avatar
      An after-fix for MDEV-14008 Assertion failing: `!is_set() || (m_status ==... · cb121a04
      Alexander Barkov authored
      An after-fix for MDEV-14008 Assertion failing: `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())
      
      Fixing an additional failure discovered after a merge to 10.2
      cb121a04
    • Alexander Barkov's avatar
      c58df0cd