List:Commits« Previous MessageNext Message »
From:Inaam Rana Date:October 26 2010 9:08pm
Subject:bzr push into mysql-5.5-innodb branch (inaam.rana:3201 to 3203) Bug#57611
View as plain text  
 3203 Inaam Rana	2010-10-26
        Bug #57611    ibdata file and continuous growing undo logs
        rb://498
        
        Fix handling of update_undo_logs at trx commit. Previously, when
        rseg->update_undo_list grows beyond 500 the update_undo_logs were
        marked with state TRX_UNDO_TO_FREE which should have been
        TRX_UNDO_TO_PURGE.
        In 5.5 we don't need the heuristic as we support multiple rollback
        segments.
        
        Approved by: Sunny Bains

    modified:
      storage/innobase/trx/trx0undo.c
 3202 Inaam Rana	2010-10-26 [merge]
      Null merge mysql-5.1-innodb to mysql-5.5-innodb

 3201 kevin.lewis@stripped	2010-10-26
      Bug#57720 - Windows Vista and possibly Windows 7 can return ERROR_TIMEOUT instead of WAIT_TIMEOUT from calls to SleepConditionVariableCS() which is used in os0sync.c; os_cond_wait_timeout() where it is mapped to sleep_condition_variable().   
      
      Consider ERROR_TIMEOUT to be a timeout just like WAIT_TIMEOUT.  
      
      In addition, test for EINTR as a possible return value from pthread_cond_timeout() in the posix section of os_cond_wait_timeout(), even though it is not supposed to be returned, but just to be safe.

    modified:
      storage/innobase/os/os0sync.c
=== modified file 'storage/innobase/trx/trx0undo.c'
--- a/storage/innobase/trx/trx0undo.c	revid:kevin.lewis@stripped
+++ b/storage/innobase/trx/trx0undo.c	revid:inaam.rana@stripped
@@ -1830,19 +1830,7 @@ trx_undo_set_state_at_finish(
 	    && mach_read_from_2(page_hdr + TRX_UNDO_PAGE_FREE)
 	       < TRX_UNDO_PAGE_REUSE_LIMIT) {
 
-		/* This is a heuristic to avoid the problem of all UNDO
-		slots ending up in one of the UNDO lists. Previously if
-		the server crashed with all the slots in one of the lists,
-		transactions that required the slots of a different type
-		would fail for lack of slots. */
-
-		if (UT_LIST_GET_LEN(rseg->update_undo_list) < 500
-		    && UT_LIST_GET_LEN(rseg->insert_undo_list) < 500) {
-
-			state = TRX_UNDO_CACHED;
-		} else {
-			state = TRX_UNDO_TO_FREE;
-		}
+		state = TRX_UNDO_CACHED;
 
 	} else if (undo->type == TRX_UNDO_INSERT) {
 


Attachment: [text/bzr-bundle] bzr/inaam.rana@oracle.com-20101026210624-6nh7s4nv9kb440m8.bundle
Thread
bzr push into mysql-5.5-innodb branch (inaam.rana:3201 to 3203) Bug#57611Inaam Rana26 Oct