I'm not sure if this is strictly an MT issue or not, but I'm not exactly sure how to start troubleshooting it. I have a server that was just upgraded to Ubuntu 8.10 (apache2-2.2.9, mod perl libapache2-mod-perl2-2.0.4-1ubuntu1, and php5). PHP pages work just fine, under high load, but my MT installs (one is 4.24, one is a very old 3.2 install) both will give blank pages about 90% of the time when going into the /mt/mt.cgi pages, or anything dynamic it seems.
In the main apache error log at /var/log/apache2/error.log I get a stream of errors.
[Mon Mar 23 11:17:37 2009] [notice] child pid 21304 exit signal Segmentation fault (11)
[Mon Mar 23 11:17:37 2009] [notice] child pid 21305 exit signal Segmentation fault (11)
[Mon Mar 23 11:17:37 2009] [notice] child pid 21306 exit signal Segmentation fault (11)
[Mon Mar 23 11:17:37 2009] [notice] child pid 21307 exit signal Segmentation fault (11)
I've tried disabling mod-perl (by removing the perl5.load from /etc/apache2/mods-enabled) with no effect. I also tried moving the I18N and Locale directories from the htdocs/mt/extlib/ directory as I saw some suggestion that maybe the upgrade from perl 5.8 (on the old server) to perl 5.10 and locale/i18n changes were at fault, but this hasn't helped either.
I created a simple perl CGI in my htdocs/cgi-bin directory and it worked and executed just fine.
The only config on the /mt directory in apache is the +ExecCGI.
Anyone have any ideas, or thoughts as to how to start troubleshooting this? The server is fairly heavily used for other sites, so I'm not able to take down apache for very long or put it in debug mode to strace a single apache process all that easily (but if someone has some instructions on how to do that, please do of course :)
Many thanks in advance.
Reported on Movable Type 4.2
The "Segmentation Fault" error message is really bad. That sounds like some native code in Perl or a C module that Perl uses is actually crashing the Perl interpreter. You're going to have dig around on your system to figure that one out. That said, AFAIK, the only Perl modules that MT uses that have native C code in them are DBI and DBD::*.
Hello Alan,
I am seeing this after an upgrade to perl 5.9. Were you able to locate a solution? Any feedback is appreciated.
Thanks.
Sadly no such luck :( Still happens all the time, my error log is full of them and while MT sometimes works fine for cgi stuff (posting, rebuilding, etc) a lot of the time I need to hit the link 5-15 times just to get it to go.
I'm not 100% sure it's caused by perl, but Narfonix at least confirms it is probably perl based. The server is under fairly high use though, so I haven't had time to properly debug it all yet. I recently got things setup on a second backup server so I'll be able to duplicate my setup and hopefully see the same issue, and then fix it.
I think I finally found the answer to this on this page: http://ubuntuforums.org/showthread.php?t=1082709 Seems by default Ubuntu is configured with fs.epoll.max_user_instances set to 128, which, if I read http://www.mail-archive.com/fedora-kernel-list@redhat.com/msg01618.html correctly, means that apache can only have 128 child processes. As my server was configured with 150, in theory the extra processes would (depending on the behavior of apps hitting the limit) segfault.
All I know is I changed the setting as per the first link, and no more segfaults!!!