Merge lp:~paul-mccullagh/maria/bug-422550 into lp:~maria-captains/maria/5.1-converting
Proposed by
Paul McCullagh
Status: | Merged | ||||
---|---|---|---|---|---|
Merged at revision: | not available | ||||
Proposed branch: | lp:~paul-mccullagh/maria/bug-422550 | ||||
Merge into: | lp:~maria-captains/maria/5.1-converting | ||||
Diff against target: | None lines | ||||
To merge this branch: | bzr merge lp:~paul-mccullagh/maria/bug-422550 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Kristian Nielsen | Approve | ||
Review via email: mp+11076@code.launchpad.net |
To post a comment you must log in.
This patch fixes the bug reported and a few variations along the same lines.
The problem is that PBXT starts a background process to do recovery, when the engine is initialized.
The background process is necessary because MySQL holds internal locks during the init() engine call that prevent the engine from creating a MySQL THD object. PBXT needs the THD object in order to open tables, that are referenced during recovery.
If MySQL shuts down immediately after init(), due to some error, then the background recovery process must be cleaned up before the engine is de-initialized. This was the main source of the crash.
Other related crashes occur because it sometimes happens that when the background process frees up the THD, this cause the engine to be de-initialized (because the THD had the last reference to the engine). This callback situation needed to be handled correctly.