Commit 124dc0d8 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-25361 fixup: Fix integer type mismatch

InnoDB tablespace identifiers and page numbers are 32-bit numbers.
Let us use a 32-bit type for them in innochecksum.

The changes in commit 1918bdf3
broke the build on 32-bit Windows.

Thanks to Vicențiu Ciorbaru for an initial version of this fixup.
parent b30f26e3
/*
Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
Copyright (c) 2014, 2019, MariaDB Corporation.
Copyright (c) 2014, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -85,9 +85,9 @@ typedef void fil_space_t;
/* Global variables */
static bool verbose;
static bool just_count;
static unsigned long long start_page;
static unsigned long long end_page;
static unsigned long long do_page;
static uint32_t start_page;
static uint32_t end_page;
static uint32_t do_page;
static bool use_end_page;
static bool do_one_page;
static my_bool do_leaf;
......@@ -99,9 +99,9 @@ static ulong logical_page_size; /* Page size when uncompressed. */
ulong srv_page_size;
page_size_t univ_page_size(0, 0, false);
/* Current page number (0 based). */
unsigned long long cur_page_num;
uint32_t cur_page_num;
/* Current space. */
unsigned long long cur_space;
uint32_t cur_space;
/* Skip the checksum verification. */
static bool no_check;
/* Enabled for strict checksum verification. */
......@@ -494,11 +494,11 @@ is_page_corrupted(
/* enable if page is corrupted. */
bool is_corrupted;
/* use to store LSN values. */
ulint logseq;
ulint logseqfield;
uint32_t logseq;
uint32_t logseqfield;
ulint page_type = mach_read_from_2(buf+FIL_PAGE_TYPE);
uint key_version = mach_read_from_4(buf+FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION);
ulint space_id = mach_read_from_4(
uint32_t key_version = mach_read_from_4(buf+FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION);
uint32_t space_id = mach_read_from_4(
buf + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID);
if (mach_read_from_4(buf + FIL_PAGE_OFFSET) != cur_page_num
......@@ -511,8 +511,8 @@ is_page_corrupted(
if (is_log_enabled) {
fprintf(log_file,
"page id mismatch space::" ULINTPF
" page::%llu \n",
"page id mismatch space::" UINT32PF
" page::" UINT32PF " \n",
space_id, cur_page_num);
}
......@@ -539,13 +539,14 @@ is_page_corrupted(
if (is_log_enabled) {
fprintf(log_file,
"space::" ULINTPF " page::%llu"
"; log sequence number:first = " ULINTPF
"; second = " ULINTPF "\n",
"space::" UINT32PF " page::" UINT32PF
"; log sequence number:first = " UINT32PF
"; second = " UINT32PF "\n",
space_id, cur_page_num, logseq, logseqfield);
if (logseq != logseqfield) {
fprintf(log_file,
"Fail; space::" ULINTPF " page::%llu"
"Fail; space::" UINT32PF
" page::" UINT32PF
" invalid (fails log "
"sequence number check)\n",
space_id, cur_page_num);
......@@ -567,9 +568,9 @@ is_page_corrupted(
page_size);
if (is_corrupted && log_file) {
fprintf(log_file,
"[page id: space=" ULINTPF
", page_number=%llu] may be corrupted;"
" key_version=%u\n",
"[page id: space=" UINT32PF
", page_number=" UINT32PF "] may be corrupted;"
" key_version=" UINT32PF "\n",
space_id, cur_page_num,
mach_read_from_4(
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION
......@@ -680,8 +681,8 @@ update_checksum(
mach_write_to_4(page + FIL_PAGE_SPACE_OR_CHKSUM, checksum);
if (is_log_enabled) {
fprintf(log_file, "page::%llu; Updated checksum ="
" %u\n", cur_page_num, checksum);
fprintf(log_file, "page::" UINT32PF "; Updated checksum ="
" " UINT32PF "\n", cur_page_num, checksum);
}
} else {
......@@ -711,8 +712,8 @@ update_checksum(
mach_write_to_4(page + FIL_PAGE_SPACE_OR_CHKSUM, checksum);
if (is_log_enabled) {
fprintf(log_file, "page::%llu; Updated checksum field1"
" = %u\n", cur_page_num, checksum);
fprintf(log_file, "page::" UINT32PF "; Updated checksum field1"
" = " UINT32PF "\n", cur_page_num, checksum);
}
if (write_check == SRV_CHECKSUM_ALGORITHM_STRICT_INNODB
......@@ -725,8 +726,8 @@ update_checksum(
FIL_PAGE_END_LSN_OLD_CHKSUM,checksum);
if (is_log_enabled) {
fprintf(log_file, "page::%llu; Updated checksum "
"field2 = %u\n", cur_page_num, checksum);
fprintf(log_file, "page::" UINT32PF "; Updated checksum "
"field2 = " UINT32PF "\n", cur_page_num, checksum);
}
}
......@@ -800,7 +801,7 @@ write_file(
if (page_size
!= fwrite(buf, 1, page_size, file == stdin ? stdout : file)) {
fprintf(stderr, "Failed to write page::%llu to %s: %s\n",
fprintf(stderr, "Failed to write page::" UINT32PF " to %s: %s\n",
cur_page_num, filename, strerror(errno));
return(false);
......@@ -818,8 +819,8 @@ write_file(
}
// checks using current xdes page whether the page is free
static bool page_is_free(const byte *xdes, page_size_t page_size,
size_t page_no)
static inline bool is_page_free(const byte *xdes, page_size_t page_size,
uint32_t page_no)
{
const byte *des=
xdes + XDES_ARR_OFFSET +
......@@ -844,12 +845,10 @@ parse_page(
bool is_encrypted)
{
unsigned long long id;
ulint undo_page_type;
uint16_t undo_page_type;
char str[20]={'\0'};
ulint n_recs;
ulint page_no;
ulint left_page_no;
ulint right_page_no;
uint32_t page_no, left_page_no, right_page_no;
ulint data_bytes;
bool is_leaf;
int size_range_id;
......@@ -864,7 +863,7 @@ parse_page(
switch (mach_read_from_2(page + FIL_PAGE_TYPE)) {
case FIL_PAGE_INDEX: {
uint key_version = mach_read_from_4(page + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION);
uint32_t key_version = mach_read_from_4(page + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION);
page_type.n_fil_page_index++;
/* If page is encrypted we can't read index header */
......@@ -888,7 +887,7 @@ parse_page(
is_leaf = (!*(const uint16*) (page + (PAGE_HEADER + PAGE_LEVEL)));
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tIndex page\t\t\t|"
fprintf(file, "#::" UINT32PF "\t\t|\t\tIndex page\t\t\t|"
"\tindex id=%llu,", cur_page_num, id);
fprintf(file,
......@@ -907,13 +906,13 @@ parse_page(
size_range_id = SIZE_RANGES_FOR_PAGE + 1;
}
if (per_page_details) {
printf("index id=%llu page " ULINTPF " leaf %d n_recs " ULINTPF " data_bytes " ULINTPF
printf("index id=%llu page " UINT32PF " leaf %d n_recs " ULINTPF " data_bytes " ULINTPF
"\n", id, page_no, is_leaf, n_recs, data_bytes);
}
/* update per-index statistics */
{
per_index_stats &index = index_ids[id];
if (page_is_free(xdes, page_size, page_no)) {
if (is_page_free(xdes, page_size, page_no)) {
index.free_pages++;
return;
}
......@@ -941,8 +940,8 @@ parse_page(
index.pages_in_size_range[size_range_id] ++;
}
} else {
fprintf(file, "#::%llu\t\t|\t\tEncrypted Index page\t\t\t|"
"\tkey_version %u,%s\n", cur_page_num, key_version, str);
fprintf(file, "#::" UINT32PF "\t\t|\t\tEncrypted Index page\t\t\t|"
"\tkey_version " UINT32PF ",%s\n", cur_page_num, key_version, str);
}
break;
......@@ -952,7 +951,7 @@ parse_page(
undo_page_type = mach_read_from_2(page +
TRX_UNDO_PAGE_HDR + TRX_UNDO_PAGE_TYPE);
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tUndo log page\t\t\t|",
fprintf(file, "#::" UINT32PF "\t\t|\t\tUndo log page\t\t\t|",
cur_page_num);
}
if (undo_page_type == TRX_UNDO_INSERT) {
......@@ -1026,7 +1025,7 @@ parse_page(
case FIL_PAGE_INODE:
page_type.n_fil_page_inode++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tInode page\t\t\t|"
fprintf(file, "#::" UINT32PF "\t\t|\t\tInode page\t\t\t|"
"\t%s\n",cur_page_num, str);
}
break;
......@@ -1034,7 +1033,7 @@ parse_page(
case FIL_PAGE_IBUF_FREE_LIST:
page_type.n_fil_page_ibuf_free_list++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tInsert buffer free list"
fprintf(file, "#::" UINT32PF "\t\t|\t\tInsert buffer free list"
" page\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1042,7 +1041,7 @@ parse_page(
case FIL_PAGE_TYPE_ALLOCATED:
page_type.n_fil_page_type_allocated++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tFreshly allocated "
fprintf(file, "#::" UINT32PF "\t\t|\t\tFreshly allocated "
"page\t\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1050,7 +1049,7 @@ parse_page(
case FIL_PAGE_IBUF_BITMAP:
page_type.n_fil_page_ibuf_bitmap++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tInsert Buffer "
fprintf(file, "#::" UINT32PF "\t\t|\t\tInsert Buffer "
"Bitmap\t\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1058,15 +1057,15 @@ parse_page(
case FIL_PAGE_TYPE_SYS:
page_type.n_fil_page_type_sys++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tSystem page\t\t\t|"
"\t%s\n",cur_page_num, str);
fprintf(file, "#::" UINT32PF "\t\t|\t\tSystem page\t\t\t|"
"\t%s\n", cur_page_num, str);
}
break;
case FIL_PAGE_TYPE_TRX_SYS:
page_type.n_fil_page_type_trx_sys++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tTransaction system "
fprintf(file, "#::" UINT32PF "\t\t|\t\tTransaction system "
"page\t\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1074,7 +1073,7 @@ parse_page(
case FIL_PAGE_TYPE_FSP_HDR:
page_type.n_fil_page_type_fsp_hdr++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tFile Space "
fprintf(file, "#::" UINT32PF "\t\t|\t\tFile Space "
"Header\t\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1082,7 +1081,7 @@ parse_page(
case FIL_PAGE_TYPE_XDES:
page_type.n_fil_page_type_xdes++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tExtent descriptor "
fprintf(file, "#::" UINT32PF "\t\t|\t\tExtent descriptor "
"page\t\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1090,7 +1089,7 @@ parse_page(
case FIL_PAGE_TYPE_BLOB:
page_type.n_fil_page_type_blob++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tBLOB page\t\t\t|\t%s\n",
fprintf(file, "#::" UINT32PF "\t\t|\t\tBLOB page\t\t\t|\t%s\n",
cur_page_num, str);
}
break;
......@@ -1098,7 +1097,7 @@ parse_page(
case FIL_PAGE_TYPE_ZBLOB:
page_type.n_fil_page_type_zblob++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tCompressed BLOB "
fprintf(file, "#::" UINT32PF "\t\t|\t\tCompressed BLOB "
"page\t\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1106,7 +1105,7 @@ parse_page(
case FIL_PAGE_TYPE_ZBLOB2:
page_type.n_fil_page_type_zblob2++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tSubsequent Compressed "
fprintf(file, "#::" UINT32PF "\t\t|\t\tSubsequent Compressed "
"BLOB page\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1114,7 +1113,7 @@ parse_page(
case FIL_PAGE_PAGE_COMPRESSED:
page_type.n_fil_page_type_page_compressed++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tPage compressed "
fprintf(file, "#::" UINT32PF "\t\t|\t\tPage compressed "
"page\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1122,7 +1121,7 @@ parse_page(
case FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED:
page_type.n_fil_page_type_page_compressed_encrypted++;
if (page_type_dump) {
fprintf(file, "#::%llu\t\t|\t\tPage compressed encrypted "
fprintf(file, "#::" UINT32PF "\t\t|\t\tPage compressed encrypted "
"page\t|\t%s\n", cur_page_num, str);
}
break;
......@@ -1278,14 +1277,14 @@ static struct my_option innochecksum_options[] = {
{"count", 'c', "Print the count of pages in the file and exits.",
&just_count, &just_count, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"start_page", 's', "Start on this page number (0 based).",
&start_page, &start_page, 0, GET_ULL, REQUIRED_ARG,
0, 0, ULLONG_MAX, 0, 1, 0},
&start_page, &start_page, 0, GET_UINT, REQUIRED_ARG,
0, 0, FIL_NULL, 0, 1, 0},
{"end_page", 'e', "End at this page number (0 based).",
&end_page, &end_page, 0, GET_ULL, REQUIRED_ARG,
0, 0, ULLONG_MAX, 0, 1, 0},
&end_page, &end_page, 0, GET_UINT, REQUIRED_ARG,
0, 0, FIL_NULL, 0, 1, 0},
{"page", 'p', "Check only this page (0 based).",
&do_page, &do_page, 0, GET_ULL, REQUIRED_ARG,
0, 0, ULLONG_MAX, 0, 1, 0},
&do_page, &do_page, 0, GET_UINT, REQUIRED_ARG,
0, 0, FIL_NULL, 0, 1, 0},
{"strict-check", 'C', "Specify the strict checksum algorithm by the user.",
&strict_check, &strict_check, &innochecksum_algorithms_typelib,
GET_ENUM, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
......@@ -1479,14 +1478,14 @@ bool check_encryption(
return false;
}
uint min_key_version = mach_read_from_4
uint32_t min_key_version = mach_read_from_4
(page + offset + MAGIC_SZ + 2 + iv_length);
uint key_id = mach_read_from_4
uint32_t key_id = mach_read_from_4
(page + offset + MAGIC_SZ + 2 + iv_length + 4);
if (type == CRYPT_SCHEME_1 && is_log_enabled) {
fprintf(log_file,"Tablespace %s encrypted key_version %u key_id %u\n",
fprintf(log_file,"Tablespace %s encrypted key_version " UINT32PF " key_id " UINT32PF "\n",
filename, min_key_version, key_id);
}
......@@ -1517,7 +1516,7 @@ int verify_checksum(
buf, page_size, is_encrypted, is_compressed);
if (is_corrupted) {
fprintf(stderr, "Fail: page::%llu invalid\n",
fprintf(stderr, "Fail: page::" UINT32PF " invalid\n",
cur_page_num);
(*mismatch_count)++;
......@@ -1603,7 +1602,7 @@ int main(
/* size of file (has to be 64 bits) */
unsigned long long int size = 0;
/* number of pages in file */
ulint pages;
uint32_t pages;
off_t offset = 0;
/* count the no. of page corrupted. */
......@@ -1810,7 +1809,7 @@ int main(
}
if (per_page_details) {
printf("page %llu ", cur_page_num);
printf("page " UINT32PF " ", cur_page_num);
}
memcpy(xdes, buf, physical_page_size);
......@@ -1819,29 +1818,29 @@ int main(
parse_page(buf, xdes, fil_page_type, page_size, is_encrypted);
}
pages = (ulint) (size / page_size.physical());
pages = uint32_t(size / page_size.physical());
if (just_count) {
if (read_from_stdin) {
fprintf(stderr, "Number of pages:" ULINTPF "\n", pages);
} else {
printf("Number of pages:" ULINTPF "\n", pages);
}
fprintf(read_from_stdin ? stderr : stdout,
"Number of pages:" UINT32PF "\n", pages);
continue;
} else if (verbose && !read_from_stdin) {
if (is_log_enabled) {
fprintf(log_file, "file %s = %llu bytes "
"(" ULINTPF " pages)\n", filename, size, pages);
"(" UINT32PF " pages)\n",
filename, size, pages);
if (do_one_page) {
fprintf(log_file, "Innochecksum: "
"checking page::%llu;\n",
"checking page::"
UINT32PF ";\n",
do_page);
}
}
} else {
if (is_log_enabled) {
fprintf(log_file, "Innochecksum: checking "
"pages in range::%llu to %llu\n",
"pages in range::" UINT32PF
" to " UINT32PF "\n",
start_page, use_end_page ?
end_page : (pages - 1));
}
......@@ -1885,8 +1884,8 @@ int main(
the desired page. */
partial_page_read = false;
offset = (off_t) start_page
* (off_t) page_size.physical();
offset = off_t(ulonglong(start_page)
* page_size.physical());
#ifdef _WIN32
if (_fseeki64(fil_in, offset, SEEK_SET)) {
#else
......@@ -1931,12 +1930,7 @@ int main(
count++;
if (!bytes || feof(fil_in)) {
fprintf(stderr, "Error: Unable "
"to seek to necessary "
"offset");
exit_status = 1;
goto my_exit;
goto unexpected_eof;
}
}
}
......@@ -1953,6 +1947,15 @@ int main(
partial_page_read = false;
if (!bytes && feof(fil_in)) {
if (cur_page_num == start_page) {
unexpected_eof:
fputs("Error: Unable "
"to seek to necessary offset\n",
stderr);
exit_status = 1;
goto my_exit;
}
break;
}
......@@ -1992,10 +1995,10 @@ int main(
/* If no-check is enabled, skip the
checksum verification.*/
if (!no_check
&& !page_is_free(xdes, page_size, cur_page_num)
&& !skip_page
&& (exit_status = verify_checksum(
if (!no_check &&
!is_page_free(xdes, page_size, cur_page_num) &&
!skip_page &&
(exit_status = verify_checksum(
buf, page_size,
is_encrypted, is_compressed,
&mismatch_count))) {
......@@ -2013,7 +2016,7 @@ int main(
}
if (per_page_details) {
printf("page %llu ", cur_page_num);
printf("page " UINT32PF " ", cur_page_num);
}
if (page_get_page_no(buf) % physical_page_size == 0) {
......@@ -2033,10 +2036,10 @@ int main(
if (!lastt) {
lastt= now;
} else if (now - lastt >= 1 && is_log_enabled) {
fprintf(log_file, "page::%llu "
fprintf(log_file, "page::" UINT32PF " "
"okay: %.3f%% done\n",
(cur_page_num - 1),
(float) cur_page_num / pages * 100);
(double) cur_page_num / pages * 100);
lastt = now;
}
}
......
......@@ -210,10 +210,10 @@ Filename::tab#.ibd
# allow-mismatches,page,start-page,end-page
[9]: check the both short and long options "page" and "start-page" when
# seek value is larger than file size.
FOUND 1 /Error: Unable to seek to necessary offset: Invalid argument/ in my_restart.err
FOUND 1 /Error: Unable to seek to necessary offset: Invalid argument/ in my_restart.err
FOUND 1 /Error: Unable to seek to necessary offset: Invalid argument/ in my_restart.err
FOUND 1 /Error: Unable to seek to necessary offset: Invalid argument/ in my_restart.err
FOUND 1 /Error: Unable to seek to necessary offset/ in my_restart.err
FOUND 1 /Error: Unable to seek to necessary offset/ in my_restart.err
FOUND 1 /Error: Unable to seek to necessary offset/ in my_restart.err
FOUND 1 /Error: Unable to seek to necessary offset/ in my_restart.err
[34]: check the invalid upper bound values for options, allow-mismatches, end-page, start-page and page.
# innochecksum will fail with error code: 1
NOT FOUND /Incorrect unsigned integer value: '18446744073709551616'/ in my_restart.err
......
......@@ -339,22 +339,19 @@ cat_file $MYSQLTEST_VARDIR/tmp/dump.txt;
--echo # seek value is larger than file size.
--error 1
--exec $INNOCHECKSUM --page=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
let SEARCH_PATTERN= Error: Unable to seek to necessary offset;
--source include/search_pattern_in_file.inc
--error 1
--exec $INNOCHECKSUM -p 18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
--source include/search_pattern_in_file.inc
--error 1
--exec $INNOCHECKSUM --start-page=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
--source include/search_pattern_in_file.inc
--error 1
--exec $INNOCHECKSUM -s 18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
--source include/search_pattern_in_file.inc
--echo [34]: check the invalid upper bound values for options, allow-mismatches, end-page, start-page and page.
......
......@@ -2,7 +2,7 @@
Copyright (c) 1995, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2008, Google Inc.
Copyright (c) 2013, 2020, MariaDB Corporation.
Copyright (c) 2013, 2021, MariaDB Corporation.
Portions of this file contain modifications contributed and copyrighted by
Google, Inc. Those modifications are gratefully acknowledged and are described
......@@ -776,8 +776,8 @@ buf_page_is_checksum_valid_crc32(
#ifdef UNIV_INNOCHECKSUM
if (log_file
&& srv_checksum_algorithm == SRV_CHECKSUM_ALGORITHM_STRICT_CRC32) {
fprintf(log_file, "page::%llu;"
" crc32 calculated = %u;"
fprintf(log_file, "page::" UINT32PF ";"
" crc32 calculated = " UINT32PF ";"
" recorded checksum field1 = " ULINTPF " recorded"
" checksum field2 =" ULINTPF "\n", cur_page_num,
crc32, checksum_field1, checksum_field2);
......@@ -822,26 +822,26 @@ buf_page_is_checksum_valid_innodb(
#ifdef UNIV_INNOCHECKSUM
if (log_file
&& srv_checksum_algorithm == SRV_CHECKSUM_ALGORITHM_INNODB) {
fprintf(log_file, "page::%llu;"
fprintf(log_file, "page::" UINT32PF ";"
" old style: calculated ="
" " ULINTPF "; recorded = " ULINTPF "\n",
cur_page_num, old_checksum,
checksum_field2);
fprintf(log_file, "page::%llu;"
fprintf(log_file, "page::" UINT32PF ";"
" new style: calculated ="
" " ULINTPF "; crc32 = %u; recorded = " ULINTPF "\n",
" " ULINTPF "; crc32 = " UINT32PF "; recorded = " ULINTPF "\n",
cur_page_num, new_checksum,
buf_calc_page_crc32(read_buf), checksum_field1);
}
if (log_file
&& srv_checksum_algorithm == SRV_CHECKSUM_ALGORITHM_STRICT_INNODB) {
fprintf(log_file, "page::%llu;"
fprintf(log_file, "page::" UINT32PF ";"
" old style: calculated ="
" " ULINTPF "; recorded checksum = " ULINTPF "\n",
cur_page_num, old_checksum,
checksum_field2);
fprintf(log_file, "page::%llu;"
fprintf(log_file, "page::" UINT32PF ";"
" new style: calculated ="
" " ULINTPF "; recorded checksum = " ULINTPF "\n",
cur_page_num, new_checksum,
......@@ -909,7 +909,7 @@ buf_page_is_checksum_valid_none(
if (log_file
&& srv_checksum_algorithm == SRV_CHECKSUM_ALGORITHM_STRICT_NONE) {
fprintf(log_file,
"page::%llu; none checksum: calculated"
"page::" UINT32PF "; none checksum: calculated"
" = %lu; recorded checksum_field1 = " ULINTPF
" recorded checksum_field2 = " ULINTPF "\n",
cur_page_num, BUF_NO_CHECKSUM_MAGIC,
......@@ -1110,15 +1110,15 @@ buf_page_is_corrupted(
checksum_field1, checksum_field2)) {
#ifdef UNIV_INNOCHECKSUM
if (log_file) {
fprintf(log_file, "page::%llu;"
fprintf(log_file, "page::" UINT32PF ";"
" old style: calculated = %u;"
" recorded = " ULINTPF ";\n",
cur_page_num,
buf_calc_page_old_checksum(read_buf),
checksum_field2);
fprintf(log_file, "page::%llu;"
" new style: calculated = %u;"
" crc32 = %u; recorded = " ULINTPF ";\n",
fprintf(log_file, "page::" UINT32PF ";"
" new style: calculated = " UINT32PF ";"
" crc32 = " UINT32PF "; recorded = " ULINTPF ";\n",
cur_page_num,
buf_calc_page_new_checksum(read_buf),
buf_calc_page_crc32(read_buf),
......
......@@ -458,7 +458,7 @@ in both 32-bit and 64-bit environments. */
#ifdef UNIV_INNOCHECKSUM
extern bool strict_verify;
extern FILE* log_file;
extern unsigned long long cur_page_num;
extern uint32_t cur_page_num;
#endif /* UNIV_INNOCHECKSUM */
typedef int64_t ib_int64_t;
......
......@@ -2,7 +2,7 @@
Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc.
Copyright (c) 2014, 2020, MariaDB Corporation.
Copyright (c) 2014, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
......@@ -4983,9 +4983,9 @@ bool page_zip_verify_checksum(const byte *data, size_t size)
#ifdef UNIV_INNOCHECKSUM
if (log_file) {
fprintf(log_file, "page::%llu;"
" %s checksum: calculated = %u;"
" recorded = %u\n", cur_page_num,
fprintf(log_file, "page::" UINT32PF ";"
" %s checksum: calculated = " UINT32PF ";"
" recorded = " UINT32PF "\n", cur_page_num,
buf_checksum_algorithm_name(
static_cast<srv_checksum_algorithm_t>(
srv_checksum_algorithm)),
......@@ -4997,11 +4997,11 @@ bool page_zip_verify_checksum(const byte *data, size_t size)
data, size, SRV_CHECKSUM_ALGORITHM_CRC32);
if (log_file) {
fprintf(log_file, "page::%llu: crc32 checksum:"
" calculated = %u; recorded = %u\n",
fprintf(log_file, "page::" UINT32PF ": crc32 checksum:"
" calculated = " UINT32PF "; recorded = " UINT32PF "\n",
cur_page_num, crc32, stored);
fprintf(log_file, "page::%llu: none checksum:"
" calculated = %lu; recorded = %u\n",
fprintf(log_file, "page::" UINT32PF ": none checksum:"
" calculated = %lu; recorded = " UINT32PF "\n",
cur_page_num, BUF_NO_CHECKSUM_MAGIC, stored);
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment