I am unable to run cron on a Drupal 6.25 web site.

Running cron using both the run cron option from administration menu and the run cron manually link from status report page results in the following message:

Caches flushed.

The warning message next to the cron maintenance tasks entry on the status report persists and cron hasn't run.

I recently upgraded to latest version of Drupal. This issue also affects development copy of web site.

As always, I ran update.php after upgrade - no errors reported.

Tried changing number of items at /admin/settings/search to 10.

Can anyone advise how to fix the problem?


system_cron calls cache_clear_all with $cid == NULL, which should just be clearing out expired entries.

My guess is that something else is wrong with the system, and cron is failing as a result.

When you upgraded, did you make sure you ran update.php?

Do you see cron listed as being run in watchdog (/admin/reports/dblog)?

Are there any php or other errors/warnings in watchdog around the cron run?

What does your search index status say (/admin/settings/search)? cron will index search each run. If this takes too long, you may have problems. Try dropping down the number of items per run.

If you run drush cron from the command line, does it run properly?

| improve this answer | |
  • Updated original question. Thanks for your help - the following error is present in dblog: pastebin.com/KDGrUzNV. Perhaps this is the issue. I shall install drush and try clearing cache from shell. – unpossible Mar 6 '12 at 14:32
  • Googling for that error message brings up a ton of posts on various forums. Something is wrong in your database. – mpdonadio Mar 6 '12 at 14:45
  • Indeed. Altered all tables to utf8_unicode_ci collation. New cron error logged: Cron run exceeded the time limit and was aborted.. Increased max_execution_time from 60 to 120 in php.ini, to no avail. – unpossible Mar 6 '12 at 16:32
  • Did you remember to restart Apache? Did you look at the search index thing? – mpdonadio Mar 6 '12 at 17:02

Disabling the PHP filter module, as per suggestions below solved the problem:


However, ultimately I believe the issue was caused by illegal mix of collations error.

Changing the collation of all table to utf8_unicode_ci using MySQL Workbench solved the problem.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.