fix sd hash race condition when loading lbry file attributes

This commit is contained in:
Jack Robison 2017-05-10 01:28:18 -04:00
parent f33b14e325
commit 4224d63603
2 changed files with 10 additions and 6 deletions

View file

@ -108,12 +108,16 @@ class ManagedEncryptedFileDownloader(EncryptedFileSaver):
num_blobs_known, status))
@defer.inlineCallbacks
def load_file_attributes(self):
sd_hash = yield self.stream_info_manager.get_sd_blob_hashes_for_stream(self.stream_hash)
if sd_hash:
self.sd_hash = sd_hash[0]
def load_file_attributes(self, sd_hash=None):
if not sd_hash:
sd_hash = yield self.stream_info_manager.get_sd_blob_hashes_for_stream(self.stream_hash)
if sd_hash:
self.sd_hash = sd_hash[0]
else:
raise NoSuchStreamHash(self.stream_hash)
else:
raise NoSuchStreamHash(self.stream_hash)
self.sd_hash = sd_hash
stream_metadata = yield self.wallet.get_claim_metadata_for_sd_hash(self.sd_hash)
if stream_metadata:
name, txid, nout = stream_metadata

View file

@ -41,7 +41,7 @@ class Publisher(object):
claim_out = yield self.make_claim(name, bid, claim_dict)
self.lbry_file.completed = True
yield self.lbry_file.load_file_attributes()
yield self.lbry_file.load_file_attributes(sd_hash)
yield self.lbry_file.save_status()
defer.returnValue(claim_out)