Загадочная ошибка Apache Django WSGI - PullRequest
1 голос
/ 29 июня 2011

Я запускаю приложение django на apache с mod_wsgi. Журнал ошибок apache чист, за исключением одной загадочной ошибки.

Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method SharedSocket.__del__ of <httplib.SharedSocket instance at 0x82fb138c>> ignored

Я понимаю, что это означает, что некоторый код пытается вызвать SharedSocket. del , но это None. Я понятия не имею, в чем причина этого, или как это исправить. Также эта ошибка помечается как игнорируемая. Это также, по-видимому, не вызывает никаких реальных проблем, кроме заполнения файла журнала сообщениями об ошибках. Должен ли я даже пытаться исправить это?

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Вполне вероятно, что это происходит потому, что при обработке исключения в деструкторе уничтожаемого объекта возникает еще одно исключение, и последнее исключение не может быть вызвано из-за состояния ожидания. В Python C API подробности об этом могут быть записаны непосредственно в журнал ошибок с помощью PyErr_WriteUnraisable ().

Таким образом, дело не в том, что метод del равен None, а в некоторой переменной, которую он пытается использовать из кода, выполняемого в методе del, - None. Вам нужно будет взглянуть на код SharedSocket.del, чтобы точно понять, что происходит.

0 голосов
/ 29 июня 2011

Примечание: это скорее указатель, чем ответ, но я не смог заставить это работать в комментарии.

Я немного погуглил сообщение об ошибке , и, похоже, существует группа связанных проблем, возникающих в средах Apache + mod_wsgi + MySQL. Причиной может быть то, что у вас заканчиваются одновременные подключения к MySQL из-за пула процессов, при этом каждый процесс поддерживает открытое соединение с сервером БД. Есть также указания на то, что в многопоточной среде может использоваться некоторый код, не поддерживающий потоки. Удачи.

...