gfrontiero / namebench

Automatically exported from code.google.com/p/namebench
Apache License 2.0
0 stars 0 forks source link

Endless Loop in "Initial Health Check" after python exception #113

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Maybe this issue is related to #109

What steps will reproduce the problem?
1. Check all checkboxes, and run the test. Checking no boxes, or just the
first, or the first and third box works. So the problem is in "Include the
best regional DNS services". Location is Germany.

What is the expected output? What do you see instead?

> Running initial health checks on 394 servers (35 threads)... [163/394]
Exception in thread Thread-115:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/threading.py", line 525, in __bootstrap_inner
    self.run()
  File
"/usr/lib64/python2.6/site-packages/libnamebench/nameserver_list.py", line
110, in run
    self.results.put(ns.CheckHealth(sanity_checks=self.checks))
  File "/usr/lib64/python2.6/site-packages/libnamebench/health_checks.py",
line 235, in CheckHealth
    (is_broken, warning, duration) = function(*args)
  File "/usr/lib64/python2.6/site-packages/libnamebench/health_checks.py",
line 61, in TestAnswers
    (response, duration, error_msg) = self.TimedRequest(record_type,
record, timeout)
  File "/usr/lib64/python2.6/site-packages/libnamebench/nameserver.py",
line 211, in TimedRequest
    request = self.CreateRequest(record, request_type, rdataclass)
  File "/usr/lib64/python2.6/site-packages/libnamebench/nameserver.py",
line 181, in CreateRequest
    return dns.message.make_query(record, request_type, return_type)
  File "/usr/lib64/python2.6/site-packages/dns/message.py", line 1032, in
make_query
    m = Message()
  File "/usr/lib64/python2.6/site-packages/dns/message.py", line 137, in
__init__
    self.id = dns.entropy.random_16()
  File "/usr/lib64/python2.6/site-packages/dns/entropy.py", line 92, in
random_16
    return pool.random_16()
  File "/usr/lib64/python2.6/site-packages/dns/entropy.py", line 69, in
random_16
    return self.random_8() * 256 + self.random_8()
  File "/usr/lib64/python2.6/site-packages/dns/entropy.py", line 62, in
random_8
    self.stir(self.digest)
  File "/usr/lib64/python2.6/site-packages/dns/entropy.py", line 54, in stir
    bytes[self.pool_index] ^= b
IndexError: list index out of range

> Running initial health checks on 394 servers (35 threads)... [186/394]
> Running initial health checks on 394 servers (35 threads)... [207/394]
> Running initial health checks on 394 servers (35 threads)... [234/394]
> Running initial health checks on 394 servers (35 threads)... [248/394]
> Running initial health checks on 394 servers (35 threads)... [291/394]
> Running initial health checks on 394 servers (35 threads)... [310/394]
Exception in thread Thread-124:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/threading.py", line 525, in __bootstrap_inner
    self.run()
  File
"/usr/lib64/python2.6/site-packages/libnamebench/nameserver_list.py", line
110, in run
    self.results.put(ns.CheckHealth(sanity_checks=self.checks))
  File "/usr/lib64/python2.6/site-packages/libnamebench/health_checks.py",
line 235, in CheckHealth
    (is_broken, warning, duration) = function(*args)
  File "/usr/lib64/python2.6/site-packages/libnamebench/health_checks.py",
line 61, in TestAnswers
    (response, duration, error_msg) = self.TimedRequest(record_type,
record, timeout)
  File "/usr/lib64/python2.6/site-packages/libnamebench/nameserver.py",
line 211, in TimedRequest
    request = self.CreateRequest(record, request_type, rdataclass)
  File "/usr/lib64/python2.6/site-packages/libnamebench/nameserver.py",
line 181, in CreateRequest
    return dns.message.make_query(record, request_type, return_type)
  File "/usr/lib64/python2.6/site-packages/dns/message.py", line 1032, in
make_query
    m = Message()
  File "/usr/lib64/python2.6/site-packages/dns/message.py", line 137, in
__init__
    self.id = dns.entropy.random_16()
  File "/usr/lib64/python2.6/site-packages/dns/entropy.py", line 92, in
random_16
    return pool.random_16()
  File "/usr/lib64/python2.6/site-packages/dns/entropy.py", line 69, in
random_16
    return self.random_8() * 256 + self.random_8()
  File "/usr/lib64/python2.6/site-packages/dns/entropy.py", line 64, in
random_8
    value = ord(self.digest[self.next_byte])
IndexError: string index out of range

> Running initial health checks on 394 servers (35 threads)... [341/394]
> Running initial health checks on 394 servers (35 threads)... [359/394]

After the second exception the counter hangs at test #392 and does not finish.

The system is a Gentoo x86_64 with
- python 2.6.4-r1
- dnspython 1.7.1
- graphy 1.0
- httplib2 0.6.0
- jinja2 2.2.1

Original issue reported on code.google.com by johann.s...@googlemail.com on 26 Mar 2010 at 6:17

GoogleCodeExporter commented 8 years ago
This is a bug in dnspython 1.7.1 being installed on the system, Please see 
issue 96 for 
workarounds, or upgrade to a newer version of that library.

Original comment by helixblue on 26 Mar 2010 at 7:06