Update Status (+cron?) breaking site after 6.13 upgrade
I was getting lots of errors after I upgraded to Drupal 6.13. The site was running a bit slow before then, but after the upgrade, it was breaking more and more.
If I tried to access the site, I got a Garland-themed Drupal error page saying:
Site off-line
The site is currently not available due to technical problems. Please try again later. Thank you for your understanding.
If you are the maintainer of this site, please check your database settings in the settings.php file and ensure that your hosting provider's database server is running. For more help, see the handbook, or contact your hosting provider.
The mysql error was: Lost connection to MySQL server at 'reading authorization packet', system error: 0.
I had just visited that same page five minutes beforehand (after I upgraded), and it worked fine.
So, I opened a different browser (IE), tried going to the site root, and got an HTTP 500 Internal Server Error.
Checking the error logs from my website, I got lots of entries like this:
[Thu Jul 02 15:02:58 2009] [error] [client 96.237.0.45] Premature end of script headers: index.php, referer: http://www.EXAMPLE.com/
[Thu Jul 02 15:02:58 2009] [error] [client 96.237.0.45] File does not exist: /home/EXAMPLE/EXAMPLE.com/internal_error.html, referer: http://www.EXAMPLE.com/
The problem seems to be with the Update Status module. I had it installed, but set to check for updates once per week. Despite this - and the fact that I had just updated - it seemed to be checking for updates each time you accessed any Drupal page. Right after I checked for updates, but before I had run update.php, I got update alerts on every page I visited. I was logged in as admin at the time.
Once I disabled the Update Status module, things seem to have gone back to normal.
Here's some more info that might help:
Looking through Drupal's logs, I saw a HUGE number of PHP errors related to Cron. Two examples:
Duplicate entry 'entered' for key 1 query: INSERT INTO search_total (word, count) VALUES ('entered', 0.29705218968957) in /home/khznoise/khznoise.com/karlheinz/modules/search/search.module on line 290.
Duplicate entry '99-help' for key 1 query: INSERT INTO search_dataset (sid, type, data, reindex) VALUES (99, 'help', ' node rss item row style this row style is only available to rss styles it produces xml necessary for an rss feed for the node record ', 0) in /home/khznoise/khznoise.com/karlheinz/modules/search/search.module on line 571.
These all came from cron.php, all at the same time, as user Anonymous. However, this all happened at 3:00am, before I updated my site. I have since run Cron manually, without any problems.
Since I upgraded, I just have logs relating to parsed JavaScript files (which are notices). Those are likely because I turned on error reporting in index.php before I disabled Update Status. Odd that there were no entries in the log from when the site was broken...

> it seemed to be checking
> it seemed to be checking for updates each time you accessed any Drupal page.
I'm on 6.12, and have just become aware that update status checks every few minutes,
seemingly triggered simply by browsing the admin backend.
I became aware of this when I enabled my VPS server's firewall (CFS).
The firewall blocked the outgoing connection, so I got emailed of the error every few minutes.
Because the connection was blocked, the attempt was just left to time-out, which
took 60-90 seconds - the admin pages wouldn't load.
Different from your problem, but at least you know that your update status behaviour isn't abnormal.
on 6.12 my sites was going ok
on 6.12 my sites was going ok .. after upgrading to 6.13 it is very slow... I don't know what it is yet but the updates module is always giving me headaches...
How do you disable the update
How do you disable the update module if you can't get into the site? I'm having the same problem.
You need to use phpmyadmin to
You need to use phpmyadmin to disable the module in the database manually.
Browse the 'system' table. Use the column labelled 'name' to find the module called 'update'.
Edit the cell, changing 'status' from 1 to 0.
In my case, 'update status' slowed the admin pages when it couldn't connect to the remote server.
If you have a VPS and the server firewall enabled, then you have to allow the process through the firewall.
If you have a shared account and you host has the firewall enabled, I doubt they will change it for you.
Of course, there are probably other reasons why 'update status' won't work; firewall is just one example.
Fixed my issue on vps
The update status gave me white screen of death. Disabling the module via database corrected it. Thanks for the help.
Since I shouldn't maintain the site on production server then this is okay. If I were to request firewall access however, how would I accurately form/word the request to allow the communication to drupal update connection?
I *think* (purely from
I *think* (purely from memory), in my VPS I went to:
WHM -> Config Security & Firewall -> firewall configuration -> TCP OUT
and added port 80
No idea how unsafe that is.
However, there doesn't seem to be a static IP to add to the 'allow IP' exceptions.
updates.drupal.org:80 is the server, but WHM doesn't allow domains.
So opening the port was the only way round it that I could think of.
As stated, you probably need direct access to WHM/Plesk to do this.
On a shared host, I very much doubt they'll change their firewall settings for anyone.
Note that your firewall may have already blocked your website from contacting the drupal.org IP.
You'll need to check the 'deny IP' section.