List:Commits« Previous MessageNext Message »
From:Inaam Rana Date:December 16 2010 2:58pm
Subject:bzr push into mysql-trunk-innodb branch (inaam.rana:3391 to 3392) Bug#58975
View as plain text  
 3392 Inaam Rana	2010-12-16
      bug#58975
      Make sure that buf_flush_list() is called at least once in the
      page_cleaner code path before we wait on buf_flush_wait_batch_end().
      This ensures that buf_pool->no_flush[BUF_FLUSH_LIST] event will be
      set and the page_cleaner will not end up in infinite wait.
      This fix does that by changing the SRV_SHUTDOWN_CLEANUP while loop to
      a do..while loop.
      
      approved by: Marko

    modified:
      storage/innobase/buf/buf0flu.c
 3391 Jimmy Yang	2010-12-16
      Fix Bug #57529 crash on DROP TABLE INNODB_TABLE_MONITOR
      
      rb://494 approved by Sunny Bains

    modified:
      storage/innobase/row/row0mysql.c
=== modified file 'storage/innobase/buf/buf0flu.c'
--- a/storage/innobase/buf/buf0flu.c	revid:jimmy.yang@stripped
+++ b/storage/innobase/buf/buf0flu.c	revid:inaam.rana@stripped
@@ -2408,8 +2408,7 @@ buf_flush_page_cleaner_thread(
 	the buffer pool but can't be sure that no new pages are being
 	dirtied until we enter SRV_SHUTDOWN_FLUSH_PHASE phase. */
 
-	while (srv_shutdown_state == SRV_SHUTDOWN_CLEANUP) {
-
+	do {
 		n_flushed = page_cleaner_do_flush_batch(PCT_IO(100),
 							IB_ULONGLONG_MAX);
 
@@ -2417,7 +2416,7 @@ buf_flush_page_cleaner_thread(
 		if (n_flushed == 0) {
 			os_thread_sleep(100000);
 		}
-	}
+	} while (srv_shutdown_state == SRV_SHUTDOWN_CLEANUP);
 
 	/* At this point all threads including the master and the purge
 	thread must have been suspended. */


Attachment: [text/bzr-bundle] bzr/inaam.rana@oracle.com-20101216145355-9j9iuyrah4rjjqvi.bundle
Thread
bzr push into mysql-trunk-innodb branch (inaam.rana:3391 to 3392) Bug#58975Inaam Rana16 Dec