From 7199555e1a4966bf4bf1d8bf4a34a48860103cd6 Mon Sep 17 00:00:00 2001 From: Paul Tremberth Date: Sat, 26 Apr 2014 14:04:28 +0200 Subject: [PATCH] Check pending start_requests before calling _spider_idle() in engine (fixes #706) --- scrapy/core/engine.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scrapy/core/engine.py b/scrapy/core/engine.py index 8a307a29e..1da2dba03 100644 --- a/scrapy/core/engine.py +++ b/scrapy/core/engine.py @@ -112,6 +112,7 @@ class ExecutionEngine(object): except StopIteration: slot.start_requests = None except Exception as exc: + slot.start_requests = None log.err(None, 'Obtaining request from start requests', \ spider=spider) else: @@ -156,7 +157,8 @@ class ExecutionEngine(object): scraper_idle = self.scraper.slot.is_idle() pending = self.slot.scheduler.has_pending_requests() downloading = bool(self.downloader.active) - idle = scraper_idle and not (pending or downloading) + pending_start_requests = self.slot.start_requests is not None + idle = scraper_idle and not (pending or downloading or pending_start_requests) return idle @property