Erro no cron do Drupal ( Attempting to re-run cron while it is already running )

Agora a pouco estava dando uma olhada no blog e alguns dos posts que eu havia agendado não haviam sido publicados.
Como sei que o problema normalmente em relação a isto é o cron, fui ao status do site http://seusite.com.b/admin/logs/status e vi que o mesmo não era rodado a umas boas semanas. Ou seja, logicamente nenhuma das tarefas que dependem de agendamento estavam sendo efetuadas no blog.
Isto inclui, indexação das páginas, limpeza do cache, e outras coisas mais. Com isto, minha base além de ficar enorme, em breve poderia causar um bruta problema de funcionamento ao mesmo.

Aí, ingenuamente, fui tentar rodar o cron e ele não funcionou. Deu um bruta erro 500 .

Retornei, fucei um pouquinho e novamente, tentei rodar novamente o mesmo. Não deu certo. Ele apresentava no log o seguinte erro. 

Attempting to re-run cron while it is already running.

Ou seja, ele acreditava que eu estava rodando o cron ainda. Mas eu não estava. 

Fui a diversos fóruns, principalmente os do próprio Drupal, sendo que o segundo link foi melhor para resolver o problema. 

Na realidade, parece que o erro 500 mantém na base de dados uma variável que não permite ao cron rodar novamente. 

Assim, é indicado fazer o seguinte comando no seu PhpMyAdmin, deletando as seguintes variáveis da sua tabela variables : 

DELETE FROM `variable` WHERE name = 'cron_semaphore';
DELETE FROM `variable` WHERE name = 'cron_last';

Após isto, é bom limpar as suas tabelas de cache. O módulo devel tem tudo isto sem problema, mas caso não tenha o mesmo instalado, via PhpMyAdmin é só limpar as seguintes tabelas: 

  • cache*
  • cache_content
  • cache_filter*
  • cache_menu*
  • cache_page*
  • cache_views

Após limpar as tabelas de cache do seu drupal, é so rodar novamente o seu cron na página de status ou então, via console. 

Deve ser lembrado que a Dreamhost parece não ter mais o lynx instalado, portanto, use o seguinte comando no seu crontab no console: 

curl --silent --compressed http://www.example.com/cron.php

Com isto feito, é só ir para o abraço. Agora roda tudo sem problema no seu Drupal. 

Pelo menos comigo este passos funcionaram super tranquilamente, lógico, após trocentas pesquisas ....