summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-10-27 10:24:02 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-10-27 10:24:02 +0300
commit786a722eba12418f646d4260dc9d6c4a1599f52f (patch)
treed72acb37e723635180cbdbd401bcdff4833f6578
parent965c72d331013dc724c90a66cd18840e56729e1e (diff)
parent38e12db478fdea10531f198323c07a46c722d832 (diff)
downloadmariadb-git-786a722eba12418f646d4260dc9d6c4a1599f52f.tar.gz
Merge 10.1 into 10.2
-rw-r--r--storage/innobase/dict/dict0stats_bg.cc2
-rw-r--r--storage/innobase/fts/fts0fts.cc73
-rw-r--r--storage/innobase/fts/fts0opt.cc11
-rw-r--r--storage/innobase/fts/fts0que.cc2
-rw-r--r--storage/innobase/handler/handler0alter.cc51
-rw-r--r--storage/innobase/include/dict0dict.ic23
-rw-r--r--storage/innobase/include/dict0mem.h5
-rw-r--r--storage/innobase/include/dict0stats_bg.h6
-rw-r--r--storage/innobase/row/row0mysql.cc10
-rw-r--r--storage/perfschema/pfs.cc6
-rw-r--r--storage/xtradb/btr/btr0btr.cc2
-rw-r--r--storage/xtradb/ibuf/ibuf0ibuf.cc12
-rw-r--r--storage/xtradb/include/mtr0log.ic2
-rw-r--r--storage/xtradb/lock/lock0lock.cc4
-rw-r--r--storage/xtradb/row/row0ins.cc2
-rw-r--r--storage/xtradb/row/row0sel.cc2
-rw-r--r--storage/xtradb/row/row0umod.cc2
-rw-r--r--storage/xtradb/row/row0upd.cc2
-rw-r--r--storage/xtradb/srv/srv0srv.cc2
-rw-r--r--storage/xtradb/trx/trx0purge.cc2
-rw-r--r--storage/xtradb/trx/trx0rec.cc2
-rw-r--r--storage/xtradb/ut/ut0dbg.cc2
22 files changed, 172 insertions, 53 deletions
diff --git a/storage/innobase/dict/dict0stats_bg.cc b/storage/innobase/dict/dict0stats_bg.cc
index f2ef18b116d..133e7904c94 100644
--- a/storage/innobase/dict/dict0stats_bg.cc
+++ b/storage/innobase/dict/dict0stats_bg.cc
@@ -259,7 +259,7 @@ dict_stats_wait_bg_to_stop_using_table(
unlocking/locking the data dict */
{
while (!dict_stats_stop_bg(table)) {
- DICT_STATS_BG_YIELD(trx);
+ DICT_BG_YIELD(trx);
}
}
diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc
index 0b1218ed076..2372d9dbaf4 100644
--- a/storage/innobase/fts/fts0fts.cc
+++ b/storage/innobase/fts/fts0fts.cc
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 2011, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2016, 2017, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
@@ -28,6 +28,7 @@ Full Text Search interface
#include "row0mysql.h"
#include "row0upd.h"
#include "dict0types.h"
+#include "dict0stats_bg.h"
#include "row0sel.h"
#include "fts0fts.h"
#include "fts0priv.h"
@@ -860,18 +861,37 @@ fts_drop_index(
err = fts_drop_index_tables(trx, index);
- fts_free(table);
-
+ for(;;) {
+ bool retry = false;
+ if (index->index_fts_syncing) {
+ retry = true;
+ }
+ if (!retry){
+ fts_free(table);
+ break;
+ }
+ DICT_BG_YIELD(trx);
+ }
return(err);
}
- current_doc_id = table->fts->cache->next_doc_id;
- first_doc_id = table->fts->cache->first_doc_id;
- fts_cache_clear(table->fts->cache);
- fts_cache_destroy(table->fts->cache);
- table->fts->cache = fts_cache_create(table);
- table->fts->cache->next_doc_id = current_doc_id;
- table->fts->cache->first_doc_id = first_doc_id;
+ for(;;) {
+ bool retry = false;
+ if (index->index_fts_syncing) {
+ retry = true;
+ }
+ if (!retry){
+ current_doc_id = table->fts->cache->next_doc_id;
+ first_doc_id = table->fts->cache->first_doc_id;
+ fts_cache_clear(table->fts->cache);
+ fts_cache_destroy(table->fts->cache);
+ table->fts->cache = fts_cache_create(table);
+ table->fts->cache->next_doc_id = current_doc_id;
+ table->fts->cache->first_doc_id = first_doc_id;
+ break;
+ }
+ DICT_BG_YIELD(trx);
+ }
} else {
fts_cache_t* cache = table->fts->cache;
fts_index_cache_t* index_cache;
@@ -881,9 +901,17 @@ fts_drop_index(
index_cache = fts_find_index_cache(cache, index);
if (index_cache != NULL) {
- if (index_cache->words) {
- fts_words_free(index_cache->words);
- rbt_free(index_cache->words);
+ for(;;) {
+ bool retry = false;
+ if (index->index_fts_syncing) {
+ retry = true;
+ }
+ if (!retry && index_cache->words) {
+ fts_words_free(index_cache->words);
+ rbt_free(index_cache->words);
+ break;
+ }
+ DICT_BG_YIELD(trx);
}
ib_vector_remove(cache->indexes, *(void**) index_cache);
@@ -4235,6 +4263,16 @@ begin_sync:
index_cache = static_cast<fts_index_cache_t*>(
ib_vector_get(cache->indexes, i));
+ if (index_cache->index->to_be_dropped
+ || index_cache->index->table->to_be_dropped) {
+ continue;
+ }
+
+ index_cache->index->index_fts_syncing = true;
+ DBUG_EXECUTE_IF("fts_instrument_sync_sleep_drop_waits",
+ os_thread_sleep(10000000);
+ );
+
error = fts_sync_index(sync, index_cache);
if (error != DB_SUCCESS && !sync->interrupted) {
@@ -4272,6 +4310,15 @@ end_sync:
}
rw_lock_x_lock(&cache->lock);
+ /* Clear fts syncing flags of any indexes incase sync is
+ interrupeted */
+ for (i = 0; i < ib_vector_size(cache->indexes); ++i) {
+ fts_index_cache_t* index_cache;
+ index_cache = static_cast<fts_index_cache_t*>(
+ ib_vector_get(cache->indexes, i));
+ index_cache->index->index_fts_syncing = false;
+ }
+
sync->interrupted = false;
sync->in_progress = false;
os_event_set(sync->event);
diff --git a/storage/innobase/fts/fts0opt.cc b/storage/innobase/fts/fts0opt.cc
index 820e82dc600..d7e434320a3 100644
--- a/storage/innobase/fts/fts0opt.cc
+++ b/storage/innobase/fts/fts0opt.cc
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 2007, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2016, MariaDB Corporation. All Rights reserved.
This program is free software; you can redistribute it and/or modify it under
@@ -2953,13 +2953,6 @@ fts_optimize_sync_table(
{
dict_table_t* table = NULL;
- /* Prevent DROP INDEX etc. from running when we are syncing
- cache in background. */
- if (!rw_lock_s_lock_nowait(dict_operation_lock, __FILE__, __LINE__)) {
- /* Exit when fail to get dict operation lock. */
- return;
- }
-
table = dict_table_open_on_id(table_id, FALSE, DICT_TABLE_OP_NORMAL);
if (table) {
@@ -2969,8 +2962,6 @@ fts_optimize_sync_table(
dict_table_close(table, FALSE, FALSE);
}
-
- rw_lock_s_unlock(dict_operation_lock);
}
/**********************************************************************//**
diff --git a/storage/innobase/fts/fts0que.cc b/storage/innobase/fts/fts0que.cc
index 84b1cbe32cb..1b03e041871 100644
--- a/storage/innobase/fts/fts0que.cc
+++ b/storage/innobase/fts/fts0que.cc
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 2007, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc
index 3cbfbceb41e..d5c37dae704 100644
--- a/storage/innobase/handler/handler0alter.cc
+++ b/storage/innobase/handler/handler0alter.cc
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 2005, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2013, 2017, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
@@ -8546,7 +8546,47 @@ ha_innobase::commit_inplace_alter_table(
break;
}
- DICT_STATS_BG_YIELD(trx);
+ DICT_BG_YIELD(trx);
+ }
+
+ /* Make a concurrent Drop fts Index to wait until sync of that
+ fts index is happening in the background */
+ for (;;) {
+ bool retry = false;
+
+ for (inplace_alter_handler_ctx** pctx = ctx_array;
+ *pctx; pctx++) {
+ int count =0;
+ ha_innobase_inplace_ctx* ctx
+ = static_cast<ha_innobase_inplace_ctx*>(*pctx);
+ DBUG_ASSERT(new_clustered == ctx->need_rebuild());
+
+ if (dict_fts_index_syncing(ctx->old_table)) {
+ count++;
+ if (count == 100) {
+ fprintf(stderr,
+ "Drop index waiting for background sync"
+ "to finish\n");
+ }
+ retry = true;
+ }
+
+ if (new_clustered && dict_fts_index_syncing(ctx->new_table)) {
+ count++;
+ if (count == 100) {
+ fprintf(stderr,
+ "Drop index waiting for background sync"
+ "to finish\n");
+ }
+ retry = true;
+ }
+ }
+
+ if (!retry) {
+ break;
+ }
+
+ DICT_BG_YIELD(trx);
}
/* Apply the changes to the data dictionary tables, for all
@@ -8919,8 +8959,13 @@ foreign_fail:
ut_d(dict_table_check_for_dup_indexes(
ctx->new_table, CHECK_ABORTED_OK));
- ut_a(fts_check_cached_index(ctx->new_table));
+#ifdef UNIV_DEBUG
+ if (!(ctx->new_table->fts != NULL
+ && ctx->new_table->fts->cache->sync->in_progress)) {
+ ut_a(fts_check_cached_index(ctx->new_table));
+ }
+#endif
if (new_clustered) {
/* Since the table has been rebuilt, we remove
all persistent statistics corresponding to the
diff --git a/storage/innobase/include/dict0dict.ic b/storage/innobase/include/dict0dict.ic
index 6810f0821bd..1eb964ead3c 100644
--- a/storage/innobase/include/dict0dict.ic
+++ b/storage/innobase/include/dict0dict.ic
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2013, 2017, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
@@ -953,6 +953,27 @@ dict_table_x_lock_indexes(
}
/*********************************************************************//**
+Returns true if the particular FTS index in the table is still syncing
+in the background, false otherwise.
+@param [in] table Table containing FTS index
+@return True if sync of fts index is still going in the background */
+UNIV_INLINE
+bool
+dict_fts_index_syncing(
+ dict_table_t* table)
+{
+ dict_index_t* index;
+
+ for (index = dict_table_get_first_index(table);
+ index != NULL;
+ index = dict_table_get_next_index(index)) {
+ if (index->index_fts_syncing) {
+ return(true);
+ }
+ }
+ return(false);
+}
+/*********************************************************************//**
Release the exclusive locks on all index tree. */
UNIV_INLINE
void
diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h
index 227d4d9dc7e..98080578e1c 100644
--- a/storage/innobase/include/dict0mem.h
+++ b/storage/innobase/include/dict0mem.h
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc.
Copyright (c) 2013, 2017, MariaDB Corporation.
@@ -875,6 +875,9 @@ struct dict_index_t{
bool has_new_v_col;
/*!< whether it has a newly added virtual
column in ALTER */
+ bool index_fts_syncing;/*!< Whether the fts index is
+ still syncing in the background;
+ FIXME: remove this and use MDL */
UT_LIST_NODE_T(dict_index_t)
indexes;/*!< list of indexes of the table */
#ifdef BTR_CUR_ADAPT
diff --git a/storage/innobase/include/dict0stats_bg.h b/storage/innobase/include/dict0stats_bg.h
index f99cbeed780..e66666b66a3 100644
--- a/storage/innobase/include/dict0stats_bg.h
+++ b/storage/innobase/include/dict0stats_bg.h
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 2012, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
@@ -56,8 +56,8 @@ dict_stats_recalc_pool_del(
/** Yield the data dictionary latch when waiting
for the background thread to stop accessing a table.
-@param trx transaction holding the data dictionary locks */
-#define DICT_STATS_BG_YIELD(trx) do { \
+@param trx transaction holding the data dictionary locks */
+#define DICT_BG_YIELD(trx) do { \
row_mysql_unlock_data_dictionary(trx); \
os_thread_sleep(250000); \
row_mysql_lock_data_dictionary(trx); \
diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc
index eeea12aacee..d620bc94baa 100644
--- a/storage/innobase/row/row0mysql.cc
+++ b/storage/innobase/row/row0mysql.cc
@@ -3639,6 +3639,16 @@ row_drop_table_for_mysql(
ut_ad(!table->fts->add_wq);
ut_ad(lock_trx_has_sys_table_locks(trx) == 0);
+ for (;;) {
+ bool retry = false;
+ if (dict_fts_index_syncing(table)) {
+ retry = true;
+ }
+ if (!retry) {
+ break;
+ }
+ DICT_BG_YIELD(trx);
+ }
row_mysql_unlock_data_dictionary(trx);
fts_optimize_remove_table(table);
row_mysql_lock_data_dictionary(trx);
diff --git a/storage/perfschema/pfs.cc b/storage/perfschema/pfs.cc
index d51908bdd66..f781a83b324 100644
--- a/storage/perfschema/pfs.cc
+++ b/storage/perfschema/pfs.cc
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -41,6 +41,7 @@
#include "sp_head.h"
#include "pfs_digest.h"
+using std::min;
/**
@page PAGE_PERFORMANCE_SCHEMA The Performance Schema main page
MySQL PERFORMANCE_SCHEMA implementation.
@@ -2020,7 +2021,8 @@ static void set_thread_account_v1(const char *user, int user_len,
DBUG_ASSERT((uint) user_len <= sizeof(pfs->m_username));
DBUG_ASSERT((host != NULL) || (host_len == 0));
DBUG_ASSERT(host_len >= 0);
- DBUG_ASSERT((uint) host_len <= sizeof(pfs->m_hostname));
+
+ host_len= min<size_t>(host_len, sizeof(pfs->m_hostname));
if (unlikely(pfs == NULL))
return;
diff --git a/storage/xtradb/btr/btr0btr.cc b/storage/xtradb/btr/btr0btr.cc
index 29f03549899..dca8542633f 100644
--- a/storage/xtradb/btr/btr0btr.cc
+++ b/storage/xtradb/btr/btr0btr.cc
@@ -2086,7 +2086,7 @@ btr_page_reorganize_low(
"InnoDB: Error: page old max ins size %lu"
" new max ins size %lu\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n",
+ " to https://jira.mariadb.org/\n",
(unsigned long) data_size1, (unsigned long) data_size2,
(unsigned long) max_ins_size1,
(unsigned long) max_ins_size2);
diff --git a/storage/xtradb/ibuf/ibuf0ibuf.cc b/storage/xtradb/ibuf/ibuf0ibuf.cc
index e872198d927..17741b324c9 100644
--- a/storage/xtradb/ibuf/ibuf0ibuf.cc
+++ b/storage/xtradb/ibuf/ibuf0ibuf.cc
@@ -4042,7 +4042,7 @@ ibuf_insert_to_index_page_low(
(ulong) zip_size, (ulong) old_bits);
fputs("InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n", stderr);
+ " to https://jira.mariadb.org/\n", stderr);
ut_ad(0);
DBUG_RETURN(NULL);
}
@@ -4115,7 +4115,7 @@ dump:
" Please run CHECK TABLE on\n"
"InnoDB: your tables.\n"
"InnoDB: Submit a detailed bug report to"
- " http://bugs.mysql.com!\n", stderr);
+ " https://jira.mariadb.org/\n", stderr);
DBUG_VOID_RETURN;
}
@@ -4291,7 +4291,7 @@ ibuf_set_del_mark(
fprintf(stderr, "\nspace %u offset %u"
" (%u records, index id %llu)\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n",
+ " to https://jira.mariadb.org/\n",
(unsigned) buf_block_get_space(block),
(unsigned) buf_block_get_page_no(block),
(unsigned) page_get_n_recs(page),
@@ -4355,7 +4355,7 @@ ibuf_delete(
fprintf(stderr, "\nspace %u offset %u"
" (%u records, index id %llu)\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n",
+ " to https://jira.mariadb.org/\n",
(unsigned) buf_block_get_space(block),
(unsigned) buf_block_get_page_no(block),
(unsigned) page_get_n_recs(page),
@@ -4426,7 +4426,7 @@ ibuf_restore_pos(
} else {
fprintf(stderr,
"InnoDB: ERROR: Submit the output to"
- " http://bugs.mysql.com\n"
+ " https://jira.mariadb.org/\n"
"InnoDB: ibuf cursor restoration fails!\n"
"InnoDB: ibuf record inserted to page %lu:%lu\n",
(ulong) space, (ulong) page_no);
@@ -4745,7 +4745,7 @@ ibuf_merge_or_delete_for_page(
"InnoDB: to determine if they are corrupt"
" after this.\n\n"
"InnoDB: Please submit a detailed bug report"
- " to http://bugs.mysql.com\n\n",
+ " to https://jira.mariadb.org/\n\n",
(ulong) page_no,
(ulong)
fil_page_get_type(block->frame));
diff --git a/storage/xtradb/include/mtr0log.ic b/storage/xtradb/include/mtr0log.ic
index d508d30fafe..8c891fac55b 100644
--- a/storage/xtradb/include/mtr0log.ic
+++ b/storage/xtradb/include/mtr0log.ic
@@ -216,7 +216,7 @@ mlog_write_initial_log_record_fast(
"%d on page %lu of space %lu in the "
"doublewrite buffer, continuing anyway.\n"
"Please post a bug report to "
- "bugs.mysql.com.\n",
+ "https://jira.mariadb.org/\n",
type, offset, space);
ut_ad(0);
}
diff --git a/storage/xtradb/lock/lock0lock.cc b/storage/xtradb/lock/lock0lock.cc
index ce51effbab0..8759cea9e6d 100644
--- a/storage/xtradb/lock/lock0lock.cc
+++ b/storage/xtradb/lock/lock0lock.cc
@@ -2478,7 +2478,7 @@ lock_rec_enqueue_waiting(
dict_index_name_print(stderr, trx, index);
fputs(".\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n",
+ " to https://jira.mariadb.org/\n",
stderr);
ut_ad(0);
}
@@ -5226,7 +5226,7 @@ lock_table_enqueue_waiting(
ut_print_name(stderr, trx, TRUE, table->name);
fputs(".\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n",
+ " to https://jira.mariadb.org/\n",
stderr);
ut_ad(0);
}
diff --git a/storage/xtradb/row/row0ins.cc b/storage/xtradb/row/row0ins.cc
index 33f8ec443dd..e8bae7427f4 100644
--- a/storage/xtradb/row/row0ins.cc
+++ b/storage/xtradb/row/row0ins.cc
@@ -1143,7 +1143,7 @@ row_ins_foreign_check_on_constraint(
rec_print(stderr, clust_rec, clust_index);
fputs("\n"
"InnoDB: Submit a detailed bug report to"
- " http://bugs.mysql.com\n", stderr);
+ " https://jira.mariadb.org/\n", stderr);
ut_ad(0);
err = DB_SUCCESS;
diff --git a/storage/xtradb/row/row0sel.cc b/storage/xtradb/row/row0sel.cc
index 9cbadc305c0..6131129d0a6 100644
--- a/storage/xtradb/row/row0sel.cc
+++ b/storage/xtradb/row/row0sel.cc
@@ -3111,7 +3111,7 @@ row_sel_get_clust_rec_for_mysql(
trx_print(stderr, trx, 600);
fputs("\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n", stderr);
+ " to https://jira.mariadb.org/\n", stderr);
ut_ad(0);
}
diff --git a/storage/xtradb/row/row0umod.cc b/storage/xtradb/row/row0umod.cc
index f23d7e9dc68..2e5cc14bfe1 100644
--- a/storage/xtradb/row/row0umod.cc
+++ b/storage/xtradb/row/row0umod.cc
@@ -653,7 +653,7 @@ row_undo_mod_del_unmark_sec_and_undo_update(
trx_print(stderr, trx, 0);
fputs("\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n", stderr);
+ " to https://jira.mariadb.org/\n", stderr);
ib_logf(IB_LOG_LEVEL_WARN,
"record in index %s was not found"
diff --git a/storage/xtradb/row/row0upd.cc b/storage/xtradb/row/row0upd.cc
index f7aee8643ef..7c6f51f0dd1 100644
--- a/storage/xtradb/row/row0upd.cc
+++ b/storage/xtradb/row/row0upd.cc
@@ -1958,7 +1958,7 @@ row_upd_sec_index_entry(
trx_print(stderr, trx, 0);
fputs("\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n", stderr);
+ " to https://jira.mariadb.org/\n", stderr);
ut_ad(0);
break;
case ROW_FOUND:
diff --git a/storage/xtradb/srv/srv0srv.cc b/storage/xtradb/srv/srv0srv.cc
index 9694e16ef08..ff3581b1c50 100644
--- a/storage/xtradb/srv/srv0srv.cc
+++ b/storage/xtradb/srv/srv0srv.cc
@@ -2356,7 +2356,7 @@ loop:
" was greater\n"
"InnoDB: than the new log sequence number " LSN_PF "!\n"
"InnoDB: Please submit a bug report"
- " to http://bugs.mysql.com\n",
+ " to https://jira.mariadb.org\n",
old_lsn, new_lsn);
ut_ad(0);
}
diff --git a/storage/xtradb/trx/trx0purge.cc b/storage/xtradb/trx/trx0purge.cc
index df4a3217820..ff82bb2ad4e 100644
--- a/storage/xtradb/trx/trx0purge.cc
+++ b/storage/xtradb/trx/trx0purge.cc
@@ -603,7 +603,7 @@ trx_purge_rseg_get_next_history_log(
"InnoDB: but its length is still"
" reported as %lu! Make a detailed bug\n"
"InnoDB: report, and submit it"
- " to http://bugs.mysql.com\n",
+ " to https://jira.mariadb.org/\n",
(ulong) trx_sys->rseg_history_len);
ut_ad(0);
}
diff --git a/storage/xtradb/trx/trx0rec.cc b/storage/xtradb/trx/trx0rec.cc
index 3193dfd81b5..4e0ba825ed2 100644
--- a/storage/xtradb/trx/trx0rec.cc
+++ b/storage/xtradb/trx/trx0rec.cc
@@ -1022,7 +1022,7 @@ trx_undo_update_rec_get_update(
fprintf(stderr, "\n"
"InnoDB: but index has only %lu fields\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com\n"
+ " to https://jira.mariadb.org/\n"
"InnoDB: Run also CHECK TABLE ",
(ulong) dict_index_get_n_fields(index));
ut_print_name(stderr, trx, TRUE, index->table_name);
diff --git a/storage/xtradb/ut/ut0dbg.cc b/storage/xtradb/ut/ut0dbg.cc
index a1cad144da4..a0bd82b385a 100644
--- a/storage/xtradb/ut/ut0dbg.cc
+++ b/storage/xtradb/ut/ut0dbg.cc
@@ -63,7 +63,7 @@ ut_dbg_assertion_failed(
fputs("InnoDB: We intentionally generate a memory trap.\n"
"InnoDB: Submit a detailed bug report"
- " to http://bugs.mysql.com.\n"
+ " to https://jira.mariadb.org/\n"
"InnoDB: If you get repeated assertion failures"
" or crashes, even\n"
"InnoDB: immediately after the mysqld startup, there may be\n"