Runner triggering occasional integ stacktrace
On rare occasions (roughly 1-2% of the time?) the integration tests end with the following stacktrace....
Exception in thread Tor Listener (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
File "/usr/lib/python2.7/threading.py", line 505, in run
File "/home/atagar/Desktop/stem/stem/control.py", line 385, in _reader_loop
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'socket'
This is a nonsensical stacktrace complaining about a missing module attribute. Most likely the problem is that the runner's reading daemon is outliving the tor process and encountering this during the interpretor shutdown.
This should not happen. We should be joining on all runners after each test so either that isn't the case somewhere or there is a bug that is preventing the runner thread from being joined.
First we should write a script that reliably reproduces this issue (probably running the integ tests a couple hundred times or however many are needed to reliably get this stacktrace). Second we should skip individual runner integration tests to narrow down which is causing this this stacktrace. Once we've narrowed down the haystack we can look at dealing with the issue.