List:Commits« Previous MessageNext Message »
From:vasil.dimov Date:July 7 2010 5:15pm
Subject:bzr commit into mysql-5.0-bugteam branch (vasil.dimov:2878) Bug#49238
View as plain text  
#At file:///usr/local/devel/bzrroot/server/mysql-5.0-bugteam/ based on revid:georgi.kodinov@stripped

 2878 Vasil Dimov	2010-07-07
      Merge the fix for Bug#49238 from SVN
      (without the unrelated whitespace changes):
      
        ------------------------------------------------------------------------
        r7009 | jyang | 2010-04-29 20:44:56 +0300 (Thu, 29 Apr 2010) | 6 lines
        
        branches/5.0: Port fix for bug #49238 (Creating/Dropping a temporary
        table while at 1023 transactions will cause assert) from 5.1 to
        branches/5.1. Separate action for return value DB_TOO_MANY_CONCURRENT_TRXS
        from that of DB_MUST_GET_MORE_FILE_SPACE in row_drop_table_for_mysql().
        
        
        ------------------------------------------------------------------------

    modified:
      innobase/row/row0mysql.c
=== modified file 'innobase/row/row0mysql.c'
--- a/innobase/row/row0mysql.c	revid:georgi.kodinov@stripped
+++ b/innobase/row/row0mysql.c	revid:vasil.dimov@stripped
@@ -3335,20 +3335,13 @@ fputs("	 InnoDB: You are trying to drop 
 
 	err = trx->error_state;
 
-	if (err != DB_SUCCESS) {
-		ut_a(err == DB_OUT_OF_FILE_SPACE);
-
-		err = DB_MUST_GET_MORE_FILE_SPACE;
-		
-		row_mysql_handle_errors(&err, trx, thr, NULL);
-
-		ut_error;
-	} else {
+	switch (err) {
 		ibool		is_path;
 		const char*	name_or_path;
 
+	case DB_SUCCESS:
 		space_id = table->space;
-		
+
 		if (table->dir_path_of_temp_table != NULL) {
 			dir_path_of_temp_table =
 				mem_strdup(table->dir_path_of_temp_table);
@@ -3407,7 +3400,27 @@ fputs("	 InnoDB: You are trying to drop 
 				err = DB_ERROR;
 			}
 		}
+		break;
+
+	case DB_TOO_MANY_CONCURRENT_TRXS:
+		/* Cannot even find a free slot for the
+		the undo log. We can directly exit here
+		and return the DB_TOO_MANY_CONCURRENT_TRXS
+		error. */
+		break;
+
+        case DB_OUT_OF_FILE_SPACE:
+		err = DB_MUST_GET_MORE_FILE_SPACE;
+
+		row_mysql_handle_errors(&err, trx, thr, NULL);
+
+		/* Fall through to raise error */
+
+	default:
+		/* No other possible error returns */
+		ut_error;
 	}
+
 funct_exit:
 
   	trx_commit_for_mysql(trx);


Attachment: [text/bzr-bundle] bzr/vasil.dimov@oracle.com-20100707171353-7jqfvo7b6yyzeofv.bundle
Thread
bzr commit into mysql-5.0-bugteam branch (vasil.dimov:2878) Bug#49238vasil.dimov7 Jul