Author: woozle
Description:
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).
Version: 1.17.x
Severity: blocker
OS: Linux
Platform: PC