Opened 11 years ago

Last modified 10 years ago

#21597 closed Bug

(2006, 'MySQL server has gone away') in django1.6 when wait_timeout passed — at Initial Version

Reported by: ekeydar@… Owned by: nobody
Component: Database layer (models, ORM) Version: 1.6
Severity: Normal Keywords: mysql
Cc: Tim Graham, victorgama, markus.magnuson@… Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: yes
Easy pickings: no UI/UX: no

Description

In django 1.6, when the wait_timeout passed (of mysql), then DB access cause the (2006, 'MySQL server has gone away') error.
This was not the case in django 1.5.1

I've noticed this error when using workers that run the django code (using gearman).

To reproduce:

Set the timeout to low value by editing /etc/mysql/my.cnf
add the following under [mysqld]

wait_timeout = 10
interactive_timeout = 10

Then
% python manage.py shell

# access DB
import django.contrib.auth.models
print list(django.contrib.auth.models.User.objects.all())
import time
time.sleep(15)
print list(django.contrib.auth.models.User.objects.all())

Now you get the error.

Simple solution I found on the web is to call django.db.close_connection() before the access

import django.db
django.db.close_connection()
print list(django.contrib.auth.models.User.objects.all())

works ok.

Change History (1)

by anonymous, 11 years ago

Attachment: error.txt added
Note: See TracTickets for help on using tickets.
Back to Top