Прерывистая ошибка сервера в Django после обновления до MySQL 8

После обновления до MySQL 8 и сохранения всего остального в проекте Django я получаю периодическую ошибку сервера, которая, похоже, как-то связана с пакетом cookiebanner, который я использовал без проблем в течение нескольких лет - https://github.com/sinnwerkstatt/django-cookiebanner

Новичок здесь - здравствуйте - надеюсь, я размещаю это в правильном месте. И надеюсь, что здесь есть нужная информация, чтобы эта тема была полезной.

Согласно журналу доступа, это, похоже, произошло из-за этого запроса:

78.198.210.145 - - [08/Mar/2025:05:48:19 +0000] "GET /podcasts/helga-schubert-story-distance-fragments/ HTTP/1.1" 500 1173 "https://www.google.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15" "78.198.210.145" response-time=0.020

Вскоре после этого я проверил тот же URL и получил 200:

146.199.51.170 - - [08/Mar/2025:10:20:56 +0000] "GET /podcasts/helga-schubert-story-distance-fragments HTTP/1.1" 301 0 "https://www.fictionable.world/podcast_front.html" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:135.0) Gecko/20100101 Firefox/135.0" "146.199.51.170" response-time=0.001
146.199.51.170 - - [08/Mar/2025:10:20:56 +0000] "GET /podcasts/helga-schubert-story-distance-fragments/ HTTP/1.1" 200 8051 "https://www.fictionable.world/podcast_front.html" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:135.0) Gecko/20100101 Firefox/135.0" "146.199.51.170" response-time=0.017

Шаблон этой страницы вызывает тег из пакета cookiebanner. Вот верхняя часть базового шаблона с вызовом cookiebanner:

<!DOCTYPE html>
<html lang="en" ontouchmove>
    <head>
        {% load static %}
        {% load cookiebanner %}
        {% block styles_content %}
        {% endblock styles_content %}
        {% cookie_accepted 'analytics' as cookie_analytics %}
        {% if cookie_analytics %}
        <!-- Global site tag (gtag.js) - Google Analytics -->
        <script async src="https://www.googletagmanager.com/gtag/js?id=XXX"></script>
        <script>
            window.dataLayer = window.dataLayer || [];
            function gtag(){dataLayer.push(arguments);}
            gtag('js', new Date());
            
            gtag('config', 'XXX');
        </script>
        {% endif %}
[CONTINUES]

Это тег {% cookie_accepted 'analytics' as cookie_analytics %}, который вызывает cookie_accepted cookie_accepted из пакета cookie_accepted cookiebanner allowed_cookies = context["request"].COOKIES.get("cookiebanner") - пакета,

который я использую без проблем уже несколько лет. Вот код, определяющий <<<4>>> с той строкой <<<5>>>, которая, похоже, вызывает исключение:<<<6>>>
@register.simple_tag(takes_context=True)
def cookie_accepted(context, cookie_group):
    allowed_cookies = context["request"].COOKIES.get("cookiebanner")
    if not allowed_cookies:
        return False
    return cookie_group in unquote(allowed_cookies).split(",")

Вот требования.txt для всех пакетов:

asgiref==3.5.0
dj-database-url==0.5.0
Django==3.2.12
gunicorn==20.1.0
pytz==2021.3
sqlparse==0.4.2
whitenoise==6.0.0
django-cookiebanner==0.2.5
mysqlclient==2.1.0
stripe==2.73.0
dj-stripe==2.6.1

Но, похоже, это не ограничивается страницами с шаблонами, включающими этот тег cookiebanner. Например, я получаю периодические ошибки сервера на сайте администратора, который просто использует шаблоны Django по умолчанию.

Эта периодически возникающая ошибка, похоже, относится к тому времени, когда я попытался обновить Django 4.2. Это потребовало от меня обновления до MySQL 8. Обновление до Django 4 не сработало, поэтому я откатил все до версий, указанных выше.

Но после того, как я откатил все назад, я начал получать эту периодическую ошибку.

Так что я в недоумении:

  • почему контекст для построения этого шаблона (иногда) не включает запрос, который ожидает пакет cookibanner
  • почему тот же код, который работал до обновления до MySQL 8, теперь выдает ошибку, которая, похоже, связана с пакетом cookiebanner, который я без проблем использую уже несколько лет
  • почему тот же запрос для того же URL выдает keyerror в 5: 48 утра, а не в 10:20 утра
  • почему админский сайт, который вообще не использует теги cookiebanner, также выдает периодические ошибки

Подскажите, если я упустил какую-то важную информацию, или если есть другое место, где мне следовало бы разместить подобную тему. Любые мысли будут приняты с благодарностью.

Вернуться на верх