See this forum thread: http://drupal.org/node/29704

The gist is that I eventually decided to look into my pings and why they didn't seem to be pinging.

In the admin log I was getting a WARNING saying "Last cron run did not complete." with no further details. Being just a warning I ignored it, thinking it was probably associated with the other warnings from the aggregator complaining of news feeds it couldn't parse (because they were in ATOM format).

The culprit turned out to be an erroroneous xmlrpc module that didn't define xmlrpc_client

But the kicker is that even though cron.php was saying

<b>Fatal error</b>:  Cannot instantiate non-existent class:  xmlrpc_client in <b>/usr/www/users/davidh/modules/ping.module</b> on line <b>61</b><br />

This wasn't being reported in the admin log. There's a HUGE difference between a FATAL ERROR and a WARNING. If I'd seen a Fatal Error in my log, I woulda jumped on it right away and gotten this taken care of much earlier.

Hence, what I want here is for either cron.php or ping.module to properly report errors. It should probably be cron.php. Oh... I see, in todays cron.php if the module_invoke_all fails then the final cleanup doesn't happen. That's real bad. Errors should be caught and recorded in module_invoke_all ...

Comments

Stolz’s picture

Do you have any news on this? any update?
I'm usin the ping.module which comes with Drupal 4.6.5.

I've updated the code to have watchdog notifications on success, but as you reported, it doesn't work. I've changed

  if ($result === FALSE) {
    watchdog('directory ping', t('Failed to notify pingomatic.com (site).'), WATCHDOG_WARNING);
  }

to

 if ($result === FALSE) {
    watchdog('directory ping', t('Failed to notify pingomatic.com (site).'), WATCHDOG_WARNING);
  }
  else {
    watchdog('directory ping', t('Successfully notified pingomatic.com (site).'), WATCHDOG_WARNING);
  }

but I still have no feedback from ping module.

reikiman’s picture

Well, I didn't look at your question until now. On reflection the real problem is miscoding in cron.php. cron.php should capture the error that had been happening, and report it in the watchdog log.

I've filed http://drupal.org/node/77706 as a request to do just that, along with a likely code snippet.

As for the problem with pinging. My problem was caused by messing up with applying an 4.6.x update. In general my ping code is handled by separate modules now beyond the ping.module. e.g. I have a technorati module that handles pinging technorati, etc. The module is real simple and one thing it does is a _ping hook that pings technorati.

magico’s picture

Status: Active » Closed (fixed)

As stated the problem is with cron.php and a issue to that was filled against another version.
The bug should be resolved in most recent versions and then backported if needed.