Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
N/A
-
Unexpected results
Description
I'm not sure the error is specific to the new binlog, but so far I could only reproduce it with binlog-storage-engine.
|
knielsen_binlog_in_engine_12.3 60c4ad7dcffc60841d914942195edb4b420b44cb |
Version: '12.3.0-MariaDB-debug-log' socket: '/home/binlog/MDEV-38462/var-no-rr/trial.5/s2/mysql.sock' port: 14141 Source distribution
|
2026-01-01 16:18:54 4 [Note] Master connection name: '' Master_info_file: 'master.info' Relay_info_file: 'relay-log.info'
|
2026-01-01 16:18:54 4 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MariaDB server acts as a replica and has its hostname changed. Please use '--log-basename=#' or '--relay-log=mysql-relay-bin' to avoid this problem.
|
2026-01-01 16:18:55 4 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='', master_port='3306', master_log_file='', master_log_pos='4'. New state master_host='127.0.0.1', master_port='14140', master_log_file='', master_log_pos='4'.
|
2026-01-01 16:18:55 4 [Note] Previous Using_Gtid=Slave_Pos. New Using_Gtid=Current_Pos
|
2026-01-01 16:18:55 5 [Note] Slave I/O thread: Start asynchronous replication to master 'replication@127.0.0.1:14140' in log '' at position 4
|
2026-01-01 16:18:55 6 [Note] Slave SQL thread initialized, starting replication in log 'FIRST' at position 4, relay log './mysql-relay-bin.000001' position: 4; GTID position ''
|
2026-01-01 16:18:55 5 [Note] Slave I/O thread: connected to master 'replication@127.0.0.1:14140',replication starts at GTID position ''
|
2026-01-01 16:20:52 6 [ERROR] InnoDB: Crash recovery is broken due to insufficient innodb_log_file_size; last checkpoint LSN=411232115, current LSN=501822982.
|
2026-01-01 16:20:52 0 [Note] InnoDB: Crash recovery was broken between LSN=501822982 and checkpoint LSN=432026400.
|
That is, the error appears nowhere close to server restart or crash recovery. It usually happens on a slave, but there were a few occasions on a master.
The concurrent test:
|
MariaDB/randgen 3ed986410527a2a30e2a169734c62d48f5491639 |
perl ./run.pl --base-port=14140 --basedir=/home/binlog/MDEV-38462/knielsen_binlog_in_engine_12.3 --compatibility=999999 --duration=100 --filter=conf/ff/replication.ff --filter=conf/preview/new_binlog.ff --gendata=conf/zz/innodb-key-block-size.zz --grammar=mdev38462.yy --mysqld=--binlog-format=mixed --mysqld=--binlog_storage_engine=innodb --mysqld=--innodb-lock-wait-timeout=10 --mysqld=--lock-wait-timeout=12 --mysqld=--log_bin --mysqld=--max-statement-time=25 --queries=1000000 --reporters=Deadlock --scenario-use-gtid --scenario=Replication --threads=4 --vardir=/home/binlog/MDEV-38462/var-rr --seed=1766701219 --trials=50 --output="InnoDB: Crash recovery is broken due to insufficient" --rr
|
It usually fails for me in 10-20 attempts, but not very reliably. The test is rr-able, the rr profile will be provided.
The test is a MS replication setup with binlog_storage_engine=innodb. innodb_log_file_size remains default. Specifics of the flow on the master is that it loads fairly big files via LOAD_FILE, uses a lot of JSON functions which tend to take a lot of time, and does not obey max_statement_time (it's a separate old bug). I don't know if any of this has any relation to the error in question.
Attachments
Issue Links
- is caused by
-
MDEV-34705 Improving performance of binary logging by removing the need of syncing it
-
- In Testing
-