[MDEV-17856] Port binlog_error_action from MySQL Created: 2018-11-27  Updated: 2023-11-30

Status: Open
Project: MariaDB Server
Component/s: Replication, Variables
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Geoff Montee (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: None

Issue Links:
Blocks
blocks MDEV-20796 Add an option to keep retrying when M... Open
Duplicate
duplicates MDEV-17866 FR: Add binlog_error_action variable Closed
Relates
relates to MDEV-17855 Provide documentation of error 28 wit... Closed

 Description   

MySQL has had the binlog_error_action variable since MySQL 5.6.22:

binlog_error_action

Property Value
Command-Line Format --binlog-error-action[=value]
Introduced 5.6.22
System Variable binlog_error_action
Scope Global
Dynamic Yes
Type Enumeration
Default Value IGNORE_ERROR
Valid Values
IGNORE_ERROR
ABORT_SERVER

Controls what happens when the server cannot write to the binary log, which can cause the master's log to become inconsistent and replication slaves to lose synchronization. Previous releases used the name binlogging_impossible_mode.

In MySQL 5.6, the default for binlog_error_action is IGNORE_ERROR, meaning the server logs the error, halts logging, and continues performing updates; this is to provide backward compatibility with older versions of the MySQL Server. Setting this variable to ABORT_SERVER makes the server halt logging and shut down whenever it cannot write to the binary log; this is the recommended setting, particularly in complex replication environments.

https://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_binlog_error_action

Is it worth porting to MariaDB?

I think binlog_error_action=ABORT_SERVER would probably be most useful to prevent issues in complex replication environments where some errors such as full disk can cause binary logging to be completely disabled, which means that transactions which have been committed to the local server won't be able to get replication to any of the system's slaves.



 Comments   
Comment by Andrei Elkin [ 2021-01-07 ]

ralf.gebhardt@mariadb.com: It makes sense to adopt the mysql option/global-var and add to it a keep-retrying policy requested by MDEV-20796. That is the latter 's scope to encompass these 2 steps.

Generated at Thu Feb 08 08:39:38 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.