1. 30 Aug, 2018 1 commit
    • Jacob Mathew's avatar
      MDEV-16889: Spider Crash mysqld got exception 0xc0000005 · 4885baf6
      Jacob Mathew authored
      The SELECT with the INNER JOIN is executed with one of the two tables being
      optimized as a constant table, which is pre-read.  Spider nevertheless attempts
      to push down the join to the data node.  The crash occurs because the constant
      table is excluded from the optimized query that Spider attempts to push down.
      
      In order for Spider to be able to push down a join, the following conditions
      need to be met:
      - All of the tables involved in the join need to be included in the optimized
        query that Spider pushes down.  When any of the tables involved in the join
        is a constant table, it is excluded from the optimized query that Spider
        attempts to push down.
      - All fields involved in the query need to be members of tables included in the
        optimized query.
      
      I fixed the problem by preventing Spider from pushing down queries that include
      a field that is not a member of a table included in the optimized query.  This
      solution fixes the reported problem and also fixes other potential problems.
      
      Author:
        Jacob Mathew.
      
      Reviewer:
        Kentoku Shiba.
      4885baf6
  2. 13 Aug, 2018 3 commits
  3. 12 Aug, 2018 15 commits
  4. 09 Aug, 2018 7 commits
  5. 07 Aug, 2018 4 commits
    • Sergei Golubchik's avatar
      MDEV-16906 No groups to be reported (check your GNRs) - mysqld_multi does not see instances · eabf5230
      Sergei Golubchik authored
      make mysqld_multi to use same rules for my.cnf directories
      that all other tools are using (see my_default.c).
      eabf5230
    • Sachin's avatar
      MDEV-15127 AddressSanitizer: stack-buffer-overflow in base_list::push_back .. · 482d4da0
      Sachin authored
      Problem:-
       If we try to run this query with -WITH_ASAN=ON compiled server
        CREATE TABLE t1 (i INT);
        SET debug_dbug="+d,test_completely_invisible,test_invisible_index";
        CREATE TABLE t2 LIKE t1;
      
       This will generate a stack buffer overflow error.
        ==8922==ERROR: AddressSanitizer: stack-buffer-overflow on address #ADDR
      Analyze:-
       Error is generated on this line
             if (((*last)=new list_node(info, &end_of_list)))
       So info is our Key*, &end_of_list is global variable and last == #ADDR
       So last is suspicious variable. And last is the variable present in alter_info
       ->key_list. Now the question is how this key_list->last gets wrong/
       different stack variable. In the backtrace,  we can see that key_list is
       generated in mysql_create_table_like_table by calling
       mysql_preapre_alter_table_function and dummy key_list is created by
       mysql_create_like_table. In the end on mysql_prepare_alter_table we call
         alter_info->key_list.swap(new_key_list);
       So there is two options either key_list is empty or not empty , IF it is not
       empty then there is no issues last ptr is replaced by thd->mem_root (allocated ptr)
       So problem arises when key_list is empty. It swaps the dummy last ptr by
       mysql_prepare_alter_table declared ptr. which is wrong.
      
      Solution:-
       We wont swap variable if list does not have any element.
      482d4da0
    • Sergei Golubchik's avatar
      Merge branch 'connect/10.2' into 10.2 · 26e2dd39
      Sergei Golubchik authored
      26e2dd39
    • Alexander Barkov's avatar
  6. 06 Aug, 2018 2 commits
    • Olivier Bertrand's avatar
      - Fix MDEV-16672 Connect: Warnings with 10.0 · 9644415f
      Olivier Bertrand authored
        filamtxt.cpp: DOSFAM::RenameTempFile: Change sprintf to snprintf.
        filamvct.cpp: VECFAM::RenameTempFile: Change sprintf to snprintf.
        javaconn.cpp:
          Add JAVAConn::GetUTFString function.
          Use it instead of env->GetStringUTFChars.
          Fix wrong identation.
        javaconn.h: Add GetUTFString declaration.
        jdbconn.cpp:
          Use GetUTFString function instead of env->GetStringUTFChars.
        jmgoconn.cpp:
          Use GetUTFString function instead of env->GetStringUTFChars.
          Fix wrong identation.
        jsonudf.cpp: change 139 to BMX line 4631.
        tabjmg.cpp:
          Add ReleaseStringUTF.
          Fix wrong identation.
        tabpivot.cpp: Fix wrong identation.
        tabutil.cpp: TDBPRX::GetSubTable: Change sprintf to snprintf.
        modified:   storage/connect/filamtxt.cpp
        modified:   storage/connect/filamvct.cpp
        modified:   storage/connect/javaconn.cpp
        modified:   storage/connect/javaconn.h
        modified:   storage/connect/jdbconn.cpp
        modified:   storage/connect/jmgoconn.cpp
        modified:   storage/connect/jsonudf.cpp
        modified:   storage/connect/tabjmg.cpp
        modified:   storage/connect/tabpivot.cpp
        modified:   storage/connect/tabutil.cpp
      
      - Fix MDEV-16895 CONNECT engine's get_error_message can cause buffer
                       overflow and server crash with long queries
        ha_connect_cc: Update version.
          get_error_message: Remove charset conversion.
        modified:   storage/connect/ha_connect.cc
      
      - Fix a server crash on inserting bigint to a JDBC table
        JDBConn::SetUUID:
          Suppress check on ctyp that causes a server crash because ctyp
          can be negative and this triggers an DEBUG_ASSERT on return.
        modified:   storage/connect/jdbconn.cpp
      
      - Update jdbc.result
        mysql-test/connect/r/jdbc.result: Recorded to reflect a message change.
        modified:   storage/connect/mysql-test/connect/r/jdbc.result
      9644415f
    • Alexey Botchkov's avatar
      MDEV-16750 JSON_SET mishandles unicode every second pair of arguments. · 4ddcb4eb
      Alexey Botchkov authored
      The charset of temporary storage (Item_func_json_insert::tmp_js)
        was not properly set.
      4ddcb4eb
  7. 05 Aug, 2018 2 commits
  8. 04 Aug, 2018 2 commits
  9. 03 Aug, 2018 4 commits