Last modified: 2013-09-04 11:49:35 UTC
Symptom: upon reaching the "Upgrade existing installation" stage -- my exact URL is http://woozalia.com/mw-config/index.php?page=Upgrade -- the installer hangs with a 500 error. After detailed investigation, I found that the problem occurs after the 10th iteration of DatabaseUpdater::runUpdates(). The problem seems to be that the next call to $this->output() (which is actually Maintenance::output()) in ConvertLinks::execute() writes text to the BEGINNING of the output buffer instead of to the END. This mungs the HTTP headers in a way which apparently makes Apache very unhappy. (I determined this by sending different text, which somehow changed the situation so that instead of a 500 error, I received the page as a file download -- which allowed me to see the source text that was being sent, which contained my text at the beginning -- before the HTTP headers.) This is probably a kluge, but I was able to stop the error from happening by changing the line "$f = fopen( 'php://stdout', 'w' );" to "$f = fopen( 'php://output', 'a' );". Now it gets all the way to "Populating log_search table" before hanging (at least there's no 500 error).
Fixed in r101644, thanks!
Reopening. This cause bug 32325 on PHP 5.2.6 and earlier because of PHP Bug 45303 https://bugs.php.net/bug.php?id=45303
Cleaned up in r103179, reclosing.