glibc가 감지한 것은 무엇입니까? httpd: double free 또는 손상은 무엇을 의미합니까?

glibc가 감지한 것은 무엇입니까? httpd: double free 또는 손상은 무엇을 의미합니까?

이미지 업로드를 처리하는 데 사용하는 EC2 서버가 실행 중입니다. 내 로컬 디스크에서 서버로의 업로드를 처리하는 플래시 SWF가 있습니다. 약 130개의 이미지(총 약 650MB)를 업로드하는 동안 약 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이 메시지는 , 로드된 모듈 중 하나 또는 실행 환경(라이브러리, OS, 하드웨어)에 버그가 있음을 의미합니다 .

버그에 대한 기술적 설명은 httpd메모리가 이미 다른 용도로 해제되었음에도 불구하고 프로세스의 일부가 메모리 블록에 대한 포인터를 유지했다는 것입니다. 이 경우 오류가 포착되었으며 메모리 블록이 다른 용도로 재사용되지 않았기 때문에 아무런 해를 끼치지 않았습니다. 하지만 이 오류가 표시되면 메모리 블록이 재사용되는 다른 경우에 발생할 가능성이 매우 높으며 오류를 감지할 수 없습니다.

이상적으로는 이 버그를 재현할 수 있는 방법을 찾고 Apache 개발 팀에 버그 보고서를 보내는 것입니다(버그가 후속 버전에서 수정되었다고 생각하지 않는 한, 이와 같은 버그의 경우 말하기 어려울 것입니다). 불행하게도 이런 종류의 버그는 재현하기 어렵습니다. 개발 팀이 그러한 버그 보고에 대해 선호하는 경우 Apache 웹 사이트에서 검색하고 일부 Apache 메일링 리스트에 문의할 수 있습니다(어느 것이 적절한지 모르겠습니다). 물론 오류가 타사 모듈이나 라이브러리에 있는 경우 대신 해당 개발팀에 문의해야 합니다. 버그를 재현할 수 없다면 이를 알아낼 수 있는 기적의 방법은 없습니다.

하드웨어 문제를 배제하기 위해 메모리 테스트를 실행할 수도 있습니다.

관련 정보