MDEV-35638 wsrep_last_{written,seen}_gtid call my_error(ER_OUTOFMEMORY) incorrectly #3696
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The my_error has a flags argument before the varargs size, which in ER_OUTOFMEMORY is a %d. Pass in the size, corrected for what was attempted to be allocated.
For wsrep_sync_wait_upto we error a size roughly of a gtid, though the allocation that failed in wait_gtid_upto was doing:
"m_wait_map.insert(std::make_pair(seqno, &wait_cond))"
which fails. Rather than working out the exact size, which won't be large and not actionably by the user, doing an approximation instead.
Release Notes
Correct OOM messages if they occured during wsrep_last_{writtent,seen}_gtid functions.
How can this PR be tested?
Not easily, manual memory limited, but the calling convention on the error message is quite clear.
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
main
branch.PR quality check