Below is the list of changes that have just been committed into a local
4.1 repository of heikki. When heikki does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.2139 05/03/21 22:21:55 heikki@stripped +1 -0
trx0trx.c:
If MySQL wrote to its binlog, but for some reason trx->update_undo and
trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB
could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
innobase/trx/trx0trx.c
1.42 05/03/21 22:17:54 heikki@stripped +9 -1
If MySQL wrote to its binlog, but for some reason trx->update_undo and
trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB
could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: heikki
# Host: hundin.mysql.fi
# Root: /home/heikki/mysql-4.1
--- 1.41/innobase/trx/trx0trx.c Mon Mar 21 22:13:51 2005
+++ 1.42/innobase/trx/trx0trx.c Mon Mar 21 22:17:54 2005
@@ -96,6 +96,7 @@
trx->check_unique_secondary = TRUE;
trx->flush_log_later = FALSE;
+ trx->must_flush_log_later = FALSE;
trx->dict_operation = FALSE;
@@ -654,6 +655,8 @@
ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
+ trx->must_flush_log_later = FALSE;
+
rseg = trx->rseg;
if (trx->insert_undo != NULL || trx->update_undo != NULL) {
@@ -821,6 +824,7 @@
if (trx->flush_log_later) {
/* Do nothing yet */
+ trx->must_flush_log_later = TRUE;
} else if (srv_flush_log_at_trx_commit == 0) {
/* Do nothing */
} else if (srv_flush_log_at_trx_commit == 1) {
@@ -1539,7 +1543,9 @@
trx->op_info = "flushing log";
- if (srv_flush_log_at_trx_commit == 0) {
+ if (!trx->must_flush_log_later) {
+ /* Do nothing */
+ } else if (srv_flush_log_at_trx_commit == 0) {
/* Do nothing */
} else if (srv_flush_log_at_trx_commit == 1) {
if (srv_unix_file_flush_method == SRV_UNIX_NOSYNC) {
@@ -1560,6 +1566,8 @@
} else {
ut_error;
}
+
+ trx->must_flush_log_later = FALSE;
trx->op_info = "";
| Thread |
|---|
| • bk commit into 4.1 tree (heikki:1.2139) BUG#9277 | Heikki Tuuri | 21 Mar |