1. 26 Jun, 2018 1 commit
    • Marko Mäkelä's avatar
      MDEV-16515 InnoDB: Failing assertion: ++retries < 10000 in file · c4eb4bce
      Marko Mäkelä authored
      dict0dict.cc
      
      buf_LRU_drop_page_hash_for_tablespace(): Return whether any adaptive
      hash index entries existed. If yes, the caller should keep retrying to
      drop the adaptive hash index.
      
      row_import_for_mysql(), row_truncate_table_for_mysql(),
      row_drop_table_for_mysql(): Ensure that the adaptive hash index was
      entirely dropped for the table.
      c4eb4bce
  2. 21 Jun, 2018 1 commit
  3. 20 Jun, 2018 8 commits
  4. 19 Jun, 2018 5 commits
  5. 18 Jun, 2018 1 commit
  6. 15 Jun, 2018 5 commits
  7. 14 Jun, 2018 4 commits
    • Sergei Golubchik's avatar
      fix galera sst tests · c22ab56f
      Sergei Golubchik authored
      note that ${A#foo} is $A if there's no prefix foo. That's why
      galera nodes tried to connect to 127.0.0.1:127.0.0.1 if there was
      no port in the address
      
      Followup for 2b35db5a
      c22ab56f
    • Sergei Golubchik's avatar
      fix compilation w/o partitioning · 776fc876
      Sergei Golubchik authored
      followup for d8da9202
      776fc876
    • Sergei Golubchik's avatar
      Merge branch '10.0' into 10.1 · 5d6b7f46
      Sergei Golubchik authored
      5d6b7f46
    • Marko Mäkelä's avatar
      MDEV-13103 Deal with page_compressed page corruption · f5eb3712
      Marko Mäkelä authored
      fil_page_decompress(): Replaces fil_decompress_page().
      Allow the caller detect errors. Remove
      duplicated code. Use the "safe" instead of "fast" variants of
      decompression routines.
      
      fil_page_compress(): Replaces fil_compress_page().
      The length of the input buffer always was srv_page_size (innodb_page_size).
      Remove printouts, and remove the fil_space_t* parameter.
      
      buf_tmp_buffer_t::reserved: Make private; the accessors acquire()
      and release() will use atomic memory access.
      
      buf_pool_reserve_tmp_slot(): Make static. Remove the second parameter.
      Do not acquire any mutex. Remove the allocation of the buffers.
      
      buf_tmp_reserve_crypt_buf(), buf_tmp_reserve_compression_buf():
      Refactored away from buf_pool_reserve_tmp_slot().
      
      buf_page_decrypt_after_read(): Make static, and simplify the logic.
      Use the encryption buffer also for decompressing.
      
      buf_page_io_complete(), buf_dblwr_process(): Check more failures.
      
      fil_space_encrypt(): Simplify the debug checks.
      
      fil_space_t::printed_compression_failure: Remove.
      
      fil_get_compression_alg_name(): Remove.
      
      fil_iterate(): Allocate a buffer for compression and decompression
      only once, instead of allocating and freeing it for every page
      that uses compression, during IMPORT TABLESPACE.
      
      fil_node_get_space_id(), fil_page_is_index_page(),
      fil_page_is_lzo_compressed(): Remove (unused code).
      f5eb3712
  8. 13 Jun, 2018 8 commits
  9. 12 Jun, 2018 7 commits
    • Vicențiu Ciorbaru's avatar
      Merge branch '10.0-galera' into 10.1 · 6e55236c
      Vicențiu Ciorbaru authored
      6e55236c
    • Vicențiu Ciorbaru's avatar
      Merge branch '10.0' into 10.1 · aa59ecec
      Vicențiu Ciorbaru authored
      aa59ecec
    • Vicențiu Ciorbaru's avatar
      Merge branch '5.5' into 10.0 · 170bec36
      Vicențiu Ciorbaru authored
      170bec36
    • Andrei Elkin's avatar
      MDEV-13577 slave_parallel_mode=optimistic should not report the mode's · 7bbe324f
      Andrei Elkin authored
                 specific temporary errors
      
      The optimistic parallel slave's worker thread could face a run-time error due to
      the algorithm's specifics which allows for conflicts like the reported
      "Can't find record in 'table'".
      A typical stack is like
      
      {noformat}
      #0  handler::print_error (this=0x61c00008f8a0, error=149, errflag=0) at handler.cc:3650
      #1  0x0000555555e95361 in write_record (thd=thd@entry=0x62a0000a2208, table=table@entry=0x61f00008ce88, info=info@entry=0x7fffdee356d0) at sql_insert.cc:1944
      #2  0x0000555555ea7767 in mysql_insert (thd=thd@entry=0x62a0000a2208, table_list=0x61b00012ada0, fields=..., values_list=..., update_fields=..., update_values=..., duplic=<optimized out>, ignore=<optimized out>) at sql_insert.cc:1039
      #3  0x0000555555efda90 in mysql_execute_command (thd=thd@entry=0x62a0000a2208) at sql_parse.cc:3927
      #4  0x0000555555f0cc50 in mysql_parse (thd=0x62a0000a2208, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at sql_parse.cc:7449
      #5  0x00005555566d4444 in Query_log_event::do_apply_event (this=0x61200005b9c8, rgi=<optimized out>, query_arg=<optimized out>, q_len_arg=<optimized out>) at log_event.cc:4508
      #6  0x00005555566d639e in Query_log_event::do_apply_event (this=<optimized out>, rgi=<optimized out>) at log_event.cc:4185
      #7  0x0000555555d738cf in Log_event::apply_event (rgi=0x61d0001ea080, this=0x61200005b9c8) at log_event.h:1343
      #8  apply_event_and_update_pos_apply (ev=ev@entry=0x61200005b9c8, thd=thd@entry=0x62a0000a2208, rgi=rgi@entry=0x61d0001ea080, reason=<optimized out>) at slave.cc:3479
      #9  0x0000555555d8596b in apply_event_and_update_pos_for_parallel (ev=ev@entry=0x61200005b9c8, thd=thd@entry=0x62a0000a2208, rgi=rgi@entry=0x61d0001ea080) at slave.cc:3623
      #10 0x00005555562aca83 in rpt_handle_event (qev=qev@entry=0x6190000fa088, rpt=rpt@entry=0x62200002bd68) at rpl_parallel.cc:50
      #11 0x00005555562bd04e in handle_rpl_parallel_thread (arg=arg@entry=0x62200002bd68) at rpl_parallel.cc:1258
      {noformat}
      
      Here {{handler::print_error}} computes whether to error log the
      current error when --log-warnings > 1. The decision flag is consulted
      bu {{my_message_sql()}} which can be eventually called.
      In the bug case the decision is to log.
      However in the optimistic mode slave applier case any conflict is
      attempted to resolve with rollback and retry to success. Hence the
      logging is at least extraneous.
      
      The case is fixed with adding a new flag {{ME_LOG_AS_WARN}} which
      {{handler::print_error}} may propagate further on through {{my_error}}
      when the error comes from an optimistically running slave worker thread.
      
      The new flag effectively requests the warning level for the errlog record,
      while the thread's DA records the actual error (which is regarded as temporary one
      by the parallel slave error handler).
      7bbe324f
    • Alexey Botchkov's avatar
      MDEV-14668 ADD PRIMARY KEY IF NOT EXISTS on composite key. · 6b8d34fe
      Alexey Botchkov authored
      Check the name of the primary key to be 'PRIMARY'. Than
      differs it from any implicit primary keys created by an engine.
      6b8d34fe
    • Marko Mäkelä's avatar
      MDEV-16456 InnoDB error "returned OS error 71" complains about wrong path · 0ad9c3a0
      Marko Mäkelä authored
      When attempting to rename a table to a non-existing database,
      InnoDB would misleadingly report "OS error 71" when in fact the
      error code is InnoDB's own (OS_FILE_NOT_FOUND), and not report
      both pathnames. Errors on rename could occur due to reasons
      connected to either pathname.
      
      os_file_handle_rename_error(): New function, to report errors in
      renaming files.
      0ad9c3a0
    • Alexander Barkov's avatar
      MDEV-12060 Crash in EXECUTE IMMEDIATE with an expression returning a GRANT command · 26be5072
      Alexander Barkov authored
      Backporting (partially) the fix for MDEV-14603.
      26be5072