[MDEV-378] myisam-repair-options DEFAULT or FORCE do not work for mysql.proc table Created: 2012-07-02 Updated: 2015-01-30 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - MyISAM |
| Affects Version/s: | 5.5.25, 5.5 |
| Fix Version/s: | 5.5 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Elena Stepanova | Assignee: | Sergei Golubchik |
| Resolution: | Unresolved | Votes: | 2 |
| Labels: | upstream, verified | ||
| Description |
|
Also filed as http://bugs.mysql.com/bug.php?id=65786. If mysql.proc table was open before server crash, then after recovery the next attempts to execute procedure-related DDL cause error 145 (Table './mysql/proc' is marked as crashed and should be repaired). It happens with myisam-recover-options = DEFAULT as well as with FORCE. On 5.1-based versions, even the first DDL statement would succeed (with warnings). On 5.5, neither the first nor subsequent statements work, until the table is accessed explicitly, via CHECK, SHOW CREATE, SELECT etc. Output of the provided test case:
bzr version-info
Also reproducible on MySQL 5.5/5.6. Test case:
|
| Comments |
| Comment by Dreas van Donselaar [ 2015-01-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
We experience this bug randomly almost on a daily basis (we manage a very large amount of MariaDB servers). We have build a separate system to automatically fix the table (e.g. mysqlcheck --auto-repair --all-databases -F does manage to fix it), so it's not always easy to collect useful data. We did get a copy of mysql.proc in a crashed state but it does auto-repair in our testing environment. Although less frequently, procs_priv also appears affected sometimes. Any information that can help to solve this, please let me know and I try to get it. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2015-01-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Did you consider upgrading to 10.0? It seems to be fixed there somehow (I'm running tests to find out what exactly fixed it) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2015-01-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The test case doesn't fail on 10.0. I found the patch which fixes at least the part of the problem revealed by the test case from the description:
Here is the patch itself:
I applied it to 5.5 tree (locally of course), the test doesn't fail with the patch. However, I'm not sure if it's a generic solution – apparently it won't fix problems with other tables which, as dreas reported on IRC, are also observed on their servers. serg, what do you think – should we apply the patch to 5.5? Is it safe, is it good, is it going to help in real-life scenarios? |