Linux – What does glibc detected …httpd: double free or corruption mean

amazon ec2glibclinux

I have an EC2 server running that I use to process image uploads. i have a flash swf that handles uploading to the server from my local disk – while uploading about 130 images (a total of about 650MB) I got the following error in my server log file after about the 45th image.

  • glibc detected /usr/sbin/httpd: double free or corruption (!prev): 0x85a6b990 **

What does this error mean?

The server has stopped responding so I will restart it. Where should I begin to find the cause of this problem?

thanks

some info –

Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6 mod_ssl/2.2.9 OpenSSL/0.9.8b configured Fedora 8

Best Answer

This message means that there is a bug either in httpd, one in of its loaded modules or in its execution environment (libraries, OS, hardware).

The technical explanation of the bug is that part of the httpd process kept a pointer to a block of memory around even though the memory had already been freed for other use. In this instance, the error was caught, and did not cause any harm, because the block of memory happened not to have been reused for something else. But if you see this error, it's very likely that it arises in other cases where the block of memory is reused, and then the error is impossible to detect.

Ideally, you would find a way to reproduce this bug, and send a bug report to the Apache development team (unless you think the bug has been fixed in a subsequent version, but for a bug like this it would be hard to tell). Unfortunately, this kind of bug is hard to reproduce. You may want to search on the Apache web site if the development team has preferences regarding the report of such bugs, ask on some Apache mailing list (I don't know which one would be appropriate). Of course, if the error is in a third-party module, or in a library, you should contact its development team instead. There is no miracle method to find this out unless you can reproduce the bug.

Just to rule out a hardware problem, you might want to run a memory test.