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.dimov | 3 Oct |