summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2021-03-27 14:18:44 +0300
committerAleksey Midenkov <midenok@gmail.com>2021-03-27 15:19:39 +0300
commit67337e23a70accd46f55a1be87550e550cc5b63c (patch)
treed342adb4e16d09f371294c0ebb73b0639e2adb7c
parentb06b77ef7994f54cf5d3a2d67dacb67b68c574d8 (diff)
downloadmariadb-git-bb-10.6-midenok-MDEV-23844.tar.gz
Better debug tracebb-10.6-midenok-MDEV-23844
-rw-r--r--sql/ddl_log.cc20
-rw-r--r--sql/sql_table.cc3
2 files changed, 17 insertions, 6 deletions
diff --git a/sql/ddl_log.cc b/sql/ddl_log.cc
index 4fa06f28218..7f8415c86b7 100644
--- a/sql/ddl_log.cc
+++ b/sql/ddl_log.cc
@@ -390,6 +390,7 @@ static bool disable_execute_entry(uint entry_pos)
{
uchar buff[1];
DBUG_ENTER("disable_execute_entry");
+ DBUG_PRINT("ddl_log", ("pos: {%u}", entry_pos));
buff[0]= DDL_IGNORE_LOG_ENTRY_CODE;
DBUG_RETURN(mysql_file_pwrite(global_ddl_log.file_id, buff, sizeof(buff),
@@ -1253,13 +1254,15 @@ static int ddl_log_execute_action(THD *thd, MEM_ROOT *mem_root,
mysql_mutex_assert_owner(&LOCK_gdl);
DBUG_PRINT("ddl_log",
- ("entry type: %u action type: %u (%s) phase: %u next: %u "
+ ("pos: %u=>%u->%u type: %u action: %u (%s) phase: %u "
"handler: '%s' name: '%s' from_name: '%s' tmp_name: '%s'",
+ recovery_state.execute_entry_pos,
+ ddl_log_entry->entry_pos,
+ ddl_log_entry->next_entry,
(uint) ddl_log_entry->entry_type,
(uint) ddl_log_entry->action_type,
ddl_log_action_name[ddl_log_entry->action_type],
(uint) ddl_log_entry->phase,
- ddl_log_entry->next_entry,
ddl_log_entry->handler_name.str,
ddl_log_entry->name.str,
ddl_log_entry->from_name.str,
@@ -2383,13 +2386,15 @@ bool ddl_log_write_entry(DDL_LOG_ENTRY *ddl_log_entry,
error= FALSE;
DBUG_PRINT("ddl_log",
- ("entry type: %u action type: %u (%s) phase: %u next: %u "
+ ("pos: %u<-%u type: %u action: %u (%s) phase: %u "
"handler: '%s' name: '%s' from_name: '%s' tmp_name: '%s'",
+ (*active_entry)->entry_pos,
+ (*active_entry)->next_log_entry ?
+ (*active_entry)->next_log_entry->entry_pos : 0,
(uint) ddl_log_entry->entry_type,
(uint) ddl_log_entry->action_type,
ddl_log_action_name[ddl_log_entry->action_type],
(uint) ddl_log_entry->phase,
- ddl_log_entry->next_entry,
ddl_log_entry->handler_name.str,
ddl_log_entry->name.str,
ddl_log_entry->from_name.str,
@@ -2457,7 +2462,11 @@ bool ddl_log_write_execute_entry(uint first_entry,
if (ddl_log_get_free_entry(active_entry))
DBUG_RETURN(TRUE);
got_free_entry= TRUE;
- }
+ }
+ DBUG_PRINT("ddl_log",
+ ("pos: %u=>%u type: %u",
+ (*active_entry)->entry_pos, first_entry,
+ (uint) global_ddl_log.file_entry_buf[DDL_LOG_ENTRY_TYPE_POS]));
if (write_ddl_log_file_entry((*active_entry)->entry_pos))
{
if (got_free_entry)
@@ -2490,6 +2499,7 @@ bool ddl_log_increment_phase(uint entry_pos)
{
bool error;
DBUG_ENTER("ddl_log_increment_phase");
+ DBUG_PRINT("ddl_log", ("pos: %u", entry_pos));
mysql_mutex_lock(&LOCK_gdl);
error= ddl_log_increment_phase_no_lock(entry_pos);
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index e7feaede4f9..cd53dbc006e 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1319,6 +1319,7 @@ int mysql_rm_table_no_locks(THD *thd, TABLE_LIST *tables,
rename_param param;
DDL_LOG_STATE rename_log_state;
+ DDL_LOG_STATE *ddl_log_state2= &rename_log_state;
bool force_if_exists;
if (!opt_bootstrap)
@@ -1332,7 +1333,7 @@ int mysql_rm_table_no_locks(THD *thd, TABLE_LIST *tables,
}
if(mysql_check_rename(thd, &param, table, &table->db, &t.table_name, &t.table_name, false, false) ||
- mysql_do_rename(thd, &param, &rename_log_state, table, &table->db, &t.table_name,
+ mysql_do_rename(thd, &param, ddl_log_state, table, &table->db, &t.table_name,
&t.table_name, false, false, &force_if_exists))
{
error= ENOENT;