Что обнаружил glibc…httpd: двойное освобождение или повреждение?
У меня работает сервер EC2, который я использую для обработки загрузки изображений. У меня есть Flash SWF, который обрабатывает загрузку на сервер с моего локального диска - при загрузке около 130 изображений (в общей сложности около 650 МБ) я получил следующую ошибку в моем файле журнала сервера после примерно 45-го изображения.
- Обнаружен glibc /usr/sbin/httpd: двойное освобождение или повреждение (!prev): 0x85a6b990 **
Что означает эта ошибка?
Сервер перестал отвечать, поэтому я перезапущу его. С чего мне начать искать причину этой проблемы?
Спасибо
немного информации -
Apache / 2.2.9 (Unix) DAV / 2 PHP / 5.2.6 mod_ssl / 2.2.9 OpenSSL / 0.9.8b настроил Fedora 8
1 ответ
Это сообщение означает, что есть ошибка в httpd
один в своих загруженных модулях или в среде выполнения (библиотеки, ОС, оборудование).
Техническое объяснение ошибки заключается в том, что часть httpd
Process сохранил указатель на блок памяти, хотя память уже была освобождена для другого использования. В этом случае ошибка была обнаружена и не принесла никакого вреда, поскольку блок памяти не был повторно использован для чего-то другого. Но если вы видите эту ошибку, очень вероятно, что она возникает в других случаях, когда блок памяти используется повторно, и тогда ошибку невозможно обнаружить.
В идеале вы должны найти способ воспроизвести эту ошибку и отправить отчет об ошибке команде разработчиков Apache (если только вы не думаете, что ошибка была исправлена в следующей версии, но для такой ошибки было бы трудно сказать). К сожалению, этот тип ошибки трудно воспроизвести. Возможно, вы захотите выполнить поиск на веб-сайте Apache, если у команды разработчиков есть предпочтения относительно отчета об этих ошибках, спросите в каком-либо списке рассылки Apache (я не знаю, какой из них будет уместным). Конечно, если ошибка в стороннем модуле или в библиотеке, вам следует обратиться к его команде разработчиков. Не существует чудесного метода, чтобы выяснить это, если только вы не можете воспроизвести ошибку.
Чтобы исключить аппаратную проблему, вы можете запустить тест памяти.