commit 8724b42d5dc51f2c5028de3b4c30aa46d9135bcd
Author: Damian Johnson <atagar(a)torproject.org>
Date: Tue May 9 09:56:27 2017 -0700
Avoid crashing when a vote is missing
Addressing a simple stacktrace I see on occasion...
Traceback (most recent call last):
File "/srv/doctor.torproject.org/doctor/consensus_health_checker.py", line 885, in <module>
main()
File "/srv/doctor.torproject.org/doctor/consensus_health_checker.py", line 244, in main
issues += run_checks(consensuses, votes)
File "/srv/doctor.torproject.org/doctor/consensus_health_checker.py", line 336, in run_checks
issues = checker(latest_consensus, consensuses, votes)
File "/srv/doctor.torproject.org/doctor/consensus_health_checker.py", line 790, in shared_random_commit_partitioning
if commitment.commit != self_commitments[commitment.identity]:
KeyError: u'D586D18309DED4CD6D57C18FDB97EFA96D330566'
---
consensus_health_checker.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/consensus_health_checker.py b/consensus_health_checker.py
index b88f534..9fa1dc7 100755
--- a/consensus_health_checker.py
+++ b/consensus_health_checker.py
@@ -787,7 +787,9 @@ def shared_random_commit_partitioning(latest_consensus, consensuses, votes):
for authority, vote in votes.items():
for commitment in vote.directory_authorities[0].shared_randomness_commitments:
- if commitment.commit != self_commitments[commitment.identity]:
+ if commitment.identity not in self_commitments[commitment.identity:
+ pass # we didn't get a vote for this authority so we don't know its self-reported commitment
+ elif commitment.commit != self_commitments[commitment.identity]:
issues.append(Issue(Runlevel.WARNING, 'SHARED_RANDOM_COMMITMENT_MISMATCH', authority = authority, their_v3ident = commitment.identity, our_value = commitment.commit, their_value = self_commitments[commitment.identity], to = [authority]))
def shared_random_reveal_partitioning(latest_consensus, consensuses, votes):