Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MDEV-35207 ignored error at binlogging by CREATE-TABLE-SELECT leads to assert + MDEV-35499 + MDEV-35502 #3664

Open
wants to merge 1 commit into
base: 10.6
Choose a base branch
from

Conversation

andrelkin
Copy link
Contributor

  • The Jira issue number for this PR is: MDEV-______

Description

TODO: fill description here

Release Notes

TODO: What should the release notes say about this change?
Include any changed system variables, status variables or behaviour. Optionally list any https://mariadb.com/kb/ pages that need changing.

How can this PR be tested?

TODO: modify the automated test suite to verify that the PR causes MariaDB to behave as intended.
Consult the documentation on "Writing good test cases".

If the changes are not amenable to automated testing, please explain why not and carefully describe how to test manually.

Basing the PR against the correct MariaDB version

  • This is a new feature or a refactoring, and the PR is based against the main branch.
  • This is a bug fix, and the PR is based against the earliest maintained branch in which the bug can be reproduced.

PR quality check

  • I checked the CODING_STANDARDS.md file and my PR conforms to this where appropriate.
  • For any trivial modifications to the PR, I am ok with the reviewer making the changes themselves.

…o assert

MDEV-35499 Errored-out CREATE-or-REPLACE-SELECT does not DROP table in binlog
MDEV-35502 Failed at ROW-format binlogging CREATE-TABLE-SELECT should
           not cause Incident event

ha_commit_one_phase() path to commit CREATE-TABLE-SELECT features
a possibility of a failure within binlog_commit() before to flush
the transaction's caches to binlog.
In such case the "autocommit" statement is supposed to roll back.
However CREATE-TABLE-SELECT handler skipped checking of an error
presence so execution proceeded to either implicit commit or send OK
to hit an assert in ether branch.

The fixes install the checking in select_create::send_eof().

This commit also covers CREATE-or-REPLACE-SELECT that additionally had
a "personal" issue to miss DROP TABLE logging into the binary log, MDEV-35499.
See select_create::abort_result_set().

The current commit also corrects from unnecessary Incident event
logging when it's C-T-S that suffers from a binloging issue, MDEV-35502.
The Incident was actually only harmful in this case.
@andrelkin andrelkin self-assigned this Nov 26, 2024
@CLAassistant
Copy link

CLAassistant commented Nov 26, 2024

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
7 out of 16 committers have signed the CLA.

✅ vaintroub
✅ Olernov
✅ ParadoxV5
✅ spetrunia
✅ dbart
✅ bnestere
✅ janlindstrom
❌ montywi
❌ Thirunarayanan
❌ dr-m
❌ sysprg
❌ emoonrain
❌ abarkov
❌ denis-protivensky
❌ vlad-lesin
❌ sanja-byelkin
You have signed the CLA already but the status is still pending? Let us recheck it.

@cvicentiu
Copy link
Member

@andrelkin You probably want to rebase your branch on top of most recent main branch and force-push. Or perhaps the PR should be targeting a different branch than main. It's not 100% clear to me, but right now it looks like you are trying to merge your change together with others`

@andrelkin
Copy link
Contributor Author

Thanks, @cvicentiu ! (And sorry to force you replicating your alarms).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

4 participants