I just upgraded from 4.01 to 4.21 and ran into an odd problem in which perl was apparently crashing when MT rendered the dashboard for one of my blogs. I've solved the problem, but I thought I'd post an edited-down version of the log of the trouble ticket I filed with Six Apart so it will be searchable in case anybody else is seeing something similar.
-----
I just upgraded from MT 4.01 to MT 4.21: Downloaded the .gz file, extracted over the existing install, logged in to the mt/mt.cgi file and watched the upgrade. Everything seemed fine, and the blog is still on the air.
Later, I opened a browser window and went to the mt/mt.cgi file. I noticed that it wanted me to login again, even though it's supposed to remember me. Typed in my username and password, and now I get a weird page...
It has parts of my standard blog page (not the expected MT interface) such as the banner and some of the ads, and right about where my blog content would be, it has:
Page not found
Page not found - /mt/mt.cgi
The actual /mt/mt.cgi file is out there in the directory.
This turns out to be because there's no page available for a code 500 server error.
The error log adds this message every time I try to refresh the mt/mt.cgi page:
Premature end of script headers: /home/mdraughn/public_html/mt/mt.cgi
If I use a different browser, I can get the system overview dashboard OK, but when I click to switch to my blog, I get the error message.
I tried to create a second blog. It worked, and the second blog seems okay. Now I can select the second blog, navigate off the dashboard to one of the other blog back-end pages, and then switch blogs back to my main blog. The pages seem to work. I checked every page accessible from the menu bar, and all of them render okay. Only the dashboard page crashes as described above, and only on my original blog, not the one I just created.
It turns out there are lots of core.xxxxx files in the MT installation directory, about 25MB each. And if I reload the crashing dashboard page, it makes another one. I took a peek at one in a text editor, and I could make out the path to the perl program, so I assume that perl is crashing and dumping whenever the page fails.
Movable Type Customer Support recommended this: "We have previously encountered other occurrences of core dump files being created within the Movable Type installation directory, and in these other occurrences, there were indications that the core dumps were being created as a result of an unknown issue with the ImageMagick installation on the server. We would first suggest contacting your web host and asking them if they could try uninstalling all installations of ImageMagick from the server, re-install a single instance of the ImageMagick application and the Image::Magick perl module on the server, then try logging in to Movable Type again and see whether you still encounter this issue."
My hosting provider completely uninstalled the old version of ImageMagick and installed a new one. No change. Same symptom, same error log message, same core files.
So, I re-unpacked the MT 4.21 archive parallel to my movable type installation---the one I had previously overwritten with the unpacked archive---and renamed the folders so the freshly-unpacked, unmodified MT directory was not my active directory.
Ta-da. The dashboard now worked. Of course, everything else on my blog was hosed because of missing templates, plugins, etc. I had proven it was a file problem (not DB or host server) so to track it down I downloaded and diffed both directories.
The problem was in this directory:
mt/mt-static/support/uploads
Empty in the fresh install, it had a single file in it in the non-working directory tree. It looks like a JPG of user picture profile. The user in question says he didn't upload the photo. He authenticated via LiveJournal, so I'm guessing something about the LiveJournal authentication process transfers it automatically.
How and why that file blew up my blog's dashboard...I leave that to you. I'm guessing this was some manifestation of an ImageMagick bug.