Re: "*** glibc detected *** double free or corruption:" error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 10 Jan 2005 06:58:21 +0600, Raditha Dissanayake
<jabber@xxxxxxxxxxx> wrote:
> Alex Greg wrote:
> 
> >(apologies if this reaches the list twice - the first time I sent it,
> >it didn't arrive within 12 hours)
> >
> >Hi,
> >
> >Recently I migrated the front-end of our bulletin board (running
> >phpBB, patched against the recently highlight vulnerability) to a pair
> >of servers running Fedora Core 3. I compiled Apache 1.3.33 and PHP
> >4.3.10 from source. The MySQL database is running on a separate machine.
> >
> >This morning, the servers slowed down to the point that they were
> >almost completely unresponsive. After a while I managed to SSH into
> >the machines and saw that the httpd processes had grown to 35MB each
> >and were using up all the swap and RAM on the machines (they have 1GB
> >RAM, 1GB swap). I then set MaxClients to 30 and restarted Apache, but
> >the slowdown happened again:
> >
> >
> >I then checked the error log and found this:
> >
> >*** glibc detected *** double free or corruption: 0x097ec7e8 ***
> >
> >
> Quite curiously I had this same problem just yesterday and spent quite a
> bit of time scratching around trying to get it to work again. I upgraded
> all of apache, glibc and php to know avail. Though this error had been
> seen many times before by others i found nothing relevent in google. In
> my case however it turned out to be a really trivial and stupid mistake:
> I had AddModule lines for the both the PHP4 and PHP5 SO in my httpd.conf
> file.  Please check your own httpd.conf file. If not that it could also
> be conflicting extensions.

On Mon, 10 Jan 2005 06:58:21 +0600, Raditha Dissanayake
<jabber@xxxxxxxxxxx> wrote:
> Alex Greg wrote:
> 
> >(apologies if this reaches the list twice - the first time I sent it,
> >it didn't arrive within 12 hours)
> >
> >Hi,
> >
> >Recently I migrated the front-end of our bulletin board (running
> >phpBB, patched against the recently highlight vulnerability) to a pair
> >of servers running Fedora Core 3. I compiled Apache 1.3.33 and PHP
> >4.3.10 from source. The MySQL database is running on a separate machine.
> >
> >This morning, the servers slowed down to the point that they were
> >almost completely unresponsive. After a while I managed to SSH into
> >the machines and saw that the httpd processes had grown to 35MB each
> >and were using up all the swap and RAM on the machines (they have 1GB
> >RAM, 1GB swap). I then set MaxClients to 30 and restarted Apache, but
> >the slowdown happened again:
> >
> >
> >I then checked the error log and found this:
> >
> >*** glibc detected *** double free or corruption: 0x097ec7e8 ***
> >
> >
> Quite curiously I had this same problem just yesterday and spent quite a
> bit of time scratching around trying to get it to work again. I upgraded
> all of apache, glibc and php to know avail. Though this error had been
> seen many times before by others i found nothing relevent in google. In
> my case however it turned out to be a really trivial and stupid mistake:
> I had AddModule lines for the both the PHP4 and PHP5 SO in my httpd.conf
> file.  Please check your own httpd.conf file. If not that it could also
> be conflicting extensions.

Hi,


I've checked our httpd.conf files, and we're only loading PHP once:


LoadModule php4_module        libexec/libphp4.so
...
AddModule mod_php4.c


Additionally, does anyone know why the httpd processes are growing so
big? This is common under mod_perl as it caches compiled code in
memory, but PHP doesn't do this so I've no idea why the httpd
processes are in the region of 35MB each. The only application we're
running on these servers is phpBB. Possibly PHP is leaking memory?


The reason why we didn't see this on our Fedora Core 1 servers is
because the glibc on Fedora Core 3 reports these corruptions (whereas
FC1's glibc doesn't). However, we do still see the 35MB httpd
processes on Fedora Core 1. From the FC3 release notes:


   glibc
     The version of glibc provided with Fedora Core 3 performs
     additional internal sanity checks to prevent and detect data
     corruption as early as possible. By default, should corruption
     be detected, a message similar to the following will be displayed
     on standard error (or logged via syslog if stderr is not open):

     *** glibc detected *** double free or corruption: 0x0937d008 ***

     By default, the program that generated this error will also be
     killed; however, this (and whether or not an error message is
     generated) can be controlled via the MALLOC_CHECK_ environment
     variable. The following settings are supported:

           0 -- Do not generate an error message, and do not kill the program
           1 -- Generate an error message, but do not kill the program
           2 -- Do not generate an error message, but kill the program
           3 -- Generate an error message and kill the program

     Note

     If MALLOC_CHECK_ is explicitly set a value other than 0, this
     causes glibc to perform more tests that are more extensive than
     the default, and may impact performance.

     Should you have a program from a third party ISV that triggers
     these corruption checks and displays a message, you should
     file a defect report with the application's vendor, since this
     indicates a serious bug.


Any further advice would be greatly appreciated.


Regards,


-- Alex

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux