mariadb/mysql-test/suite
Marko Mäkelä 8f486f2f74 MDEV-36301 SET GLOBAL innodb_log_file_disabled, ...
innodb_log_file_disabled: A new Boolean settable global parameter,
for disabling the InnoDB redo log. When set, the server is not
crash safe.

innodb_log_group_home_dir: Allow the value to be changed with
SET GLOBAL, as long as the log remains in the same file system
or innodb_log_file_disabled=ON was set.

innodb_log_update(): A common function for implementing
SET GLOBAL innodb_log_file_size, innodb_log_file_disabled,
innodb_log_checkpoint_now, innodb_log_group_home_dir.

log_sys.buf_size_requested: The configured innodb_log_buffer_size.
While the log is disabled, we may set log_sys.buf_size
(the actual size of log_sys.buf) differently.

log_sys.disabled: The current setting of innodb_log_file_disabled.

log_t::append_prepare(): Instead of referring to file_size or
capacity() for mmap=true, always refer to buf_size.
When log_sys.disabled holds, log_sys.buf may be much smaller than
log_sys.file_size. Its size is always reflected by log_sys.buf_size.

log_t::attach(): Handle log_sys.disabled.

log_t::disable(): Implements SET innodb_log_file_disabled=ON.
Even if the log used to be in persistent memory, here we will
set up dummy log_sys.buf and log_sys.flush_buf so that the dummy
writes will appear to use file based writes.

log_t::skip_write_buf(): A dummy log writer implementation that is
used when log_sys.disabled holds and the log is not being resized.

log_t::resize_abort(): When the log remains disabled,
"persist" all the log and advance the group_lock and flush_lock
to the current LSN, just like log_t::disable() does.

log_t::resize_start(): Handle log_sys.disabled, that is,
SET GLOBAL innodb_log_file_disabled=OFF when the redo log had
previously been disabled.  If we are on persistent memory,
we will "fake" the dummy log_sys.buf to appear as memory-mapped
as well, so that log_t::resize_write() and log_t::resize_write_buf()
can assume that both log files are of the same type (memory-mapped
or file-based).  The dummy log_sys.flush_buf will be stored in
log_sys.resize_flush_buf in that case.  When moving from memory-mapped
to a regular log file, we will allocate log_sys.checkpoint_buf.
It will be freed in log_t::close().

log_t::resize_rename(): When innodb_log_group_home_dir
is changed between file systems, handle the non-atomic
replacement of the log file in a special way.  For a moment,
a recoverable ib_logfile0 will exist in both locations.

log_t::resize_write(): Detect memory-mapped log by
!resize_log.is_opened().  If the memory-mapped log is being re-enabled,
log_sys.resize_flush_buf may temporarily store the value of a dummy
log_sys.flush_buf.  During any log resizing or disabling or enabling,
both buf and resize_buf must appear to be either file-based or
memory-mapped.

log_t::write_buf(), log_write_up_to(): Handle the special case that
disable() executed or resize_start() started re-enabling the log while
we were waiting for flush_lock or write_lock. In the latter case,
log_sys.writer will be changed from log_t::skip_write_buf to
log_writer_resizing during the execution of log_write_up_to().

log_t::persist(): Skip the writes if the log is disabled, that is,
a memory-mapped log is in the process being re-enabled. In this case,
we cannot trust log_sys.file_size, and the pmem_persist() could be
invoked on an invalid address range.

log_resize_acquire_group(): Acquier the group locks for write and flush.

log_resize_release_group(): Release the group locks for write and flush.

log_resize_acquire(): Return whether the group locks were elided.

log_write_and_flush_prepare(), log_write_and_flush(): Protect also the
log_sys.is_mmap() case with write_lock and flush_lock, in order to
prevent a race condition between mtr_t::commit_file() and
log_t::disable().

log_t::persist(): Remove the assertions about not holding write_lock or
flush_lock.  We will hold them during DDL operations.
2025-05-28 14:14:20 +03:00
..
archive MDEV-36050 DATA/INDEX DIRECTORY handling is inconsistent 2025-04-18 09:41:23 +02:00
atomic Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
binlog MDEV-36566 SELECT create_temporary_table_binlog_formats should show exactly what it is SET to 2025-04-30 12:33:24 +02:00
binlog_encryption Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
client Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
compat MDEV-36716 A case expression with ROW arguments in THEN crashes 2025-05-05 19:44:04 +04:00
csv Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
encryption Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
engines MDEV-36503 add Pad_attribute column to INFORMATION_SCHEMA.COLLATIONS 2025-05-19 17:07:18 +04:00
events Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
federated Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
funcs_1 MDEV-36503 add Pad_attribute column to INFORMATION_SCHEMA.COLLATIONS 2025-05-19 17:07:18 +04:00
funcs_2 Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
galera MDEV-34822 addendum: minor test corrections after fix 2025-05-05 20:06:00 +02:00
galera_3nodes Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
galera_3nodes_sr Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
galera_sr Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
gcol MDEV-33281 Optimizer hints Cleanup: fix formatting, rename objects 2025-05-05 12:02:47 +07:00
handler Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
heap Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
innodb MDEV-36301 SET GLOBAL innodb_log_file_disabled, ... 2025-05-28 14:14:20 +03:00
innodb_fts Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
innodb_gis Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
innodb_i_s
innodb_zip Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
jp Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
json MDEV-33281 Optimizer hints Cleanup: fix formatting, rename objects 2025-05-05 12:02:47 +07:00
large_tests fix failing large_tests.maria_recover_encrypted 2024-04-22 18:38:39 +02:00
maria remove features that were deprecated in 10.5 2025-04-29 16:53:02 +02:00
mariabackup Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
merge Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
mtr/t Remove dates from all rdiff files 2025-01-05 16:40:11 +02:00
mtr2
multi_source MDEV-35304: Fix multi_source.connects_tried 2025-04-29 11:00:37 -06:00
optimizer_unfixed_bugs
parts Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
perfschema increase tolerance in socket_summary_check.inc 2025-04-29 16:53:02 +02:00
perfschema_stress remove features that were deprecated in 10.5 2025-04-29 16:53:02 +02:00
period Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
plugins MDEV-12182 post-merge 2025-05-02 13:56:25 +02:00
roles fix error messages 2025-05-02 13:56:25 +02:00
rpl MDEV-36735 rpl.rpl_drop_temp Result Content Mismatch Failure 2025-05-20 12:54:18 +03:00
s3 Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
sql_sequence MDEV-35866 CHECK TABLE get number of rows without HA_STATS_RECORDS_IS_EXACT 2025-05-05 11:36:56 +10:00
storage_engine
stress MDEV-34453 Trying to read 16384 bytes at 70368744161280 outside the bounds of the file: ./ibdata1 2024-09-20 20:26:43 +05:30
sys_vars MDEV-36301 SET GLOBAL innodb_log_file_disabled, ... 2025-05-28 14:14:20 +03:00
sysschema MDEV-34888 Implement SEMIJOIN() and SUBQUERY() hints 2025-05-05 12:02:47 +07:00
unit Merge branch '11.4' into 11.5 2024-08-05 17:50:18 +02:00
vcol Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
versioning Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
wsrep Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00