Notes for reproducing issue MDEV-41194 created by Edward and Koustuv: Create a vm with two disks. One small disk mounted /var/log/mysql cat /etc/mysql/mariadb.conf.d/zz.cnf [mariadb] innodb_buffer_pool_size = 536870912 # 512 MB innodb_log_buffer_size = 33554432 #32 MB log_error = /var/log/mysql/mariadb.err bind_address = 192.168.8.155 port = 3306 server_id = 1 log_bin = /var/log/mysql/mariadb-bin log_bin_trust_function_creators = ON event_scheduler = ON max_statement_time = 10 mariadb -Ae "flush binary logs; show binary logs;" cd /var/log/mysql df $PWD Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 1012140 652 942728 1% /var/log/mysql Seeing the Available space, fill it up almost completely with dd root@db:/var/log/mysql$ dd if=/dev/zero of=/var/log/mysql/dd.txt bs=1k count=942680 942680+0 records in 942680+0 records out 965304320 bytes (965 MB, 921 MiB) copied, 1.28175 s, 753 MB/s root@db:/var/log/mysql$ df $PWD Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 1012140 943336 44 100% /var/log/mysql for i in {1..33}; do mariadb < /root/setup_vm/MY_DB/ROWS_ON_MY_DB_TABLE.sql; df /var/log/mysql; done Note, the ROWS_ON_MY_DB_TABLE.sql script does one insert and one update. See script below at bottom of this text file. While the for loop is running, from a separate session remove the large file cd /var/log/mysql rm dd.txt mariadb -Ae "flush binary logs; show binary logs;" root@db:/var/log/mysql$ mariadb-binlog --verify-binlog-checksum mariadb-bin.000012 1>/dev/null ERROR: Error in Log_event::read_log_event(): 'Event crc check failed! Most likely there is event corruption.', data_len: 257, event_type: 2 ERROR: Could not read entry at offset 48907: Error in log format or read error. use MY_DB; delimiter // begin not atomic declare low int; declare high int; declare my_note varchar(100); declare my_int int; -- FOR ii IN 0..999 -- DO set my_note=concat('I ',trim(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(substr(concat(md5(rand()),md5(rand()),md5(rand())),1,70),0,' '),1,' '),2,'m'),3,'q'),4,'r'),5,'v'),6,'w'),7,'j'),8,'p'),9,' '),' ',' '),' ',' ')),'.'); insert into `MY_DB_TABLE` (NOTE) VALUES (my_note); select min(ID) into low from MY_DB_TABLE; select max(ID) into high from MY_DB_TABLE; set my_int=FLOOR(low + RAND() * (high - low + 1)); set my_note=concat('U ',trim(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(substr(concat(md5(rand()),md5(rand()),md5(rand())),1,70),0,' '),1,' '),2,'g'),3,'h'),4,'i'),5,'k'),6,'t'),7,'x'),8,'z'),9,' '),' ',' '),' ',' ')),'.'); update MY_DB_TABLE set NOTE=my_note, ROW_UPDATED=current_timestamp() where ID=my_int; -- DO SLEEP(1); commit; -- END FOR; end; // delimiter ; /* CREATE TABLE `MY_DB_TABLE` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT, `NOTE` varchar(100) DEFAULT NULL, `ROW_CREATED` datetime DEFAULT current_timestamp(), `ROW_UPDATED` datetime DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=791 DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs; */