Skip to content

Commit fb4a0f4

Browse files
committed
urlcache: Add urllib timeout and increase retries
Signed-off-by: Hector Martin <[email protected]>
1 parent b861b30 commit fb4a0f4

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

src/urlcache.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class URLCache:
1414
CACHESIZE = 32
1515
BLOCKSIZE = 1 * 1024 * 1024
1616
READAHEAD = 10
17+
TIMEOUT = 30
1718

1819
def __init__(self, url):
1920
self.url = url
@@ -34,7 +35,7 @@ def get_partial(self, off, size):
3435
#print("get_partial", off, size)
3536
req = request.Request(self.url, method="GET")
3637
req.add_header("Range", f"bytes={off}-{off+size-1}")
37-
fd = request.urlopen(req)
38+
fd = request.urlopen(req, timeout=self.TIMEOUT)
3839

3940
if size <= self.BLOCKSIZE:
4041
sys.stdout.write(".")
@@ -58,7 +59,8 @@ def get_block(self, blk):
5859
size += self.BLOCKSIZE
5960

6061
size = min(off + size, self.size) - off
61-
retries = 5
62+
retries = 10
63+
sleep = 1
6264
for retry in range(retries + 1):
6365
try:
6466
data = self.get_partial(off, size)
@@ -67,7 +69,8 @@ def get_block(self, blk):
6769
p_error(f"Exceeded maximum retries downloading data.")
6870
raise
6971
p_warning(f"Error downloading data ({e}), retrying... ({retry + 1}/{retries})")
70-
time.sleep(1)
72+
time.sleep(sleep)
73+
sleep += 1
7174
else:
7275
break
7376

0 commit comments

Comments
 (0)