fix lib exception to asyncio TimeoutError

This commit is contained in:
Victor Shyba 2021-03-09 02:17:19 -03:00
parent c2e7b5a67d
commit 20a5aecfca
2 changed files with 4 additions and 3 deletions

View file

@ -8,6 +8,7 @@ from operator import itemgetter
from typing import Optional, List, Iterable
from elasticsearch import AsyncElasticsearch, NotFoundError, ConnectionError
from elasticsearch.exceptions import ConnectionTimeout
from elasticsearch.helpers import async_streaming_bulk
from lbry.crypto.base58 import Base58
@ -228,6 +229,8 @@ class SearchIndex:
expand_query(**kwargs), index=self.index, track_total_hits=200
)
cache_item.result = zlib.compress(json.dumps(result).encode(), 1)
except ConnectionTimeout:
raise TimeoutError()
except NotFoundError:
# index has no docs, fixme: log something
return [], 0, 0

View file

@ -1009,9 +1009,7 @@ class LBRYElectrumX(SessionBase):
try:
self.session_mgr.pending_query_metric.inc()
return await self.db.search_index.session_query(query_name, kwargs)
except (TimeoutError, asyncio.TimeoutError) as error:
metrics = self.get_metrics_or_placeholder_for_api(query_name)
metrics.query_interrupt(start, error.metrics)
except (TimeoutError, asyncio.TimeoutError):
self.session_mgr.interrupt_count_metric.inc()
raise RPCError(JSONRPC.QUERY_TIMEOUT, 'query timed out')
finally: