2014-09-10 3 views
0

Эта ошибка происходит точно так же, когда logrotate запускает свою бизнес (возможно, logrotate удалил старый файл, но еще не создал новый), есть ли способ исправить это?Django OSError: не удалось записать данные

[Tue Sep 09 19:40:02 2014] [error] [client 127.0.0.1] mod_wsgi (pid=11228): Exception occurred processing WSGI script '/var/www/example.com/project/wsgi.py'. 
[Tue Sep 09 19:40:02 2014] [error] [client 127.0.0.1] OSError: failed to write data 
[Tue Sep 09 19:40:02 2014] [error] Exception ignored in: <module 'threading' from '/opt/python3/lib/python3.4/threading.py'> 
[Tue Sep 09 19:40:02 2014] [error] Traceback (most recent call last): 
[Tue Sep 09 19:40:02 2014] [error] File "/opt/python3/lib/python3.4/threading.py", line 1289, in _shutdown 
[Tue Sep 09 19:40:02 2014] [error] Exception ignored in: <module 'threading' from '/opt/python3/lib/python3.4/threading.py'> 
[Tue Sep 09 19:40:02 2014] [error] Traceback (most recent call last): 
[Tue Sep 09 19:40:02 2014] [error] File "/opt/python3/lib/python3.4/threading.py", line 1289, in _shutdown 
[Tue Sep 09 19:40:02 2014] [error]  assert tlock is not None 
[Tue Sep 09 19:40:02 2014] [error] AssertionError: 
[Tue Sep 09 19:40:02 2014] [error]  assert tlock is not None 
[Tue Sep 09 19:40:02 2014] [error] AssertionError: 
Exception ignored in: <bound method Signal._remove_receiver of <django.dispatch.dispatcher.Signal object at 0x7fd6201f86a0>> 
Traceback (most recent call last): 
    File "/opt/python3/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 276, in _remove_receiver 
NameError: name 'len' is not defined 
Exception ignored in: <bound method Signal._remove_receiver of <django.dispatch.dispatcher.Signal object at 0x7fd6204be550>> 
Traceback (most recent call last): 
    File "/opt/python3/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 276, in _remove_receiver 
NameError: name 'len' is not defined 
... 
+0

У вас есть разрешение на использование вами этого каталога? – inoks

+0

да ... chmod 777 – Bob

ответ

1

Ошибки указывают на то, что вы, вероятно, используете режим демонов mod_wsgi.

Ошибка:

OSError: failed to write data 

, скорее всего, потому что дочерний процесс работник Apache, который был проксирование в процесс демона mod_wsgi был убит в то время как ответ был по-прежнему записываются обратно из процесса демона mod_wsgi через процесс проксирования. Запуск логротата действительно может вызвать это, поскольку это приведет к тому, что процессы будут уничтожены.

Ошибка:

AssertionError: assert tlock is not None 

потому, что вы используете старую версию mod_wsgi, которая не имеет некоторые изменения в нем, чтобы приспособить, что Python Внутренности 3,4 изменения, связанные с переводчику разрушения. Вам нужно обновить mod_wsgi, чтобы избавиться от него. Само по себе это не вызывает проблемы, так как процесс все равно выходит из строя, но будет приводить к шуму в файлах журналов при каждом перезапуске или завершении работы.

Смежные вопросы