1. 20 Mar, 2018 7 commits
  2. 19 Mar, 2018 6 commits
    • Jacob Mathew's avatar
      MDEV-10991: Server crashes in spider_udf_direct_sql_create_conn - tests in... · 7cf2428d
      Jacob Mathew authored
      MDEV-10991: Server crashes in spider_udf_direct_sql_create_conn - tests in spider/oracle* suites crash the server
      
      The crash occurs due to code that is #ifdef'd out with HAVE_ORACLE_OCI that
      pertains to the use of Spider with an Oracle data tier. Enabling this code
      eliminates the crash.
      
      The reason that MariaDB needs to support Oracle storage at the data tier is
      to help customers migrate from Oracle. It is necessary to build Spider with
      the additional build flag -DHAVE_ORACLE_OCI, and install and start Oracle
      before running the Oracle test suite or any tests within it. Nevertheless,
      if Spider is built normally and Oracle has not been started, these tests
      should not cause the MariaDB server to crash. The bug fix replaces the
      crash with the following error:
        ERROR 12501 (HY000) at line 4: The connect info 'ORACLE' is invalid
      
      Author:
        Jacob Mathew.
      
      Reviewer:
        Kentoku Shiba.
      7cf2428d
    • Vicențiu Ciorbaru's avatar
      Merge branch '10.0-galera' into 10.1 · 24b35316
      Vicențiu Ciorbaru authored
      24b35316
    • Alexander Barkov's avatar
      MDEV-15005 ASAN: stack-buffer-overflow in my_strnncollsp_simple · f538a648
      Alexander Barkov authored
      cmp_item_sort_string::store_value() did not cache the string returned
      from item->val_str(), whose result can point to various private members
      such as Item_char_typecast::tmp_value.
      
      - cmp_item_sort_string::store_value() remembered the pointer returned
        from item->val_str() poiting to tmp_value into cmp_item_string::value_res.
      - Later, cmp_item_real::store_value() was called, which called
        Item_str_func::val_real(), which called Item_char_typecast::val_str(&tmp)
        using a local stack variable "String tmp". Item_char_typecast::tmp_value
        was overwritten and become a link to "tmp":
        tmp_value.Ptr freed its own buffer and set to point to the buffer
        owned by "tmp".
      - On return from Item_str_func::val_real(), "String tmp" was destructed,
        but "tmp_value" still pointed to the buffer owned by "tmp",
        So tmp_value.Ptr became invalid.
      - Then cmp_item_sort_string() passed cmp_item_string::value_res to sortcmp().
        At this point, value_res still pointed to an invalid value of
        Item_char_typecast::tmp_value.
      
      Fix:
      changing cmp_item_sort_string::store_value() to force copying
      to cmp_item_string::value if item->val_str(&value) returned
      a different pointer (instead of &value).
      f538a648
    • Jan Lindström's avatar
      MDEV-13549: Galera test failures · 31e2ab51
      Jan Lindström authored
      Fix test failure on galera_flush_local.
      31e2ab51
    • Jan Lindström's avatar
      MDEV-13549: Galera test failures · f46155a3
      Jan Lindström authored
      Fix test failure on galera_concurrent_ctas
      f46155a3
    • Jan Lindström's avatar
      MDEV-14875: galera_new_cluster crashes mysqld when existing server contains databases · e5e83249
      Jan Lindström authored
          Fortify wsrep_hton so that wsrep calls are not done to NULL-pointers.
      e5e83249
  3. 16 Mar, 2018 4 commits
  4. 15 Mar, 2018 16 commits
  5. 14 Mar, 2018 6 commits
  6. 13 Mar, 2018 1 commit
    • Daniele Sciascia's avatar
      MDEV-13549 Fix and re-enable MTR test galera.MW-366 · 9953588a
      Daniele Sciascia authored
      Test galera.MW-366 is not deterministic and depends on timing assumptions.
      The test occasionally fails after checking the number of 'system user'
      processes in processlist after changing the value of variable global
      wsrep_slave_threads, like this:
      ```
      SET GLOBAL wsrep_slave_threads = x;
      --sleep 0.5
      SELECT COUNT(*) = x FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user';
      ```
      
      The problem is that the number of slave threads is internally adjusted
      'asynchronously', and it may take some time to spawn/kill new threads,
      especially in a heavily loaded system.
      
      This patch removes the '--sleep 0.5' statements from the test and replaces
      those with appropriate wait conditions, like this:
      ```
      SET GLOBAL wsrep_slave_threads = x;
      let $wait_condition = SLECT COUNT(*) = x FROM ...;
      --source include/wait_condition.inc
      ```
      9953588a