diff options
Diffstat (limited to 'storage/xtradb/log/log0log.c')
-rw-r--r-- | storage/xtradb/log/log0log.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/storage/xtradb/log/log0log.c b/storage/xtradb/log/log0log.c index e7c7a165b9c..a5243d22e8d 100644 --- a/storage/xtradb/log/log0log.c +++ b/storage/xtradb/log/log0log.c @@ -265,13 +265,12 @@ log_check_tracking_margin( } /************************************************************//** -Opens the log for log_write_low. The log must be closed with log_close and -released with log_release. +Opens the log for log_write_low. The log must be closed with log_close. @return start lsn of the log record */ UNIV_INTERN ib_uint64_t -log_reserve_and_open( -/*=================*/ +log_open( +/*=====*/ ulint len) /*!< in: length of data to be catenated */ { log_t* log = log_sys; @@ -284,7 +283,6 @@ log_reserve_and_open( ut_a(len < log->buf_size / 2); loop: - mutex_enter(&(log->mutex)); ut_ad(!recv_no_log_write); /* Calculate an upper limit for the space the string may take in the @@ -305,6 +303,8 @@ loop: ut_ad(++count < 50); + mutex_enter(&(log->mutex)); + goto loop; } @@ -318,6 +318,8 @@ loop: os_thread_sleep(10000); + mutex_enter(&(log->mutex)); + goto loop; } @@ -338,6 +340,8 @@ loop: ut_ad(++count < 50); + mutex_enter(&(log->mutex)); + goto loop; } } @@ -494,9 +498,12 @@ log_close(void) if (tracked_lsn_age >= log->log_group_capacity) { - fprintf(stderr, " InnoDB: Error: the age of the " + fprintf(stderr, "InnoDB: Error: the age of the " "oldest untracked record exceeds the log " "group capacity!\n"); + fprintf(stderr, "InnoDB: Error: stopping the log " + "tracking thread at LSN %llu\n", tracked_lsn); + srv_track_changed_pages = FALSE; } } |