List:Commits« Previous MessageNext Message »
From:vasil.dimov Date:October 3 2011 8:49am
Subject:bzr push into mysql-trunk branch (vasil.dimov:3466 to 3467)
View as plain text  
 3467 Vasil Dimov	2011-10-03
      Enforce a 512GiB limit on the combined log size. Higher values have not
      been tested and code review shows that the block number is clipped to 1G
      in log_block_convert_lsn_to_no(). With 512 bytes blocks we have a limit
      of 512GiB.

    modified:
      storage/innobase/srv/srv0start.c
 3466 Jon Olav Hauglid	2011-10-03 [merge]
      Merge from mysql-5.5 to mysql-trunk
      No conflicts

    modified:
      unittest/mysys/my_atomic-t.c
=== modified file 'storage/innobase/srv/srv0start.c'
--- a/storage/innobase/srv/srv0start.c	revid:jon.hauglid@stripped
+++ b/storage/innobase/srv/srv0start.c	revid:vasil.dimov@stripped
@@ -1701,6 +1701,21 @@ innobase_start_or_create_for_mysql(void)
 	}
 #endif /* UNIV_LOG_ARCHIVE */
 
+	if (srv_n_log_files * srv_log_file_size * UNIV_PAGE_SIZE
+	    >= 549755813888ULL /* 512G */) {
+		/* log_block_convert_lsn_to_no() limits the returned block
+		number to 1G and given that OS_FILE_LOG_BLOCK_SIZE is 512
+		bytes, then we have a limit of 512 GB. If that limit is to
+		be raised, then log_block_convert_lsn_to_no() must be
+		modified. */
+		ut_print_timestamp(stderr);
+		fprintf(stderr,
+			" InnoDB: Error: combined size of log files"
+			" must be < 512 GB\n");
+
+		return(DB_ERROR);
+	}
+
 	if (srv_n_log_files * srv_log_file_size >= ULINT_MAX) {
 		/* fil_io() takes ulint as an argument and we are passing
 		(next_offset / UNIV_PAGE_SIZE) to it in log_group_write_buf().

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (vasil.dimov:3466 to 3467) vasil.dimov3 Oct