1. 10 Oct, 2019 2 commits
    • Marko Mäkelä's avatar
      MDEV-19335 adjustment for innodb_checksum_algorithm=full_crc32 · 0f7732d1
      Marko Mäkelä authored
      When MDEV-12026 introduced innodb_checksum_algorithm=full_crc32 in
      MariaDB 10.4, it accidentally added a dependency on buf_page_t::encrypted.
      Now that the flag has been removed, we must adjust the page-read routine.
      
      buf_page_io_complete(): When the full_crc32 page checksum matches but the
      tablespace ID in the page does not match after decrypting, we should
      declare it a decryption failure and suppress the page dump output and
      any attempts to re-read the page.
      0f7732d1
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · c11e5cdd
      Marko Mäkelä authored
      c11e5cdd
  2. 09 Oct, 2019 13 commits
  3. 08 Oct, 2019 6 commits
    • Jan Lindström's avatar
      Fix test case wsrep.mdev_6832 we need to wait until wsrep_ready · 57b666b2
      Jan Lindström authored
      is ON before test can end.
      57b666b2
    • Marko Mäkelä's avatar
      MDEV-15528 preparation: Remove a constant parameter · 6bc75a42
      Marko Mäkelä authored
      fsp_free_seg_inode(): Remove the constant parameter log=true.
      Only fsp_free_page() could also be called with log=false.
      
      The dead code was introduced in
      commit 304ae942
      by me, and spotted by Thirunarayanan Balathandayuthapani.
      6bc75a42
    • Marko Mäkelä's avatar
      Merge 5.5 into 10.1 · d95f96ad
      Marko Mäkelä authored
      d95f96ad
    • Sachin Setiya's avatar
      MDEV-20574 Position of events reported by mysqlbinlog is wrong with encrypted... · 27664ef2
      Sachin Setiya authored
      MDEV-20574 Position of events reported by mysqlbinlog is wrong with encrypted binlogs, SHOW BINLOG EVENTS reports the correct one.
      
      Analysis
      
      Mysqlbinlog output for encrypted binary log
      #Q> insert into tab1 values (3,'row 003')
      #190912 17:36:35 server id 10221  end_log_pos 980 CRC32 0x53bcb3d3  Table_map: `test`.`tab1` mapped to number 19
      # at 940
      #190912 17:36:35 server id 10221  end_log_pos 1026 CRC32 0xf2ae5136     Write_rows: table id 19 flags: STMT_END_F
      
      Here we can see Table_map_log_event ends at 980 but Next event starts at 940.
      And the reason for that is we do not send START_ENCRYPTION_EVENT to the slave
      
      Solution:-
      Send Start_encryption_log_event as Ignorable_log_event to slave(mysqlbinlog),
      So that mysqlbinlog can update its log_pos.
      Since Slave can request multiple FORMAT_DESCRIPTION_EVENT while master does not
      have so We only update slave master pos when master actually have the
      FORMAT_DESCRIPTION_EVENT. Similar logic should be applied for START_ENCRYPTION_EVENT.
      
      Also added the test case when new server reads the data from old server which
      does not send START_ENCRYPTION_EVENT to slave.
      
      Master Slave Upgrade Scenario.
      When Slave is updated first, Slave will have extra logic of handling
      START_ENCRYPTION_EVENT But master willnot be sending START_ENCRYPTION_EVENT.
      So there will be no issue.
      When Master is updated first, It will send  START_ENCRYPTION_EVENT to
      slave , But slave will ignore this event in queue_event.
      27664ef2
    • sachin's avatar
      MDEV-16239 Many test in rpl suite fails · 1e0f09ca
      sachin authored
      Fix rpl_skip_error test.
        We cant reset Slave_skipped_errors(even with FLUSH STATUS), So instead
      of absolute slave_skipped_errors we look for delta of slave_skipped_errors
      Fix rpl.rpl_binlog_errors and binlog_encryption.rpl_binlog_errors
        We create the $load_file and $load_file2 but we never remove them.
      Fix rpl_000011.test
        Instead of real value use delta value , Since flush status wont flush
      LONGLONG variable.
      Fix rpl_row_find_row_debug
        Instead of searching whole log_error_ file we will use search_pattern_in_file
      which runs pattern search only on latest test run , instead of full file.
      Fix rpl_ip_mix rpl_ip_mix2
        We should call reset slave all because we also want to reset master_host
      otherwise show slave status wont be empty and making repeat N a failure.
      Fix rpl_rotate_logs
        First we have to remove master.info file (cleanup) and second we have to
      call reset slave all because if we do not call reset slave all then we wont
      read master.info file beacuse we already have master config in memory.
      And this makes start slave to pass , which shoud fail becuase its permision
      is 000
      Fix circular_serverid0 test
        The reason is that ++dbug_rows_event_count == 2 in queue_event does
      not take --repeat into account. So I have reseted the dbug_rows_event_count
      in if body.
      1e0f09ca
    • Sachin's avatar
      MDEV-20591 Wrong Number of rows in mysqlbinlog output · 01bf9f8c
      Sachin authored
      calc_field_event_length should accurately calculate the size of BLOB type
      fields, Instead of returning just the bytes taken by length it should return
      length bytes + actual length.
      01bf9f8c
  4. 07 Oct, 2019 3 commits
  5. 04 Oct, 2019 6 commits
  6. 03 Oct, 2019 2 commits
  7. 02 Oct, 2019 3 commits
  8. 01 Oct, 2019 5 commits
    • Vlad Lesin's avatar
      MDEV-20703: mariabackup creates binlog files in server binlog directory on --prepare --export step · edda2fd1
      Vlad Lesin authored
      When "--export" mariabackup option is used, mariabackup starts the server in
      bootstrap mode to generate *.cfg files for the certain innodb tables.
      The started instance of the server reads options from the file, pointed
      out in "--defaults-file" mariabackup option.
      
      If the server uses the same config file as mariabackup, and binlog is
      switched on in that config file, then "mariabackup --prepare --export"
      will create binary log files in the server's binary log directory, what
      can cause issues.
      
      The fix is to add "--skip-log-bin" in mysld options when the server is
      started to generate *.cfg files.
      edda2fd1
    • Jan Lindström's avatar
      97d82c34
    • seppo's avatar
      MDEV-20225 BF aborting SP execution (#1394) · c42c4233
      seppo authored
      * MDEV-20225 BF aborting SP execution
      
      When stored procedure execution was chosen as victim for a BF abort, the old implemnetationn called for rollback immediately
      when execution was inside SP isntruction. Technically this happened in wsrep_after_statement() call, which identified the
      need for a rollback.
      The problem was that MariaDB does not accept rollback (nor commit) inside sub statement, there are several asserts about it,
      checking for THD::in_sub_stmt.
      
      This patch contains a fix, which skips calling wsrep_after_statement() for SP execution, which is marked as BF must abort. Instead,
      we return error code to upper level, where rollback will eventually happen, ouside of SP execution.
      Also, appending the affected trigger table (dropped or created) in the populated key set for the write set,
      which prevents parallel applying of other transactions working on the same table.
      
      * MDEV-20225 BF aborting SP execution, second patch
      
      First PR missed 4 commits, which are now squashed in this patch:
      - Added galera_sp_bf_abort test.
        A MTR test case which will reproduce BF-BF conflict if all keys
        corresponding to affected tables are not assigned for DROP TRIGGER.
      - Fixed incorrect use of sync pointsin MDEV-20225
      - Added condition for SQLCOM_DROP_TRIGGER in wsrep_can_run_in_toi()
        to make it replicate.
      
      * MDEV-20225 BF aborting SP execution, third patch
      
      The galera_trigger.test caused a situation, where SP invocation caused a trigger
      to fire, and the trigger executed as sub statement SP, and was BF aborted by applier.
      because of wsrep_after_statement() was called for the sub-statement level, it ended up
      in exeuting rollback and asserted there.
      Thus fix will catch sub-statement level SP execution, and avoids calling wsrep_after_statement()
      c42c4233
    • Alexander Barkov's avatar
      dc588e3d
    • Alexander Barkov's avatar
      7e44c455