[GH-ISSUE #843] Mysql has gone away #751

Closed
opened 2026-02-27 11:13:22 +03:00 by kerem · 4 comments
Owner

Originally created by @Toniob on GitHub (Mar 9, 2016).
Original GitHub issue: https://github.com/modoboa/modoboa/issues/843

With a fresh installation of modoboa 1.4.4, I've got the following error message while browsing throught modoboa

Traceback (most recent call last):
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 170, in call
self.load_middleware()
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 52, in load_middleware
mw_instance = mw_class()
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in init
for url_pattern in get_resolver(None).url_patterns:
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 401, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 395, in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "./modoboa_website/urls.py", line 5, in
url(r'', include('modoboa.urls')),
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/conf/urls/init.py", line 33, in include
urlconf_module = import_module(urlconf_module)
File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/urls.py", line 31, in
parameters.apply_to_django_settings()
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 370, in apply_to_django_settings
for form in get_admin_forms():
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 337, in get_admin_forms
"form": formdef["form"](*args, **kwargs)}
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/core/app_settings.py", line 261, in init
super(GeneralParametersForm, self).init(_args, *_kwargs)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 62, in init
self._load_initial_values()
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 96, in load_initial_values
if not db_utils.db_table_exists("lib_parameter"):
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/db_utils.py", line 12, in db_table_exists
return table in connection.introspection.table_names()
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 57, in table_names
return get_names(cursor)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 53, in get_names
return sorted(ti.name for ti in self.get_table_list(cursor)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/mysql/introspection.py", line 48, in get_table_list
cursor.execute("SHOW FULL TABLES")
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/utils.py", line 98, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
return self.cursor.execute(query, args)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
self.errorhandler(self, exc, value)
File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
django.db.utils.OperationalError: (2006, 'MySQL server has gone away')
webmail.website.com [pid: 23555|app: 0|req: 2/25] ::1 () {46 vars in 902 bytes} [Wed Mar 9 10:01:03 2016] GET /admin/domains/list/?
=1457514070133 => generated 0 bytes in 5 msecs (HTTP/2.0 500) 0 headers in 0 bytes (0 switches on core 0)

I've tried using tcp or unix socket connection to mysql. I've got the same issue. If I keep trying or reloading, the request succeeds, but it may take 5 to 6 tries.
Here are the versions used in my virtualenv (on a debian 8.3)

argparse (1.2.1)
dj-database-url (0.4.0)
Django (1.8.11)
django-passwords (0.3.4)
django-reversion (1.9.3)
django-subcommand2 (0.1.1)
django-versionfield2 (0.4.0)
django-xforwardedfor-middleware (1.0)
djangorestframework (3.3.1)
factory-boy (2.6.1)
fake-factory (0.5.6)
ipaddress (1.0.16)
LEPL (5.1.3)
modoboa (1.4.4)
MySQL-python (1.2.5)
passlib (1.6.5)
pip (1.5.6)
progressbar (2.3)
pycrypto (2.6.1)
python-dateutil (2.5.0)
requests (2.9.1)
rfc6266 (0.0.4)
setuptools (5.5.1)
six (1.10.0)
wsgiref (0.1.2)

Originally created by @Toniob on GitHub (Mar 9, 2016). Original GitHub issue: https://github.com/modoboa/modoboa/issues/843 With a fresh installation of modoboa 1.4.4, I've got the following error message while browsing throught modoboa Traceback (most recent call last): File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 170, in **call** self.load_middleware() File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 52, in load_middleware mw_instance = mw_class() File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in **init** for url_pattern in get_resolver(None).url_patterns: File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 401, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 395, in urlconf_module self._urlconf_module = import_module(self.urlconf_name) File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module **import**(name) File "./modoboa_website/urls.py", line 5, in <module> url(r'', include('modoboa.urls')), File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/conf/urls/**init**.py", line 33, in include urlconf_module = import_module(urlconf_module) File "/usr/lib/python2.7/importlib/**init**.py", line 37, in import_module **import**(name) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/urls.py", line 31, in <module> parameters.apply_to_django_settings() File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 370, in apply_to_django_settings for form in get_admin_forms(): File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 337, in get_admin_forms "form": formdef["form"](*args, **kwargs)} File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/core/app_settings.py", line 261, in **init** super(GeneralParametersForm, self).**init**(_args, *_kwargs) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 62, in **init** self._load_initial_values() File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/parameters.py", line 96, in _load_initial_values if not db_utils.db_table_exists("lib_parameter"): File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/modoboa/lib/db_utils.py", line 12, in db_table_exists return table in connection.introspection.table_names() File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 57, in table_names return get_names(cursor) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py", line 53, in get_names return sorted(ti.name for ti in self.get_table_list(cursor) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/mysql/introspection.py", line 48, in get_table_list cursor.execute("SHOW FULL TABLES") File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/utils.py", line 98, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute return self.cursor.execute(sql) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute return self.cursor.execute(query, args) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute self.errorhandler(self, exc, value) File "/srv/www/website.com/webmail/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue django.db.utils.OperationalError: (2006, 'MySQL server has gone away') webmail.website.com [pid: 23555|app: 0|req: 2/25] ::1 () {46 vars in 902 bytes} [Wed Mar 9 10:01:03 2016] GET /admin/domains/list/?_=1457514070133 => generated 0 bytes in 5 msecs (HTTP/2.0 500) 0 headers in 0 bytes (0 switches on core 0) I've tried using tcp or unix socket connection to mysql. I've got the same issue. If I keep trying or reloading, the request succeeds, but it may take 5 to 6 tries. Here are the versions used in my virtualenv (on a debian 8.3) argparse (1.2.1) dj-database-url (0.4.0) Django (1.8.11) django-passwords (0.3.4) django-reversion (1.9.3) django-subcommand2 (0.1.1) django-versionfield2 (0.4.0) django-xforwardedfor-middleware (1.0) djangorestframework (3.3.1) factory-boy (2.6.1) fake-factory (0.5.6) ipaddress (1.0.16) LEPL (5.1.3) modoboa (1.4.4) MySQL-python (1.2.5) passlib (1.6.5) pip (1.5.6) progressbar (2.3) pycrypto (2.6.1) python-dateutil (2.5.0) requests (2.9.1) rfc6266 (0.0.4) setuptools (5.5.1) six (1.10.0) wsgiref (0.1.2)
kerem closed this issue 2026-02-27 11:13:22 +03:00
Author
Owner

@gawel commented on GitHub (Mar 9, 2016):

Got the same problem here. We fixed that by adding 'CONN_MAX_AGE': 0 in the DATABASES section of the settings.py and switching to the waitress wsgi server (gunicorn failed silently). Weird bug indeed.

<!-- gh-comment-id:194196797 --> @gawel commented on GitHub (Mar 9, 2016): Got the same problem here. We fixed that by adding 'CONN_MAX_AGE': 0 in the DATABASES section of the settings.py and switching to the waitress wsgi server (gunicorn failed silently). Weird bug indeed.
Author
Owner

@tonioo commented on GitHub (Mar 9, 2016):

Could you also try to force a TCP connection to the mysql server ? Set HOST and PORT for default connection inside settings.py

<!-- gh-comment-id:194215330 --> @tonioo commented on GitHub (Mar 9, 2016): Could you also try to force a TCP connection to the mysql server ? Set HOST and PORT for default connection inside settings.py
Author
Owner

@Toniob commented on GitHub (Mar 9, 2016):

@tonioo : unix socket or tcp connection, same result !

<!-- gh-comment-id:194223536 --> @Toniob commented on GitHub (Mar 9, 2016): @tonioo : unix socket or tcp connection, same result !
Author
Owner

@tonioo commented on GitHub (May 1, 2016):

@Toniob Hi, any news about this issue ?

<!-- gh-comment-id:216039837 --> @tonioo commented on GitHub (May 1, 2016): @Toniob Hi, any news about this issue ?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/modoboa-modoboa#751
No description provided.