From f2deee720132995422a2a7b933b044daedd619d4 Mon Sep 17 00:00:00 2001
From: Kay Kurokawa <kay@lbry.io>
Date: Tue, 12 Sep 2017 12:03:49 -0400
Subject: [PATCH] fireback finished_deferred after deleting from self.writers
 so that BlobFile state is accurate after finished_deferred is called

---
 lbrynet/core/HashBlob.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/lbrynet/core/HashBlob.py b/lbrynet/core/HashBlob.py
index df3891aeb..f305896a4 100644
--- a/lbrynet/core/HashBlob.py
+++ b/lbrynet/core/HashBlob.py
@@ -15,7 +15,6 @@ from lbrynet.core.utils import is_valid_blobhash
 
 log = logging.getLogger(__name__)
 
-
 class HashBlobReader(object):
     implements(interfaces.IConsumer)
 
@@ -142,8 +141,8 @@ class HashBlob(object):
             self._verified = True
             for p, (w, finished_deferred) in self.writers.items():
                 if w == writer:
-                    finished_deferred.callback(self)
                     del self.writers[p]
+                    finished_deferred.callback(self)
                     return True
             log.warning(
                 "Somehow, the writer that was accepted as being valid was already removed: %s",
@@ -153,8 +152,8 @@ class HashBlob(object):
         def errback_finished_deferred(err):
             for p, (w, finished_deferred) in self.writers.items():
                 if w == writer:
-                    finished_deferred.errback(err)
                     del self.writers[p]
+                    finished_deferred.errback(err)
 
         def cancel_other_downloads():
             for p, (w, finished_deferred) in self.writers.items():