﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
19918	select_for_update runs on db_for_read rather than db_for_write	alexandruioan.cucu@…	Ioan Alexandru Cucu	"Discussion on the developer group: https://groups.google.com/forum/?fromgroups=#!topic/django-developers/38gWxf5qfxg

This bug is quite easy to reproduce if you use mysql with a master-slave replication setup and start the slave db with a --read-only flag:

{{{
Traceback:
File ""/home/kux/workspace/src/other/django/django/core/handlers/base.py"" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File ""/home/kux/workspace/src/other/django/django/contrib/admin/options.py"" in wrapper
  366.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File ""/home/kux/workspace/src/other/django/django/utils/decorators.py"" in _wrapped_view
  91.                     response = view_func(request, *args, **kwargs)
File ""/home/kux/workspace/src/other/django/django/views/decorators/cache.py"" in _wrapped_view_func
  89.         response = view_func(request, *args, **kwargs)
File ""/home/kux/workspace/src/other/django/django/contrib/admin/sites.py"" in inner
  196.             return view(request, *args, **kwargs)
File ""/home/kux/workspace/src/other/django/django/db/transaction.py"" in inner
  209.                 return func(*args, **kwargs)
File ""/home/kux/workspace/src/other/django-cms/cms/admin/pageadmin.py"" in wrap
  154.             Page.objects.select_for_update()
File ""/home/kux/workspace/src/other/django/django/db/models/query.py"" in exists
  562.             return self.query.has_results(using=self.db)
File ""/home/kux/workspace/src/other/django/django/db/models/sql/query.py"" in has_results
  441.         return bool(compiler.execute_sql(SINGLE))
File ""/home/kux/workspace/src/other/django/django/db/models/sql/compiler.py"" in execute_sql
  818.         cursor.execute(sql, params)
File ""/home/kux/workspace/src/other/django/django/db/backends/util.py"" in execute
  40.             return self.cursor.execute(sql, params)
File ""/home/kux/workspace/src/other/django/django/db/backends/mysql/base.py"" in execute
  114.             return self.cursor.execute(query, args)
File ""/home/kux/workspace/envs/hb23/local/lib/python2.7/site-packages/MySQLdb/cursors.py"" in execute
  174.             self.errorhandler(self, exc, value)
File ""/home/kux/workspace/envs/hb23/local/lib/python2.7/site-packages/MySQLdb/connections.py"" in defaulterrorhandler
  36.     raise errorclass, errorvalue

Exception Type: DatabaseError at /admin/cms/page/add/
Exception Value: (1290, 'The MySQL server is running with the --read-only option so it cannot execute this statement')
}}}"	Bug	closed	Database layer (models, ORM)	dev	Normal	fixed			Accepted	1	0	0	0	0	0
