Commit e467e8d8 authored by Daniel Black's avatar Daniel Black

MDEV-30825 innodb_compression_algorithm=0 (none) increments Innodb_num_pages_page_compression_error

fil_page_compress_low returns 0 for both innodb_compression_algorithm=0
and where there is compression errors. On the two callers to this
function, don't increment the compression errors if the algorithm was
none.

Reviewed by: Marko Mäkelä
parent ac151414
#
# MDEV-30825 innodb_compression_algorithm=0 (none) increments Innodb_num_pages_page_compression_error
#
SET @save_compression_algorithm=@@GLOBAL.innodb_compression_algorithm;
SET GLOBAL innodb_compression_algorithm=0;
SELECT VARIABLE_VALUE INTO @compress_errors FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_num_pages_page_compression_error';
CREATE TABLE t (c INT) page_compressed=1 page_compression_level=4 ENGINE=InnoDB;
INSERT INTO t VALUES (1);
FLUSH TABLES t FOR EXPORT;
UNLOCK TABLES;
SELECT VARIABLE_VALUE - @compress_errors AS NUMBER_OF_ERRORS FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_num_pages_page_compression_error';
NUMBER_OF_ERRORS
0
DROP TABLE t;
SET GLOBAL innodb_compression_algorithm=@save_compression_algorithm;
#
# End of 10.4 tests
#
-- source include/innodb_checksum_algorithm.inc
--echo #
--echo # MDEV-30825 innodb_compression_algorithm=0 (none) increments Innodb_num_pages_page_compression_error
--echo #
SET @save_compression_algorithm=@@GLOBAL.innodb_compression_algorithm;
SET GLOBAL innodb_compression_algorithm=0;
SELECT VARIABLE_VALUE INTO @compress_errors FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_num_pages_page_compression_error';
CREATE TABLE t (c INT) page_compressed=1 page_compression_level=4 ENGINE=InnoDB;
INSERT INTO t VALUES (1);
FLUSH TABLES t FOR EXPORT;
UNLOCK TABLES;
SELECT VARIABLE_VALUE - @compress_errors AS NUMBER_OF_ERRORS FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_num_pages_page_compression_error';
DROP TABLE t;
SET GLOBAL innodb_compression_algorithm=@save_compression_algorithm;
--echo #
--echo # End of 10.4 tests
--echo #
......@@ -201,6 +201,7 @@ static ulint fil_page_compress_for_full_crc32(
bool encrypted)
{
ulint comp_level = fsp_flags_get_page_compression_level(flags);
ulint comp_algo = fil_space_t::get_compression_algo(flags);
if (comp_level == 0) {
comp_level = page_zip_level;
......@@ -209,11 +210,11 @@ static ulint fil_page_compress_for_full_crc32(
const ulint header_len = FIL_PAGE_COMP_ALGO;
ulint write_size = fil_page_compress_low(
buf, out_buf, header_len,
fil_space_t::get_compression_algo(flags), comp_level);
buf, out_buf, header_len, comp_algo, comp_level);
if (write_size == 0) {
fail:
if (comp_algo != PAGE_UNCOMPRESSED)
srv_stats.pages_page_compression_error.inc();
return 0;
}
......@@ -293,6 +294,7 @@ static ulint fil_page_compress_for_non_full_crc32(
header_len, comp_algo, comp_level);
if (write_size == 0) {
if (comp_algo != PAGE_UNCOMPRESSED)
srv_stats.pages_page_compression_error.inc();
return 0;
}
......
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