Catch and log exact verification errors on worker download

This commit is contained in:
shortcutme 2017-06-19 16:10:49 +02:00
parent f773bf3336
commit 43c8dacd70
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -56,11 +56,15 @@ class Worker(object):
if task["done"] is True: # Task done, try to find new one if task["done"] is True: # Task done, try to find new one
continue continue
if buff: # Download ok if buff: # Download ok
try:
correct = site.content_manager.verifyFile(task["inner_path"], buff) correct = site.content_manager.verifyFile(task["inner_path"], buff)
else: # Download error except Exception, err:
correct = False correct = False
if correct is True or correct is None: # Hash ok or same file else: # Download error
self.manager.log.debug("%s: Hash correct: %s" % (self.key, task["inner_path"])) err = "Download failed"
correct = False
if correct is True or correct is None: # Verify ok or same file
self.manager.log.debug("%s: Verify correct: %s" % (self.key, task["inner_path"]))
if correct is True and task["done"] is False: # Save if changed and task not done yet if correct is True and task["done"] is False: # Save if changed and task not done yet
buff.seek(0) buff.seek(0)
site.storage.write(task["inner_path"], buff) site.storage.write(task["inner_path"], buff)
@ -68,10 +72,10 @@ class Worker(object):
self.manager.doneTask(task) self.manager.doneTask(task)
task["workers_num"] -= 1 task["workers_num"] -= 1
self.task = None self.task = None
else: # Hash failed else: # Verify failed
self.manager.log.debug( self.manager.log.debug(
"%s: Hash failed: %s, failed peers: %s" % "%s: Verify failed: %s, error: %s, failed peers: %s" %
(self.key, task["inner_path"], len(task["failed"])) (self.key, task["inner_path"], err, len(task["failed"]))
) )
task["failed"].append(self.peer) task["failed"].append(self.peer)
self.task = None self.task = None