I tried to crawl a feed and it failed with a HTTP 500 error. Following that error, I was unable to create any new feeds (node/add/feed) and all I got was a blank page. After activating error reporting this is what was reported:
Fatal error: Class 'FeedsSourceCrawler' not found in /var/www/mysite/sites/all/modules/feeds/includes/FeedsSource.inc on line 98

Deactivating the Feeds Crawler module solved the issue.

Comments

tekken’s picture

Correction: Deactivating the module did not solve the problem. Instead, I had to edit the database manually to remove the reference to FeedSourceCrawler... So this has been a show stopper for me.

Is anyone experiencing similar problems?

twistor’s picture

Assigned: Unassigned » twistor

Ay dios mio. I think I know the cause of this, thought I had it covered. I'll dig into it on monday. Thanks.

dallasw1983’s picture

I'm getting a similar error as well, did you ever dig into this?

[16-Sep-2011 23:27:03] PHP Fatal error:  Class 'FeedsSourceCrawler' not found in ../modules/feeds/includes/FeedsSource.inc on line 97
hejazee’s picture

Status: Active » Needs review

I had the same problem!
When you install the "Feeds Crawler" module, it sets the feeds_source_class variable to 'FeedsSourceCrawler'

variable_set('feeds_source_class', 'FeedsSourceCrawler');

but it fails to delete this variable when the module is uninstalled.

So When you uninstall this module, When you want to import a new feed (?q=node/add/feed), You get this error:

Fatal error: Class 'FeedsSourceCrawler' not found in /var/www/.../sites/all/modules/feeds/includes/FeedsSource.inc on line 94 

I looked at the code and found these lines:

public static function instance($importer_id, $feed_nid) {
    $class = variable_get('feeds_source_class', 'FeedsSource');
    static $instances = array();
    if (!isset($instances[$class][$importer_id][$feed_nid])) {
      $instances[$class][$importer_id][$feed_nid] = new $class($importer_id, $feed_nid);
    }
    return $instances[$class][$importer_id][$feed_nid];
  }

As you can see, variable_get('feeds_source_class', 'FeedsSource') will return 'FeedsSourceCrawler'. But you have uninstalled the Feeds Crawler module. So the FeedsSourceCrawler class is not defined any more and the code fails:

$instances[$class][$importer_id][$feed_nid] = new $class($importer_id, $feed_nid);

A fast solution may be to install the devel module and enable the "Execute php code" block.
Then run the following code to delete the feeds_source_class variable:

variable_del('feeds_source_class');

And it may be a task for the maintainer of this module to delete this variable at the uninstall hook.

twistor’s picture

Version: 6.x-1.0-beta3 » 6.x-1.x-dev
Assigned: twistor » Unassigned
Status: Needs review » Closed (won't fix)

The 6.x-1.x branch was a horrible hack job and is unsupported.