diff options
author | unknown <aivanov@mysql.com> | 2006-06-06 23:05:10 +0400 |
---|---|---|
committer | unknown <aivanov@mysql.com> | 2006-06-06 23:05:10 +0400 |
commit | 3eb8a12c08dd18cf24e652f5e886574f77845434 (patch) | |
tree | 47f50079b3727ea0487d000fd1ae2de8d697c49d /innobase | |
parent | 8069b05da0b23e5bcc3c410f7ee4669afea41714 (diff) | |
download | mariadb-git-3eb8a12c08dd18cf24e652f5e886574f77845434.tar.gz |
Applied innodb-4.1-ss31 snapshot.
Fixed BUG#19727 "InnoDB crashed server and crashed tables
are not recoverable".
innobase/row/row0mysql.c:
Applied innodb-4.1-ss31 snapshot.
Move trx_commit_for_mysql(trx) calls before calls to
row_mysql_unlock_data_dictionary(trx).
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/row/row0mysql.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index 23d019b6f78..1ee920ffb14 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -2237,14 +2237,14 @@ do not allow the discard. We also reserve the data dictionary latch. */ } } funct_exit: + trx_commit_for_mysql(trx); + row_mysql_unlock_data_dictionary(trx); if (graph) { que_graph_free(graph); } - trx_commit_for_mysql(trx); - trx->op_info = ""; return((int) err); @@ -2374,10 +2374,10 @@ row_import_tablespace_for_mysql( } funct_exit: - row_mysql_unlock_data_dictionary(trx); - trx_commit_for_mysql(trx); + row_mysql_unlock_data_dictionary(trx); + trx->op_info = ""; return((int) err); @@ -2769,6 +2769,8 @@ fputs(" InnoDB: You are trying to drop table ", stderr); } funct_exit: + trx_commit_for_mysql(trx); + if (locked_dictionary) { row_mysql_unlock_data_dictionary(trx); } @@ -2779,8 +2781,6 @@ funct_exit: que_graph_free(graph); - trx_commit_for_mysql(trx); - trx->op_info = ""; srv_wake_master_thread(); @@ -2857,10 +2857,10 @@ loop: } } - row_mysql_unlock_data_dictionary(trx); - trx_commit_for_mysql(trx); + row_mysql_unlock_data_dictionary(trx); + trx->op_info = ""; return(err); @@ -3272,6 +3272,8 @@ row_rename_table_for_mysql( } } funct_exit: + trx_commit_for_mysql(trx); + if (!recovering_temp_table) { row_mysql_unlock_data_dictionary(trx); } @@ -3284,8 +3286,6 @@ funct_exit: mem_heap_free(heap); } - trx_commit_for_mysql(trx); - trx->op_info = ""; return((int) err); |