Bug #35732 | read-only blocks SELECT statements in InnoDB | ||
---|---|---|---|
Submitted: | 1 Apr 2008 7:51 | Modified: | 13 May 2008 20:10 |
Reporter: | Todd Farmer (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 5.1.24-bk | OS: | Any |
Assigned to: | Ramil Kalimullin | CPU Architecture: | Any |
Tags: | regression |
[1 Apr 2008 7:51]
Todd Farmer
[1 Apr 2008 7:53]
Todd Farmer
Only known workaround at this time is to enable updates (eg, disable read-only).
[1 Apr 2008 14:16]
Heikki Tuuri
The global read-only option is implemented in the MySQL layer of code. InnoDB does not know about it.
[4 Apr 2008 20:36]
Phil Hildebrand
This may help: mysql> create database test; Query OK, 1 row affected (0.01 sec) mysql> use test Database changed mysql> create table test_myisam (id int) engine=myisam; Query OK, 0 rows affected (0.01 sec) mysql> create table test_innodb (id int) engine=innodb; Query OK, 0 rows affected (0.02 sec) mysql> create user test_read_only ; Query OK, 0 rows affected (0.01 sec) mysql> grant select on test.* to 'test_read_only'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> insert into test_myisam values (1),(2),(3); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> insert into test_innodb values (1),(2),(3); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> set @@global.read_only = on; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye $ mysql -u test_read_only test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 42 Server version: 5.1.24-rc-log MySQL Enterprise Server (GPL) - Snapshot from 03-18-2008 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select * from test_myisam; +------+ | id | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.00 sec) mysql> select * from test_innodb; ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement If I put a begin statement first, then it appears to work after that, even if I disconnect, and reconnect: mysql> begin -> ; Query OK, 0 rows affected (0.00 sec) mysql> select * from test_innodb; +------+ | id | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.00 sec) mysql> quit Bye $ mysql -u test_read_only test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.1.24-rc-log MySQL Enterprise Server (GPL) - Snapshot from 03-18-2008 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select * from test_myisam; +------+ | id | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.00 sec) mysql> select * from test_innodb; +------+ | id | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.00 sec) mysql> quit Bye
[7 Apr 2008 8:35]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/44975 ChangeSet@1.2576, 2008-04-07 13:34:55+05:00, ramil@mysql.com +3 -0 Fix for bug #35732: read-only blocks SELECT statements in InnoDB Problem: SELECTs prohibited for a transactional SE in autocommit mode if read_only is set. Fix: allow them.
[7 Apr 2008 12:31]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/44989 ChangeSet@1.2576, 2008-04-07 17:31:20+05:00, ramil@mysql.com +3 -0 Fix for bug #35732: read-only blocks SELECT statements in InnoDB Problem: SELECTs prohibited for a transactional SE in autocommit mode if read_only is set. Fix: allow them.
[7 Apr 2008 19:46]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/45020 ChangeSet@1.2567, 2008-04-08 00:46:29+05:00, ramil@mysql.com +4 -0 Fix for bug #35732: read-only blocks SELECT statements in InnoDB Problem: SELECTs prohibited for a transactional SE in autocommit mode if read_only is set. Fix: allow them.
[8 Apr 2008 5:21]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/45033 ChangeSet@1.2567, 2008-04-08 10:20:58+05:00, ramil@mysql.com +4 -0 Fix for bug #35732: read-only blocks SELECT statements in InnoDB Problem: SELECTs prohibited for a transactional SE in autocommit mode if read_only is set. Fix: allow them.
[12 Apr 2008 13:33]
Jon Stephens
Questions: 1. Did this bug actually appear in a release? 2. If so, did the fix make it into 5.1.24? Thanks.
[1 May 2008 6:16]
Bugs System
Pushed into 5.1.25-rc
[1 May 2008 6:19]
Bugs System
Pushed into 6.0.6-alpha
[13 May 2008 20:10]
Paul DuBois
Noted in 5.1.24-ndb-6.3.13, 5.1.25, 6.0.6 changelogs. Enabling the read_only system variable while autocommit mode was enabled caused SELECT statements for transactional storage engines to fail.