Environment: Django 1.4, MySQL 5.5.33 In one of my views I am consistently getting a MySQL error: OperationalError: (2006, 'MySQL server has gone away')
Traceback (most recent call last): File "C:\Python26\Lib\wsgiref\handlers.py", line 93, in run self.result = application(self.environ, self.start_response) File "C:\virtual_env\sitar_env2\lib\site-packages\django\contrib\staticfiles\handlers.py", line 67, in __call__ return self.application(environ, start_response) File "C:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\wsgi.py", line 241, in __call__ response = self.get_response(request) File "C:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py", line 191, in get_response signals.got_request_exception.send(sender=self.__class__, request=request) File "C:\virtual_env\sitar_env2\lib\site-packages\django\dispatch\dispatcher.py", line 172, in send response = receiver(signal=self, sender=sender, **named) File "C:\virtual_env\sitar_env2\lib\site-packages\django\db\__init__.py", line 62, in _rollback_on_exception transaction.rollback_unless_managed(using=conn) File "C:\virtual_env\sitar_env2\lib\site-packages\django\db\transaction.py", line 129, in rollback_unless_managed connection.rollback_unless_managed() File "C:\virtual_env\sitar_env2\lib\site-packages\django\db\backends\__init__.py", line 214, in rollback_unless_managed self._rollback() File "C:\virtual_env\sitar_env2\lib\site-packages\django\db\backends\mysql\base.py", line 404, in _rollback BaseDatabaseWrapper._rollback(self) File "C:\virtual_env\sitar_env2\lib\site-packages\django\db\backends\__init__.py", line 54, in _rollback return self.connection.rollback() OperationalError: (2006, 'MySQL server has gone away') [10/Sep/2013 10:29:11] "GET /trending/res_entry/pim/0/ HTTP/1.1" 500 59 Looking at the stack trace it didn't look like the problem was with my view. I traced through the code and the error occurs in one of the middleware methods that is executed when I redirect to another page: > c:\virtual_env\sitar_env2\cissimp\trending\views.py(67)res_management() -> q_ress = Res.objects.filter(maintenance_phase=maintenance_phase) #### Hitting the DB OK here (Pdb) > c:\virtual_env\sitar_env2\cissimp\trending\views.py(69)res_management() -> res_list = fmas.get_ress(q_ress, mode, maintenance_phase) (Pdb) > c:\virtual_env\sitar_env2\cissimp\trending\views.py(70)res_management() -> request.session['my_res_list'] = res_list (Pdb) > c:\virtual_env\sitar_env2\cissimp\trending\views.py(71)res_management() -> return redirect('/trending/res_{0}/{1}/1/'.format(mode, (Pdb) > c:\virtual_env\sitar_env2\cissimp\trending\views.py(72)res_management() -> maintenance_phase)) (Pdb) --Return-- > c:\virtual_env\sitar_env2\cissimp\trending\views.py(72)res_management()-><django....04E53470> -> maintenance_phase)) (Pdb) > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(124)get_response() -> if response is None: (Pdb) response is None False (Pdb) n > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(133)get_response() -> if hasattr(response, 'render') and callable(response.render): (Pdb) l 128 view_name = callback.__class__.__name__ + '.__call__' # If it's a class 129 raise ValueError("The view %s.%s didn't return an HttpResponse object." % (callback.__module__, view_name)) 130 131 # If the response supports deferred rendering, apply template 132 # response middleware and the render the response 133 -> if hasattr(response, 'render') and callable(response.render): 134 for middleware_method in self._template_response_middleware: 135 response = middleware_method(request, response) 136 response = response.render() 137 138 except http.Http404, e: (Pdb) n > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(183)get_response() -> urlresolvers.set_urlconf(None) (Pdb) l 178 signals.got_request_exception.send(sender=self.__class__, request=request) 179 response = self.handle_uncaught_exception(request, resolver, sys.exc_info()) 180 finally: 181 # Reset URLconf for this thread on the way out for complete 182 # isolation of request.urlconf 183 -> urlresolvers.set_urlconf(None) 184 185 try: 186 # Apply response middleware, regardless of the response 187 for middleware_method in self._response_middleware: 188 response = middleware_method(request, response) (Pdb) n > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(185)get_response() -> try: (Pdb) n > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(187)get_response() -> for middleware_method in self._response_middleware: (Pdb) n > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(188)get_response() -> response = middleware_method(request, response) (Pdb) n > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(187)get_response() -> for middleware_method in self._response_middleware: (Pdb) > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(188)get_response() -> response = middleware_method(request, response) (Pdb) > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(187)get_response() -> for middleware_method in self._response_middleware: (Pdb) > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(188)get_response() -> *response = middleware_method(request, response)* (Pdb) *DatabaseError: Database...ne away'*) > c:\virtual_env\sitar_env2\lib\site-packages\django\core\handlers\base.py(188)get_response() The interesting thing about this is that it only happens in the one view. I have tried to fix it by restarting MySQL but it didn't help. I checked the error log and there was nothing in there to indicate a problem occurred. I'm at a loss as what to do next. If anyone can make a suggestion I'd love to hear it. Thanks, /Paul -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. For more options, visit https://groups.google.com/groups/opt_out.