glibc 检测到...httpd:double free or damage 是什么意思?

glibc 检测到...httpd:double free or damage 是什么意思?

我正在运行一个 EC2 服务器,用来处理图像上传。我有一个 flash 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此消息意味着在其加载的模块之一中或其执行环境(库,操作系统,硬件)中存在错误。

该错误的技术解释是,httpd即使内存已被释放用于其他用途,部分进程仍保留指向内存块的指针。在这种情况下,错误被捕获,并且没有造成任何损害,因为内存块恰好没有被重新用于其他用途。但是,如果您看到此错误,则很可能在其他内存块被重新使用的情况下也会出现此错误,然后无法检测到错误。

理想情况下,您会找到一种方法来重现此错误,并向 Apache 开发团队发送错误报告(除非您认为该错误已在后续版本中修复,但对于这样的错误,很难分辨)。不幸的是,这种错误很难重现。您可能希望在 Apache 网站上搜索开发团队是否对此类错误的报告有偏好,在某个 Apache 邮件列表上询问(我不知道哪一个合适)。当然,如果错误在第三方模块或库中,您应该联系其开发团队。除非您可以重现该错误,否则没有神奇的方法可以找出它。

为了排除硬件问题,您可能需要运行内存测试。

相关内容