[MDEV-27857] Assertion `thd->transaction->stmt.is_empty() || thd->in_sub_stmt' failed from execute_init_command on START SLAVE Created: 2022-02-16 Updated: 2023-04-27 |
|
| Status: | Confirmed |
| Project: | MariaDB Server |
| Component/s: | Binary Protocol, Replication |
| Affects Version/s: | 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10 |
| Fix Version/s: | 10.4, 10.5, 10.6 |
| Type: | Bug | Priority: | Major |
| Reporter: | Roel Van de Paar | Assignee: | Andrei Elkin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
Sporadic; repeat a few times if server does not immediately crash.
Leads to:
Bug confirmed present in: Bug (or feature/syntax) confirmed not present in: |
| Comments |
| Comment by Roel Van de Paar [ 2022-02-16 ] | |||||||||||||||||||||||||||||||
|
UniqueID's seen across versions (dbg builds)
| |||||||||||||||||||||||||||||||
| Comment by Andrei Elkin [ 2022-02-16 ] | |||||||||||||||||||||||||||||||
|
Roel, thanks for a pretty clear report! What do you mean in 'UniqueID' ? Would it something that developers can make use of? | |||||||||||||||||||||||||||||||
| Comment by Roel Van de Paar [ 2022-02-16 ] | |||||||||||||||||||||||||||||||
|
Elkin Thank you for the nice comment. When I started at MariaDB, I developed a UniqueID system which will take the form of
or
It has been super handy to filter out existing bugs from test run results. The list regularly gets checked for fixed bugs. You can see the full list here: https://github.com/mariadb-corporation/mariadb-qa/blob/master/known_bugs.strings - fixed bugs are at the end of the list and bug numbers are near the end of each line. The current bugs are under the ##### CURRENT BUGS ##### header around line 65-70. More recently I also developed a similar system for *SAN bugs. Here is the list for this one: https://github.com/mariadb-corporation/mariadb-qa/blob/master/known_bugs.strings.SAN The script for crashes/asserts/cores is build into the pquery framework but can likely be used to just run against any core dump with a few minor updates (if any) to generate a UniqueID. The *SAN UniqueID script is here. If you end up testing the crash/assert/core script against a setup, let me know and I can make some patches if required, likely just minor path provisions/adjustments etc. (we use tarball builds in our test setups, as they are handy to go back to previous setups quickly when needed). You can also search the known asserts/crashes bug list with:
And one can also use partial searches (one specific frame out of the first four for example). I think this is handy for support team to see if a bug they ran into is known already, with either exact or partial matching. Finally, I have found UniqueID's handy to more easily/visually see - like in the last comment - how offset various stacks (and or signals/asserts) are. Hence I regularly post them to bug reports if there are more than 1-2 so developers are aided in their work. Hope this helps | |||||||||||||||||||||||||||||||
| Comment by Andrei Elkin [ 2022-02-17 ] | |||||||||||||||||||||||||||||||
|
Roel, thanks for reminding me! It makes sense to classify the assert/segfault stack such a way. Unique-ness though is pseudo strongly speaking, correct? I mean a stack can vary across the versions. Couple of questions from a potential user You said about ' The list regularly gets checked for fixed bugs', which must mean an existing record in CURRENT BUGS gets relocated How/when CURRENT BUGS section is populated? I am guessing - somehow manually by you. If so could be integrated with BB and done automatically (e.g by a mtr post-run hook?)? | |||||||||||||||||||||||||||||||
| Comment by Roel Van de Paar [ 2022-02-18 ] | |||||||||||||||||||||||||||||||
|
Elkin Yes. However, we keep track of all differences in stacks (i.e. the framework checks all versions in both dbg+opt and lists all newly seen UniqueID's and all those get added to the known bugs list, leading to some lines that look very similar. Note this is up to the 4th (in "most significant" order) frame, which is enough to identify as good as all crashing/asserting bugs. Any new UniqueID seen, in any version (MariaDB only, not MySQL), gets added to the top of "CURRENT BUGS". Once it is fixed, it moves all the way to the end of the file under FIXED BUGS. I guess the location in the file (except for CURRENT vs FIXED) does not matter as the grep will show it either with a leading "#" (i.e. fixed) as well as the text "Fixed" before the bug number, or without those two reminders and in such case it is almost definitely (unless it was recently changed) an open/current bug. All bugs/updates are added manually when we see them in testing. The "fixed" updates are semi-automatic (scripted, with manual finalization). Some BB integration may be possible, however it would require some thinking/discussion on best approaches and foreseeable ROI. | |||||||||||||||||||||||||||||||
| Comment by Ramesh Sivaraman [ 2022-06-09 ] | |||||||||||||||||||||||||||||||
|
Reproduced the similar crash without async replication commands.
|