[Django] #35773: Error importing HeaderWriteError from email.errors after upgrading to Django 4.2.16

5 views
Skip to first unread message

Django

unread,
Sep 18, 2024, 8:54:45 AM9/18/24
to django-...@googlegroups.com
#35773: Error importing HeaderWriteError from email.errors after upgrading to
Django 4.2.16
----------------------------------+---------------------------------------
Reporter: Muzaffar Omer | Type: Bug
Status: new | Component: Core (Mail)
Version: 4.2 | Severity: Normal
Keywords: HeaderWriteError | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+---------------------------------------
Hello,

Recently, we upgraded to Django 4.2.16. One of the servers crashed with
the below error:

{{{
gunicorn[1014232]: [18/Sep/2024
10:58:11][common.services.pandora_service._user_access_token:187][Root=1-66ea9623-5aee4eae0266bcd41a3a1159][DEBUG]
Token retrieved in : 9.248 ms
gunicorn[1182738]: [2024-09-18 08:58:11 +0000] [1182738] [ERROR] Exception
in worker process
gunicorn[1182738]: Traceback (most recent call last):
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/arbiter.py", line 609, in spawn_worker
gunicorn[1182738]: worker.init_process()
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/workers/ggevent.py", line 147, in init_process
gunicorn[1182738]: super().init_process()
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/workers/base.py", line 134, in init_process
gunicorn[1182738]: self.load_wsgi()
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/workers/base.py", line 146, in load_wsgi
gunicorn[1182738]: self.wsgi = self.app.wsgi()
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/app/base.py", line 67, in wsgi
gunicorn[1182738]: self.callable = self.load()
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/app/wsgiapp.py", line 58, in load
gunicorn[1182738]: return self.load_wsgiapp()
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
gunicorn[1182738]: return util.import_app(self.app_uri)
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/gunicorn/util.py", line 371, in import_app
gunicorn[1182738]: mod = importlib.import_module(module)
gunicorn[1182738]: File "/usr/lib/python3.8/importlib/__init__.py", line
127, in import_module
gunicorn[1182738]: return _bootstrap._gcd_import(name[level:],
package, level)
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 1014, in
_gcd_import
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 991, in
_find_and_load
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 961, in
_find_and_load_unlocked
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 219, in
_call_with_frames_removed
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 1014, in
_gcd_import
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 991, in
_find_and_load
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 975, in
_find_and_load_unlocked
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 671, in
_load_unlocked
gunicorn[1182738]: File "<frozen importlib._bootstrap_external>", line
848, in exec_module
gunicorn[1182738]: File "<frozen importlib._bootstrap>", line 219, in
_call_with_frames_removed
gunicorn[1182738]: File "/opt/cloud/current/pix4uav/pix4d/__init__.py",
line 3, in <module>
gunicorn[1182738]: from .celery import app as celery_app # noqa
gunicorn[1182738]: File "/opt/cloud/current/pix4uav/pix4d/celery.py",
line 16, in <module>
gunicorn[1182738]: from .settings.sentry import before_send
gunicorn[1182738]: File
"/opt/cloud/current/pix4uav/pix4d/settings/sentry.py", line 5, in <module>
gunicorn[1182738]: from sentry_sdk.integrations.django import
DjangoIntegration
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/sentry_sdk/integrations/django/__init__.py", line 61, in <module>
gunicorn[1182738]: from sentry_sdk.integrations.django.middleware
import patch_django_middlewares
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/sentry_sdk/integrations/django/middleware.py", line 38, in
<module>
gunicorn[1182738]: from .asgi import _asgi_middleware_mixin_factory
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/sentry_sdk/integrations/django/asgi.py", line 13, in <module>
gunicorn[1182738]: from django.core.handlers.wsgi import WSGIRequest
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/django/core/handlers/wsgi.py", line 5, in <module>
gunicorn[1182738]: from django.core.handlers import base
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/django/core/handlers/base.py", line 12, in <module>
gunicorn[1182738]: from django.utils.log import log_response
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/django/utils/log.py", line 6, in <module>
gunicorn[1182738]: from django.core import mail
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/django/core/mail/__init__.py", line 10, in <module>
gunicorn[1182738]: from django.core.mail.message import (
gunicorn[1182738]: File
"/opt/cloud/releases/20240913T095509/.venv/lib/python3.8/site-
packages/django/core/mail/message.py", line 4, in <module>
gunicorn[1182738]: from email import generator, message_from_string
gunicorn[1182738]: File "/usr/lib/python3.8/email/generator.py", line
17, in <module>
gunicorn[1182738]: from email.errors import HeaderWriteError
gunicorn[1182738]: ImportError: cannot import name 'HeaderWriteError' from
'email.errors' (/usr/lib/python3.8/email/errors.py)
gunicorn[1182738]: [2024-09-18 08:58:11 +0000] [1182738] [INFO] Worker
exiting (pid: 1182738)
gunicorn[1014225]: [2024-09-18 08:58:11 +0000] [1014225] [ERROR] Worker
(pid:1182738) exited with code 3
gunicorn[1014228]: [2024-09-18 10:58:12 +0200] [1014228] [INFO] Worker
exiting (pid: 1014228)
gunicorn[1014235]: [2024-09-18 10:58:12 +0200] [1014235] [INFO] Worker
exiting (pid: 1014235)
gunicorn[1014232]: [2024-09-18 10:58:12 +0200] [1014232] [INFO] Worker
exiting (pid: 1014232)
gunicorn[1014229]: [2024-09-18 10:58:12 +0200] [1014229] [INFO] Worker
exiting (pid: 1014229)
gunicorn[1014225]: [2024-09-18 08:58:17 +0000] [1014225] [ERROR] Shutting
down: Master
gunicorn[1014225]: [2024-09-18 08:58:17 +0000] [1014225] [ERROR] Reason:
Worker failed to boot.
systemd[1]: gunicorn.service: Main process exited, code=exited,
status=3/NOTIMPLEMENTED
systemd[1]: gunicorn.service: Failed with result 'exit-code'.
}}}

The error seems related to https://github.com/python/cpython/issues/124170
and
https://github.com/django/django/commit/bf4888d317ba4506d091eeac6e8b4f1fcc731199.

Below are the versions we use:
- Django: 4.2.16
- Python: 3.8.10
- Gunicorn: 22.0.0

Thank you!
--
Ticket URL: <https://code.djangoproject.com/ticket/35773>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Sep 18, 2024, 9:09:24 AM9/18/24
to django-...@googlegroups.com
#35773: Error importing HeaderWriteError from email.errors after upgrading to
Django 4.2.16
----------------------------------+--------------------------------------
Reporter: Muzaffar Omer | Owner: (none)
Type: Bug | Status: closed
Component: Core (Mail) | Version: 4.2
Severity: Normal | Resolution: invalid
Keywords: HeaderWriteError | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+--------------------------------------
Changes (by Tim Graham):

* resolution: => invalid
* status: new => closed

Comment:

This isn't a support channel. Please use this ticket tracker for reporting
bugs in Django. The stacktrace does not suggest Django is at fault, and I
don't see how the Django commit you referenced could be relevant.
--
Ticket URL: <https://code.djangoproject.com/ticket/35773#comment:1>

Django

unread,
Sep 18, 2024, 9:22:12 AM9/18/24
to django-...@googlegroups.com
#35773: Error importing HeaderWriteError from email.errors after upgrading to
Django 4.2.16
----------------------------------+--------------------------------------
Reporter: Muzaffar Omer | Owner: (none)
Type: Bug | Status: closed
Component: Core (Mail) | Version: 4.2
Severity: Normal | Resolution: invalid
Keywords: HeaderWriteError | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+--------------------------------------
Comment (by Muzaffar Omer):

Thank you for the quick response. And sorry if it's the wrong place to
report the issue.
--
Ticket URL: <https://code.djangoproject.com/ticket/35773#comment:2>
Reply all
Reply to author
Forward
0 new messages