Skip to content

MDEV-38829: semisync wait fix - #5487

Open
nadaelsayed11 wants to merge 1 commit into
MariaDB:10.11from
nadaelsayed11:MDEV-38829-semisync-wait-fix
Open

MDEV-38829: semisync wait fix#5487
nadaelsayed11 wants to merge 1 commit into
MariaDB:10.11from
nadaelsayed11:MDEV-38829-semisync-wait-fix

Conversation

@nadaelsayed11

@nadaelsayed11 nadaelsayed11 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

MYSQL_BIN_LOG::write() guarded semisync registration (report_binlog_update) on the direct-write path with if (!error), but did not apply the same guard to the subsequent wait_after_sync() call. When the write failed before registering the transaction, wait_after_sync() still ran and looked for the transaction in the Active_tranx list, found nothing, and tripped the DBUG_ASSERT in commit_trx() that assumes a missing entry can only be caused by semisync having been switched off and on.

@CLAassistant

CLAassistant commented Aug 4, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@nadaelsayed11
nadaelsayed11 force-pushed the MDEV-38829-semisync-wait-fix branch from 05ca11c to 4921384 Compare August 4, 2026 18:54
@nadaelsayed11
nadaelsayed11 changed the base branch from main to 10.11 August 4, 2026 18:58
@gkodinov gkodinov added the External Contribution All PRs from entities outside of MariaDB Foundation, Corporation, Codership agreements. label Aug 5, 2026
@gkodinov gkodinov changed the title Mdev 38829 semisync wait fix MDEV-38829: semisync wait fix Aug 5, 2026
@gkodinov gkodinov self-assigned this Aug 5, 2026

@gkodinov gkodinov left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contribution! This is a preliminary review.

Excellent analysis and explanation. LGTM. Please stand by for the final review.

Please also clear the CLA both.

@gkodinov
gkodinov requested a review from bnestere August 5, 2026 08:34
@gkodinov gkodinov assigned bnestere and unassigned gkodinov Aug 5, 2026
MYSQL_BIN_LOG::write() guarded semisync registration (report_binlog_update) on the direct-write path with if (!error), but did not apply the same guard to the subsequent wait_after_sync() call. When the write failed before registering the transaction, wait_after_sync() still ran and looked for the transaction in the Active_tranx list, found nothing, and tripped the DBUG_ASSERT in commit_trx() that assumes a missing entry can only be caused by semisync having been switched off and on.
@nadaelsayed11
nadaelsayed11 force-pushed the MDEV-38829-semisync-wait-fix branch from 4921384 to dd4a8ae Compare August 5, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

External Contribution All PRs from entities outside of MariaDB Foundation, Corporation, Codership agreements.

Development

Successfully merging this pull request may close these issues.

4 participants