[MDEV-14056] DROP TEMPORARY TABLE IF EXISTS causes error 1290 with read_only option Created: 2017-10-12 Updated: 2017-10-17 Resolved: 2017-10-17 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Server |
| Affects Version/s: | 5.5, 10.0, 10.1, 10.1.28, 10.2 |
| Fix Version/s: | 5.5.58, 10.0.33, 10.1.29, 10.2.10 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Mark Peter | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
CentOS 6 |
||
| Description |
|
I have a replicated slave with "read_only=1" set in my.cnf I have a user set up as follows:
If I log in as 'slave_user', I can create a temporary table, write to it, and then drop it successfully:
However, if I have not created a temporary table, and I start with:
I get the error: ERROR 1290 (HY000): The MariaDB server is running with the --read-only option so it cannot execute this statement I have countless lines of application code which always checks to make sure a temporary table is dropped before creating it to avoid an "already exists" error. Always worked on MySQL 5.6 and lower, on the exact same slave database with read_only. After upgrading to MariaDB 10.1, this problem emerged. |
| Comments |
| Comment by Elena Stepanova [ 2017-10-12 ] | |||||||||||||||||||
|
Thanks for the report. The problem appeared in 5.5.57 with this commit:
| |||||||||||||||||||
| Comment by Mark Peter [ 2017-10-12 ] | |||||||||||||||||||
|
Thank you for the acknowledgment, Elena, and also for creating the simplified test case. If a fix is made, will there likely be a patch? Or would it be included in a new 10.1 minor version? | |||||||||||||||||||
| Comment by Elena Stepanova [ 2017-10-12 ] | |||||||||||||||||||
|
As soon as the fix is made, which will hopefully happen soon, it will appear in the git repository in the lowest branch where it is fixed (I expect it to be 5.5), and will be merged up to higher versions soon afterwards; so, if you build from sources, you'll be able to take it as a patch from git. Otherwise, it will be released with every minor release which happen after the fix. |