В последнее время я сталкиваюсь с довольно странной проблемой. Мой бэкэнд имеет httpd + mod wsgi + Django setup.
У меня есть представление на основе классов следующим образом:
class ExtrasView(View):
def get(self, request):
path = settings.BASE_DIR + "/data.json"
with open(path, encoding='utf-8') as f:
data = json.loads(f.read())
return JsonResponse(data)
Запрос на получение в представлении выше работает отлично 9 из 10 раз. Однако случайным образом это представление даст ответ со статусом 500. На основании журнала apache кажется, что длина тела ответа правильная, то есть длина данных в файле. Это подтверждается apache журналами доступа.
У кого-нибудь есть идеи, почему это может происходить? Я проверил журналы ошибок, и в журнале ошибок ничего нет. Журнал ошибок выводит обратные вызовы в случае исключений или других синтаксических ошибок, просто в этом случае он ничего не печатает, поэтому я ничего не понимаю. Само собой разумеется, что читаемый файл является файлом c, который существует на 100%.
Данные в файле огромны, его длина составляет около 30-40 тыс. Символов. Это вызвало бы проблему? Если да, то почему это работает 9 из 10 раз?
Любые комментарии приветствуются.