1. 20 Aug, 2014 1 commit
  2. 19 Aug, 2014 1 commit
    • Kristian Nielsen's avatar
      MDEV-6321: close_temporary_tables() in format description event not serialised correctly · 453c29c3
      Kristian Nielsen authored
      Follow-up patch, fixing a possible deadlock issue.
      
      If the master crashes in the middle of an event group, there can be an active
      transaction in a worker thread when we encounter the following master restart
      format description event. In this case, we need to notify that worker thread
      to abort and roll back the partial event group. Otherwise a deadlock occurs:
      the worker thread waits for the commit that never arrives, and the SQL driver
      thread waits for the worker thread to complete its event group, which it never
      does.
      453c29c3
  3. 02 Jul, 2014 1 commit
    • Kristian Nielsen's avatar
      MDEV-6321: close_temporary_tables() in format description event not serialised correctly · 4cb1e0ee
      Kristian Nielsen authored
      When a master server starts up, it logs a special format_description event at
      the start of a new binlog to mark that is has restarted. This is used by a
      slave to drop all temporary tables - this is needed in case the master crashed
      and did not have a chance to send explicit DROP TEMPORARY TABLE statements to
      the slave.
      
      In parallel replication, we need to be careful when dropping the temporary
      tables - we need to be sure that no prior events are still executing that
      might be using the temporary tables to be dropped, _and_ that no following
      events have started executing that might have created new temporary tables
      that should not be dropped.
      
      This was not handled correctly, which could cause errors about access to not
      existing temporary tables or even crashes. This patch implements that such
      format_description events cause serialisation of event execution; all prior
      events are executed to completion first, then the format_description event is
      executed, dropping temporary tables, then following events are queued for
      execution.
      
      Master restarts should be sufficiently infrequent that the resulting loss of
      parallelism should be of minimal impact.
      4cb1e0ee
  4. 19 Aug, 2014 2 commits
    • Michael Widenius's avatar
      Automatic merge from 5.5 · bd2117d1
      Michael Widenius authored
      Fixed 2 failing tests by replacing result files
      bd2117d1
    • Michael Widenius's avatar
      MDEV-6450 - MariaDB crash on Power8 when built with advance tool chain · 5569132f
      Michael Widenius authored
      Part of this work is based on Stewart Smitch's memory barrier and lower priori
      patches for power8.
      
      - Added memory syncronization for innodb & xtradb for power8.
      - Added HAVE_WINDOWS_MM_FENCE to CMakeList.txt
      - Added os_isync to fix a syncronization problem on power
      - Added log_get_lsn_nowait which is now used srv_error_monitor_thread to ensur
        if log mutex is locked.
      
      All changes done both for InnoDB and Xtradb
      5569132f
  5. 15 Aug, 2014 1 commit
    • Kristian Nielsen's avatar
      MDEV-6551: Some replication errors are ignored if slave_parallel_threads > 0 · cfa1ce81
      Kristian Nielsen authored
      The problem occured when using parallel replication, and an error occured that
      caused the SQL thread to stop when the IO thread had already reached a
      following binlog file from the master (or otherwise performed a relay log
      rotation).
      
      In this case, the Rotate Event at the end of the relay log file could still be
      executed, even though an earlier event in that relay log file had gotten an
      error. This would cause the position to be incorrectly updated, so that upon
      restart of the SQL thread, the event that had failed would be silently skipped
      and ignored, causing replication corruption.
      
      Fixed by checking before executing Rotate Event, whether an earlier event
      has failed. If so, the Rotate Event is not executed, just dequeued, same as
      for other normal events following a failing event.
      cfa1ce81
  6. 14 Aug, 2014 2 commits
    • Michael Widenius's avatar
      If one uses 3 --verbose options to mysql_upgrade or mysqlcheck one will now... · 65ac881c
      Michael Widenius authored
      If one uses 3 --verbose options to mysql_upgrade or mysqlcheck one will now get on stdout all ALTER, RENAME and CHECK commands that mysqlcheck executes.
      If one uses 4 --verbose to mysql_upgrade it will also write out all mysqlcheck commands invoked.
      
      
      mysql-test/r/mysql_upgrade.result:
        Updated results from changing phases
      mysql-test/r/mysql_upgrade_no_innodb.result:
        dated results from changing phases
      mysql-test/r/mysql_upgrade_ssl.result:
        dated results from changing phases
      65ac881c
    • Michael Widenius's avatar
      Added Innobase .ic and errmsg-utf8.txt to tagged files · 258ecf55
      Michael Widenius authored
      Fixed compiler warning
      
      storage/connect/tabdos.cpp:
        Fixed compiler warning
      support-files/build-tags:
        Added Innobase .ic and errmsg-utf8.txt to tagged files
        Speed up script
      258ecf55
  7. 13 Aug, 2014 4 commits
    • Kristian Nielsen's avatar
      Change a couple of permissions that cause lintian warnings in .deb packaging... · f2cbca79
      Kristian Nielsen authored
      Change a couple of permissions that cause lintian warnings in .deb packaging and don't really hurt to fix.
      f2cbca79
    • Kristian Nielsen's avatar
      MDEV-6549, failing to update gtid_slave_pos for a transaction that was retried. · ec05fea0
      Kristian Nielsen authored
      The bug was that in some cases, if a replicated transaction was rolled back
      due to deadlock, during the subsequent retry of that transaction, the
      gtid_slave_pos would _not_ be updated with the new GTID, leaving the GTID
      position of the slave incorrect.
      
      Fix this by ensuring during the retry that we clear the flag that marks that
      the GTID has already been recorded in gtid_slave_pos, so that the update of
      gtid_slave_pos will be done again during the retry.
      
      In the original bug, the symptom was an assertion due to OPTION_GTID_BEGIN not
      being cleared during the retry of the transaction. The reason was some code in
      handling of a COMMIT query event, which would not clear the flag when not
      recording a GTID in gtid_slave_pos. This commit also fixes that code to always
      clear the OPTION_GTID_BEGIN flag for clarity, though it is actually not
      possible for OPTION_GTID_BEGIN to become set unless a GTID is pending for
      update (after fixing the bug described above).
      ec05fea0
    • Jan Lindström's avatar
      MDEV-6546: innodb.innodb_simulate_comp_failures_small fails · 9dc738bf
      Jan Lindström authored
      sporadically
      
      Fix: Modify test to be smaller so that testcase timeout does not
      trigger. We already have a test for --big-test setup
      (innodb.innodb_simulate_comp_failures).
      9dc738bf
    • Jan Lindström's avatar
      MDEV-6546: innodb.innodb_simulate_comp_failures_small fails · 354f3f1f
      Jan Lindström authored
      sporadically
      
      Fix: Modify test to be smaller so that testcase timeout does not
      trigger. We already have a test for --big-test setup 
      (innodb.innodb_simulate_comp_failures).
      354f3f1f
  8. 12 Aug, 2014 4 commits
  9. 11 Aug, 2014 1 commit
  10. 08 Aug, 2014 3 commits
  11. 07 Aug, 2014 7 commits
    • Sergei Golubchik's avatar
      merge · ffd9c77e
      Sergei Golubchik authored
      ffd9c77e
    • Sergei Golubchik's avatar
      crash in main.views (and other view + PS tests) · e19b07e6
      Sergei Golubchik authored
      When a view is merged, mark its select_lex as already optimized, otherwise
      its where clause (which doesn't have to be a valid Item after merging)
      might be accessed later. But don't do that for inserts (where a view cannot
      be simply merged, if one later needs to insert into it).
      e19b07e6
    • Olivier Bertrand's avatar
      - Commiting merge files · f835588c
      Olivier Bertrand authored
      f835588c
    • Sergei Golubchik's avatar
    • Sergei Golubchik's avatar
      5.5.39 merge · 6fb17a06
      Sergei Golubchik authored
      6fb17a06
    • Olivier Bertrand's avatar
      This is a major update that fixes most of the issues and bugs that · 0219ac1e
      Olivier Bertrand authored
      have been created by the last addition of new CONNECT features.
      The version previous to this one is a preliminary test version and
      should not be distributed.
      
      - Handle indexed UPDATE/DELETE. Previously this was just tested and
        an error message send when it could not be done. Now CONNECT can
        do it in all the cases. It is done by a MRR like tchnique by making
        a list of all update or delete to do, sort them, then execute them.
      modified:
        storage/connect/array.cpp
        storage/connect/array.h
        storage/connect/filamap.cpp
        storage/connect/filamap.h
        storage/connect/filamdbf.cpp
        storage/connect/filamfix.cpp
        storage/connect/filamfix.h
        storage/connect/filamtxt.cpp
        storage/connect/filamtxt.h
        storage/connect/filamvct.cpp
        storage/connect/filamvct.h
        storage/connect/filamzip.cpp
        storage/connect/filamzip.h
        storage/connect/global.h
        storage/connect/ha_connect.cc
        storage/connect/ha_connect.h
      
      - Differenciate Cardinality that returns a true or estimated table size
        and GetMaxSize that return a value equal or greater than the table
        row number. This fixes the errors of non matching opt files.
      modified:
        storage/connect/connect.cc
        storage/connect/tabdos.cpp
        storage/connect/tabdos.h
        storage/connect/tabfix.cpp
        storage/connect/table.cpp
        storage/connect/tabmac.h
        storage/connect/tabmysql.cpp
        storage/connect/tabmysql.h
        storage/connect/tabodbc.cpp
        storage/connect/tabodbc.h
        storage/connect/tabpivot.h
        storage/connect/tabtbl.cpp
        storage/connect/tabtbl.h
        storage/connect/tabutil.cpp
        storage/connect/tabutil.h
        storage/connect/tabwmi.h
        storage/connect/xtable.h
      
      - Fix some errors and issues when making index and opt files.
        Erase opt and index files for void tables.
        Fix wrong calculation of Block and Last in MakeBlockValues.
        Invalidate indexes before making opt file.
        Fully handle blocked variable tables. Make opt file for blocked
        variable tables even when they have no optimised colums.
      modified:
        storage/connect/tabdos.cpp
        storage/connect/xindex.h
      
      - Fix some errors making index
        Return an error when the allocation is too small (should not
        really occur now that GetMaxSize is sure)
        Don't use XXROW index for DBF tables because of soft deleted lines.
      modified:
        storage/connect/xindex.cpp
      
      - Typo
      modified:
        storage/connect/macutil.cpp
        storage/connect/tabdos.h
        storage/connect/tabsys.cpp
        storage/connect/tabsys.h
      0219ac1e
    • Nirbhay Choubey's avatar
      8035c986
  12. 06 Aug, 2014 13 commits