Bug #22009 Can write to a read-only server under some circumstances
| Submitted: | 5 Sep 2006 9:24 | Modified: | 18 Jan 2007 18:04 |
|---|---|---|---|
| Reporter: | Tobias Asplund | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Locking | Severity: | S3 (Non-critical) |
| Version: | 5.0.24 | OS: | Max OS X |
| Assigned to: | Marc ALFF | CPU Architecture: | Any |
[5 Sep 2006 9:24]
Tobias Asplund
[5 Sep 2006 16:52]
Sveta Smirnova
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://dev.mysql.com/doc/ and the instructions on how to report a bug at http://bugs.mysql.com/how-to-report.php Please, read carefull about when changes of global variable will take effect at http://dev.mysql.com/doc/refman/5.0/en/set-option.html
[6 Sep 2006 8:43]
Sveta Smirnova
Thank you for the report. Verified as described on Linux using last BK sources.
[13 Sep 2006 20:10]
Marc ALFF
The issue found is very closely related to the findings of Bug#11733. Investigating if the fix for 11733 address the use case described here.
[11 Nov 2006 3:18]
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/15174 ChangeSet@1.2344, 2006-11-10 20:17:44-07:00, malff@weblab.(none) +8 -0 WL#3602 (SET GLOBAL READONLY) Bug#11733 (COMMITs should not happen if read-only is set) Bug#22009 (Can write to a read-only server under some circumstances) See the work log for details The change consist of a) acquiring the global read lock in SET GLOBAL READONLY b) honoring opt_readonly in ha_commit_trans(), c) honoring opt_readonly in mysql_lock_tables(). a) takes care of the server stability, b) makes the transactional tables safe (Bug 11733) c) makes the non transactional tables safe (Bug 22009)
[11 Nov 2006 3:25]
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/15175 ChangeSet@1.2344, 2006-11-10 19:53:41-07:00, malff@weblab.(none) +8 -0 WL#3602 (SET GLOBAL READONLY) Bug#11733 (COMMITs should not happen if read-only is set) Bug#22009 (Can write to a read-only server under some circumstances) See the work log for details The change consist of [1] acquiring the global read lock in SET GLOBAL READONLY [2] honoring opt_readonly in ha_commit_trans(), [3] honoring opt_readonly in mysql_lock_tables(). [1] takes care of the server stability, [2] makes the transactional tables safe (Bug 11733) [3] makes the non transactional tables safe (Bug 22009)
[21 Nov 2006 3:41]
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/15596 ChangeSet@1.2344, 2006-11-20 20:40:35-07:00, malff@weblab.(none) +8 -0 WL#3602 (SET GLOBAL READONLY) Bug#11733 (COMMITs should not happen if read-only is set) Bug#22009 (Can write to a read-only server under some circumstances) See the work log for details The change consist of a) acquiring the global read lock in SET GLOBAL READONLY b) honoring opt_readonly in ha_commit_trans(), c) honoring opt_readonly in mysql_lock_tables(). a) takes care of the server stability, b) makes the transactional tables safe (Bug 11733) c) makes the non transactional tables safe (Bug 22009)
[18 Jan 2007 15:52]
Paul DuBois
Noted in 5.1.15 changelog.
Incompatible change: The following conditions apply to
enabling the read_only system variable:
+ If you attempt to enable read_only while you have
any explicit locks (acquired with LOCK TABLES or
have a pending transaction, an error will occur.
+ If other clients hold explicit table locks or have
pending transactions, the attempt to enable
read_only blocks until the locks are released and
the transactions end. While the attempt to enable
read_only is pending, requests by other clients for
table locks or to begin transactions also block
until read_only has been set.
+ read_only can be enabled while you hold a global
read lock (acquired with FLUSH TABLES WITH READ
LOCK) because that does not involve table locks.
This means that the following sequence of statements
can be used to place a server in read-only state
prior to performing a backup:
FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;
UNLOCK TABLES;
Previously, the attempt to enable read_only would return
immediately even if explicit locks or transactions were
pending, so some data changes could occur for statements
executing in the server at the same time.
I am returning the report to Patch Pending status in case the
change will also be made to 5.0. If not, please close the report.
[18 Jan 2007 18:04]
Marc ALFF
This fix introduce some incompatible changes in the behavior of SET GLOBAL READ_ONLY, which now can block instead of returning immediately. As a result, this fix is currently for 5.1 only, and is not planned for 5.0. Closing the report, please re-open if this needs to be re-evaluated.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.087 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.