From a107473d9c32b3a54db91a98ef72a54d1bb2d7f5 Mon Sep 17 00:00:00 2001 From: obigal Date: Tue, 17 Dec 2013 20:32:36 -0500 Subject: [PATCH] fix error when subscription is none add try catch --- mining/subscription.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/mining/subscription.py b/mining/subscription.py index 3cac5d6..1f26b1e 100644 --- a/mining/subscription.py +++ b/mining/subscription.py @@ -24,15 +24,20 @@ class MiningSubscription(Subscription): # Push new job to subscribed clients for subscription in Pubsub.iterate_subscribers(cls.event): - session = subscription.connection_ref().get_session() - session.setdefault('authorized', {}) - if session['authorized'].keys(): - worker_name = session['authorized'].keys()[0] - difficulty = session['difficulty'] - work_id = Interfaces.worker_manager.register_work(worker_name, job_id, difficulty) - subscription.emit_single(work_id, prevhash, coinb1, coinb2, merkle_branch, version, nbits, ntime, clean_jobs) - else: - subscription.emit_single(job_id, prevhash, coinb1, coinb2, merkle_branch, version, nbits, ntime, clean_jobs) + try: + if subscription != None: + session = subscription.connection_ref().get_session() + session.setdefault('authorized', {}) + if session['authorized'].keys(): + worker_name = session['authorized'].keys()[0] + difficulty = session['difficulty'] + work_id = Interfaces.worker_manager.register_work(worker_name, job_id, difficulty) + subscription.emit_single(work_id, prevhash, coinb1, coinb2, merkle_branch, version, nbits, ntime, clean_jobs) + else: + subscription.emit_single(job_id, prevhash, coinb1, coinb2, merkle_branch, version, nbits, ntime, clean_jobs) + except Exception as e: + log.exception("Error broadcasting work to client %s" % str(e)) + pass cnt = Pubsub.get_subscription_count(cls.event) log.info("BROADCASTED to %d connections in %.03f sec" % (cnt, (Interfaces.timestamper.time() - start)))