tiflow icon indicating copy to clipboard operation
tiflow copied to clipboard

DM: Check if binlog_legacy_event_pos is set to ON on MariaDB

Open dveeden opened this issue 1 month ago • 9 comments

What problem does this PR solve?

Issue Number: close #12416

What is changed and how it works?

Check List

Tests

  • Manual test (add detailed scripts or steps below)

Questions

Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?

Release note

A check for the correct value of `binlog_legacy_event_pos` on MariaDB was added.

dveeden avatar Nov 25 '25 20:11 dveeden

Skipping CI for Draft Pull Request. If you want CI signal for your change, please convert it to an actual PR. You can still manually trigger a test run with /test all

ti-chi-bot[bot] avatar Nov 25 '25 20:11 ti-chi-bot[bot]

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please assign d3hunter for approval. For more information see the Code Review Process. Please ensure that each of them provides their approval before proceeding.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

ti-chi-bot[bot] avatar Nov 25 '25 20:11 ti-chi-bot[bot]

With:

podman run --rm --name mariadb -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 -p 3306:3306 mariadb:11.8 --log-bin=mariadb-log --binlog-format=ROW
» start-task /home/dvaneeden/task-mariadb.yaml
{
    "result": false,
    "msg": "",
    "sources": [
    ],
    "checkResult": "[code=26005:class=dm-master:scope=internal:level=medium], Message: fail to check synchronization configuration with type: check was failed, please see detail
    	detail: {
		"results": [
			{
				"id": 3,
				"name": "mysql_version",
				"desc": "check whether mysql version is satisfied",
				"state": "warn",
				"errors": [
					{
						"severity": "warn",
						"short_error": "Migrating from MariaDB is still experimental."
					}
				],
				"instruction": "It is recommended that you upgrade MariaDB to 10.1.2 or a later version.",
				"extra": "address of db instance - 127.0.0.1:3306"
			},
			{
				"id": 12,
				"name": "mariadb_binlog_legacy_event_pos",
				"desc": "check whether mariadb binlog_legacy_event_pos is ON",
				"state": "fail",
				"errors": [
					{
						"severity": "fail",
						"short_error": "binlog_legacy_event_pos is OFF, and should be ON"
					}
				],
				"instruction": "MariaDB 11.4 and newer as source: please execute 'SET GLOBAL binlog_legacy_event_pos=ON;' or update the configuration and apply the configuration",
				"extra": "address of db instance - 127.0.0.1:3306"
			}
		],
		"summary": {
			"passed": false,
			"total": 14,
			"successful": 12,
			"failed": 1,
			"warning": 1
		}
	}"
}
»  

dveeden avatar Nov 25 '25 20:11 dveeden

/label MariaDB /cc @lance6716

dveeden avatar Nov 25 '25 20:11 dveeden

/label skip-issue-check

dveeden avatar Nov 25 '25 20:11 dveeden

@dveeden: The label(s) skip-issue-check cannot be applied. These labels are supported: MariaDB, affects-6.5, affects-7.1, affects-7.5, affects-8.1, affects-8.5, affects-9.0, bug-from-internal-test, bug-from-user, duplicate, may-affects-6.5, may-affects-7.1, may-affects-7.5, may-affects-8.1, may-affects-8.5, needs-cherry-pick-release-6.5, needs-cherry-pick-release-7.1, needs-cherry-pick-release-7.5, needs-cherry-pick-release-8.1, needs-cherry-pick-release-8.5, needs-cherry-pick-release-9.0-beta.2, nextgen, question, release-blocker, wontfix.

In response to this:

/label skip-issue-check

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

ti-chi-bot[bot] avatar Nov 25 '25 20:11 ti-chi-bot[bot]

@dveeden: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-verify faa69662006155370b121b4ddacc8a2c8c2d377a link true /test pull-verify
pull-dm-integration-test faa69662006155370b121b4ddacc8a2c8c2d377a link true /test pull-dm-integration-test

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

ti-chi-bot[bot] avatar Nov 25 '25 21:11 ti-chi-bot[bot]

Maybe we can upgrade go-mysql to use https://github.com/go-mysql-org/go-mysql/pull/1053, instead of adding a user side requirement?

lance6716 avatar Nov 26 '25 01:11 lance6716

Maybe we can upgrade go-mysql to use go-mysql-org/go-mysql#1053, instead of adding a user side requirement?

I mentioned 1052 on https://github.com/pingcap/tiflow/issues/12416 which is more or less the same as the 1053 that you mentioned. If we can make that work that would be good. However until that's released and backported to old versions setting binlog_legacy_event_pos is needed. I don't see any big drawbacks of this setting, so it is probably ok in almost all cases.

dveeden avatar Nov 26 '25 06:11 dveeden