Исключение JSONDecodeError генерируется только после перезагрузки Apache - PullRequest
0 голосов
/ 01 апреля 2019

Я использую django-fixture-magic для создания файла фикстуры. Мой код вызывает merge-fixture, чтобы собрать это устройство из набора json файлов. Код генерирует исключение StopIteration только после перезагрузки apache с ошибкой:

JSONDecodeError at <url>
Expecting value: line 1 column 1 (char 0)

В сценарии django-fixture-magic все файлы читаются в цикле, который вызывает json.loads(file.read()), а в decoder.py из библиотеки python json возникает исключение.

Отладка с некоторыми sys.stderr.write() Я вижу, что это исключение происходит случайно в указанном файле, который может меняться при каждом запуске.

Что трудно понять, так это то, что проблема возникает не после второго запроса, а в других. Только при перезагрузке apache.

Если это поможет, следуйте конфигурационному файлу Apache:

<VirtualHost *:443>
    ServerName <url>
    ServerAlias <url>
WSGIProcessGroup nes

DocumentRoot path/to/documentroot

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

Alias /media/ path/to/media

<Directory "path/to/directory">
    Require all granted
</Directory>

SSLEngine on

SSLCertificateFile    /etc/apache2/ssl/wildcard.numec.prp.usp.cer
SSLCertificateKeyFile /etc/ssl/private/wildcard.numec.prp.usp.key
SSLCertificateChainFile /etc/apache2/ssl/ChainICPEDU.pem

WSGIScriptAlias / path/to/wsgi.py application-group=%{GLOBAL}
WSGIDaemonProcess nes lang='en_US.UTF-8' locale='en_US.UTF-8' python-home=path/to/project

Alias /static/ path/to/static

ErrorLog ${APACHE_LOG_DIR}/nes/ssl_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/nes/ssl_access.log combined

Я думаю, что это может быть проблема конфигурации Apache, потому что проблема возникает только после его перезагрузки, а не для следующих запросов. Чтобы подтвердить, что это не проблема с декодированием json, я создал сценарий, в котором есть только символы ASCII, и проблема сохраняется.

...