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