Skip to content

Commit 3df94d1

Browse files
committed
fix: possible infinity loop in Apify-Scrapy proxy middleware
1 parent ed5ab3b commit 3df94d1

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/apify/scrapy/middlewares/apify_proxy.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def process_exception(
9393
request: Request,
9494
exception: Exception,
9595
spider: Spider,
96-
) -> None | Request:
96+
) -> None:
9797
"""Process an exception that occurs during request processing.
9898
9999
Args:
@@ -102,8 +102,9 @@ def process_exception(
102102
spider: Scrapy Spider object.
103103
104104
Returns:
105-
If a TunnelError occurs, return the request object to halt its processing in the middleware pipeline.
106-
Return None otherwise to allow the continuation of request processing.
105+
Returning None, meaning Scrapy will continue processing this exception, executing any other
106+
process_exception() methods of installed middleware, until no middleware is left and the default
107+
exception handling kicks in.
107108
"""
108109
Actor.log.debug(
109110
f'ApifyHttpProxyMiddleware.process_exception: request={request}, exception={exception}, spider={spider}',
@@ -114,9 +115,6 @@ def process_exception(
114115
f'ApifyHttpProxyMiddleware: TunnelError occurred for request="{request}", '
115116
'reason="{exception}", skipping...'
116117
)
117-
return request
118-
119-
return None
120118

121119
async def _get_new_proxy_url(self: ApifyHttpProxyMiddleware) -> ParseResult:
122120
"""Get a new proxy URL.

0 commit comments

Comments
 (0)