1. 27 Mar, 2018 1 commit
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-15325 Incomplete validation of missing tablespace during recovery · 73af8af0
      Thirunarayanan Balathandayuthapani authored
      Problem:
      =======
      	During validation of missing tablespace, missing tablespace id is
      being compared with hash table of redo logs (recv_sys->addr_hash). But if the
      hash table ran out of memory then there is a possibility that it will not contain
      the redo logs of all tablespace. In that case, Server will load the InnoDB
      even though there is a missing tablespace.
      
      Solution:
      ========
      	If the recv_sys->addr_hash hash table ran out of memory then InnoDB needs
      to scan the remaining redo log again to validate the missing tablespace.
      73af8af0
  2. 26 Mar, 2018 5 commits
  3. 25 Mar, 2018 1 commit
  4. 24 Mar, 2018 4 commits
  5. 23 Mar, 2018 9 commits
  6. 22 Mar, 2018 20 commits
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 4092f906
      Sergei Golubchik authored
      galera SST tests have a debug part, but we don't want to limit them
      to fulltest2 builder. So, add support for test files that
      have a debug part:
      
      * add maybe_debug.inc and maybe_debug.combinations
      * 'debug' combination is run when debug is available
      * 'release' combination is run otherwise
      * test wraps debug parts in if($with_debug) { ... }
      * and creates ,debug.rdiff for debug results
      4092f906
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 5ff7ed96
      Sergei Golubchik authored
      create galera.galera_sst_mariabackup
      5ff7ed96
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 60d4abc1
      Sergei Golubchik authored
      * make galera.galera_sst_xtrabackup* not big
      * auto-select between socat and nc, whatever available
      * auto-skip xtrabackup tests if no xtrabackup or neither socat nor nc
      60d4abc1
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 4b1cbff7
      Sergei Golubchik authored
      make galera.galera_sst_rsync not big
      4b1cbff7
    • Sergei Golubchik's avatar
      MDEV-15409 make sure every sst script is tested in buildbot · 8f1014e9
      Sergei Golubchik authored
      fix galera.galera_sst_mysqldump test to work:
      * must connect to 127.0.0.1, where mysqld is listening
      * disable wsrep_sync_wait in wsrep_sst_mysqldump, otherwise
        sst can deadlock
      * allow 127.0.0.1 for bind_address and wsrep_sst_receive_address.
        (it's useful in tests, or when two nodes are on the same box,
        or when nodes are on different boxes, but the connection is
        tunelled, or whatever. Don't judge user's setup). MDEV-14070
      * don't wait for client connections to die when doing
        mysqldump sst. they'll die in a due time, and if needed mysql
        will wait on locks until they do. MDEV-14069
      
      Also don't mark it big, to make sure it's sufficiently tested
      8f1014e9
    • Sergei Golubchik's avatar
      wsrep_sst_auth: fix a memory leak · 7e300424
      Sergei Golubchik authored
      wsrep_sst_auth_init() is always invoked with value==wsrep_sst_auth.
      Old code was leaking value, because it was never freed.
      7e300424
    • Sergei Golubchik's avatar
      mysql: don't prepare strings if they won't be used · ccd5c9c6
      Sergei Golubchik authored
      in particular, don't call server_version_string() unnecessary,
      because it runs 'SELECT @@version_comment' and this might block
      under certain galera settings (wsrep_sync_wait).
      ccd5c9c6
    • Sergei Golubchik's avatar
      a15ab358
    • Sergei Golubchik's avatar
      89b0d5cb
    • Sergei Golubchik's avatar
      Allow table-less selects even when wsrep is not ready · de55a7d1
      Sergei Golubchik authored
      It doesn't make sense to allow selects from I_S but disallow selects
      that don't use any tables at all, because any (disallowed) select that
      doesn't use tables can be made allowed by adding
      "FROM I_S.COLLATIONS LIMIT 1" to the end.
      
      And it break mysql-test rather badly, even check-testcase.test
      fails on its first `SELECT '$tmp' = 'No such row'`
      
      This reverts 9a896148, c5dd2abf, and 33028f7c:
      Refs: MW-245 - changed logic so that in non primary node it is possible to do SET + SHOW + SELECT from information and pfs schema, when dirty reads are not enabled - however, non table selects are not allowed (e.g. SELECT 1)
      Refs MW-245 - logic was wrong in detecting if queries are allowed in non primary node. it allowed select with no table list to execute even if dirty reads was not specified
      Refs: MW-245 - Adjust tests to account for the new behavior.
      de55a7d1
    • Sergei Golubchik's avatar
      MDEV-14533 Provide information_schema tables using which hardware information can be obtained. · b6e2973e
      Sergei Golubchik authored
      update README, use maria_declare_plugin(), specify the author.
      b6e2973e
    • Sergey Vojtovich's avatar
      Fixed build failure · e147a4a0
      Sergey Vojtovich authored
      e147a4a0
    • Alexey Botchkov's avatar
      MDEV-10871 Add logging capability to pam_user_map.c. · f5b2761c
      Alexey Botchkov authored
      The 'debug' option implemented for the pam_user_map.so.
      f5b2761c
    • Vicențiu Ciorbaru's avatar
      Fix unused variable thd warning in embedded · 1123f87b
      Vicențiu Ciorbaru authored
      The warning came up post merge and is visible when compiling without
      WSREP.
      1123f87b
    • Marko Mäkelä's avatar
      Enable --suite=innodb_undo · fc05777e
      Marko Mäkelä authored
      fc05777e
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · e80a8420
      Marko Mäkelä authored
      e80a8420
    • Marko Mäkelä's avatar
      MDEV-11984 Avoid accessing SYS_TABLESPACES unnecessarily · 2fb31821
      Marko Mäkelä authored
      The following INFORMATION_SCHEMA views were unnecessarily retrieving
      the data from the SYS_TABLESPACES table instead of directly fetching
      it from the fil_system cache:
      
      information_schema.innodb_tablespaces_encryption
      information_schema.innodb_tablespaces_scrubbing
      
      InnoDB always loads all tablespace metadata into memory at startup
      and never evicts it while the tablespace exists.
      
      With this fix, accessing these views will be much faster and use less
      memory, and include data about all tablespaces, including undo
      tablespaces.
      
      The view information_schema.innodb_sys_tablespaces will still reflect
      the contents of the SYS_TABLESPACES table.
      2fb31821
    • Marko Mäkelä's avatar
      Correct a wait condition in a disabled test · b98d80eb
      Marko Mäkelä authored
      The test will still time out. That should be addressed in MDEV-8139.
      b98d80eb
    • Alexander Barkov's avatar
      MDEV-15633 Memory leak after MDEV-15005 · 0cba2c1c
      Alexander Barkov authored
      0cba2c1c
    • Eugene Kosov's avatar
      fix data races · 8d32959b
      Eugene Kosov authored
      srv_last_monitor_time: make all accesses relaxed atomical
      
      WARNING: ThreadSanitizer: data race (pid=12041)
        Write of size 8 at 0x000003949278 by thread T26 (mutexes: write M226445748578513120):
          #0 thd_destructor_proxy storage/innobase/handler/ha_innodb.cc:314:14 (mysqld+0x19b5505)
      
        Previous read of size 8 at 0x000003949278 by main thread:
          #0 innobase_init(void*) storage/innobase/handler/ha_innodb.cc:4180:11 (mysqld+0x1a03404)
          #1 ha_initialize_handlerton(st_plugin_int*) sql/handler.cc:522:31 (mysqld+0xc5ec73)
          #2 plugin_initialize(st_mem_root*, st_plugin_int*, int*, char**, bool) sql/sql_plugin.cc:1447:9 (mysqld+0x134908d)
          #3 plugin_init(int*, char**, int) sql/sql_plugin.cc:1729:15 (mysqld+0x13484f0)
          #4 init_server_components() sql/mysqld.cc:5345:7 (mysqld+0xbf720f)
          #5 mysqld_main(int, char**) sql/mysqld.cc:5940:7 (mysqld+0xbf107d)
          #6 main sql/main.cc:25:10 (mysqld+0xbe971b)
      
        Location is global 'srv_running' of size 8 at 0x000003949278 (mysqld+0x000003949278)
      
      WARNING: ThreadSanitizer: data race (pid=27869)
        Atomic write of size 4 at 0x7b4800000c00 by thread T8:
          #0 __tsan_atomic32_exchange llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc:589 (mysqld+0xbd4eac)
          #1 TTASEventMutex<GenericPolicy>::exit() storage/innobase/include/ib0mutex.h:467:7 (mysqld+0x1a8d4cb)
          #2 PolicyMutex<TTASEventMutex<GenericPolicy> >::exit() storage/innobase/include/ib0mutex.h:609:10 (mysqld+0x1a7839e)
          #3 fil_validate() storage/innobase/fil/fil0fil.cc:5535:2 (mysqld+0x1abd913)
          #4 fil_validate_skip() storage/innobase/fil/fil0fil.cc:204:9 (mysqld+0x1aba601)
          #5 fil_aio_wait(unsigned long) storage/innobase/fil/fil0fil.cc:5296:2 (mysqld+0x1abbae6)
          #6 io_handler_thread storage/innobase/srv/srv0start.cc:340:3 (mysqld+0x21abe1e)
      
        Previous read of size 4 at 0x7b4800000c00 by main thread (mutexes: write M1273, write M1271):
          #0 TTASEventMutex<GenericPolicy>::state() const storage/innobase/include/ib0mutex.h:530:10 (mysqld+0x21c66e2)
          #1 sync_array_detect_deadlock(sync_array_t*, sync_cell_t*, sync_cell_t*, unsigned long) storage/innobase/sync/sync0arr.cc:746:14 (mysqld+0x21c1c7a)
          #2 sync_array_wait_event(sync_array_t*, sync_cell_t*&) storage/innobase/sync/sync0arr.cc:465:6 (mysqld+0x21c1708)
          #3 TTASEventMutex<GenericPolicy>::enter(unsigned int, unsigned int, char const*, unsigned int) storage/innobase/include/ib0mutex.h:516:6 (mysqld+0x1a8c206)
          #4 PolicyMutex<TTASEventMutex<GenericPolicy> >::enter(unsigned int, unsigned int, char const*, unsigned int) storage/innobase/include/ib0mutex.h:635:10 (mysqld+0x1a782c3)
          #5 fil_mutex_enter_and_prepare_for_io(unsigned long) storage/innobase/fil/fil0fil.cc:1131:3 (mysqld+0x1a9a92e)
          #6 fil_io(IORequest const&, bool, page_id_t const&, page_size_t const&, unsigned long, unsigned long, void*, void*, bool) storage/innobase/fil/fil0fil.cc:5082:2 (mysqld+0x1ab8de2)
          #7 buf_flush_write_block_low(buf_page_t*, buf_flush_t, bool) storage/innobase/buf/buf0flu.cc:1112:3 (mysqld+0x1cb970a)
          #8 buf_flush_page(buf_pool_t*, buf_page_t*, buf_flush_t, bool) storage/innobase/buf/buf0flu.cc:1270:3 (mysqld+0x1cb7d70)
          #9 buf_flush_try_neighbors(page_id_t const&, buf_flush_t, unsigned long, unsigned long) storage/innobase/buf/buf0flu.cc:1493:9 (mysqld+0x1cc9674)
          #10 buf_flush_page_and_try_neighbors(buf_page_t*, buf_flush_t, unsigned long, unsigned long*) storage/innobase/buf/buf0flu.cc:1565:13 (mysqld+0x1cbadf3)
          #11 buf_do_flush_list_batch(buf_pool_t*, unsigned long, unsigned long) storage/innobase/buf/buf0flu.cc:1825:3 (mysqld+0x1cbbcb8)
          #12 buf_flush_batch(buf_pool_t*, buf_flush_t, unsigned long, unsigned long, flush_counters_t*) storage/innobase/buf/buf0flu.cc:1895:16 (mysqld+0x1cbb459)
          #13 buf_flush_do_batch(buf_pool_t*, buf_flush_t, unsigned long, unsigned long, flush_counters_t*) storage/innobase/buf/buf0flu.cc:2065:2 (mysqld+0x1cbcfe1)
          #14 buf_flush_lists(unsigned long, unsigned long, unsigned long*) storage/innobase/buf/buf0flu.cc:2167:8 (mysqld+0x1cbd5a3)
          #15 log_preflush_pool_modified_pages(unsigned long) storage/innobase/log/log0log.cc:1400:13 (mysqld+0x1eefc3b)
          #16 log_make_checkpoint_at(unsigned long, bool) storage/innobase/log/log0log.cc:1751:10 (mysqld+0x1eefb16)
          #17 buf_dblwr_create() storage/innobase/buf/buf0dblwr.cc:335:2 (mysqld+0x1cd2141)
          #18 innobase_start_or_create_for_mysql() storage/innobase/srv/srv0start.cc:2539:10 (mysqld+0x21b4d8e)
          #19 innobase_init(void*) storage/innobase/handler/ha_innodb.cc:4193:8 (mysqld+0x1a5e3d7)
          #20 ha_initialize_handlerton(st_plugin_int*) sql/handler.cc:522:31 (mysqld+0xc74d33)
          #21 plugin_initialize(st_mem_root*, st_plugin_int*, int*, char**, bool) sql/sql_plugin.cc:1447:9 (mysqld+0x1376d5d)
          #22 plugin_init(int*, char**, int) sql/sql_plugin.cc:1729:15 (mysqld+0x13761c0)
          #23 init_server_components() sql/mysqld.cc:5348:7 (mysqld+0xc0d0ff)
          #24 mysqld_main(int, char**) sql/mysqld.cc:5943:7 (mysqld+0xc06f9d)
          #25 main sql/main.cc:25:10 (mysqld+0xbff71b)
      
      WARNING: ThreadSanitizer: data race (pid=29031)
        Write of size 8 at 0x0000039e48e0 by thread T15:
          #0 srv_monitor_thread storage/innobase/srv/srv0srv.cc:1699:24 (mysqld+0x21a254e)
      
        Previous write of size 8 at 0x0000039e48e0 by thread T14:
          #0 srv_refresh_innodb_monitor_stats() storage/innobase/srv/srv0srv.cc:1165:24 (mysqld+0x21a3124)
          #1 srv_error_monitor_thread storage/innobase/srv/srv0srv.cc:1836:3 (mysqld+0x21a2d40)
      
        Location is global 'srv_last_monitor_time' of size 8 at 0x0000039e48e0 (mysqld+0x0000039e48e0)
      8d32959b