[tor-commits] [stem/master] Errors when tor process unexpectedly terminates

atagar at torproject.org atagar at torproject.org
Sun Dec 1 20:55:46 UTC 2019


commit 728b71e1dfccb7c2fc350a03682217b26effaaeb
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Dec 1 12:53:39 2019 -0800

    Errors when tor process unexpectedly terminates
    
    Couple fixes for issues caught by teor...
    
      https://trac.torproject.org/projects/tor/ticket/32398
    
    I reproed this by issuing a 'killall tor' during our integ tests. This produced
    a couple errors depending on when the process dies...
    
      Traceback (most recent call last):
        File "run_tests.py", line 468, in <module>
          main()
        File "run_tests.py", line 304, in main
          if not integ_runner.assert_tor_is_running():
        File "/home/atagar/Desktop/stem/test/runner.py", line 507, in assert_tor_is_running
          process_output = (self._tor_process.stdout.read() + '\n\n' + self._tor_process.stderr.read()).strip()
      TypeError: can't concat bytes to str
    
      Traceback (most recent call last):
        File "run_tests.py", line 468, in <module>
          main()
        File "run_tests.py", line 304, in main
          if not integ_runner.assert_tor_is_running():
        File "/home/atagar/Desktop/stem/test/runner.py", line 502, in assert_tor_is_running
          process_status = self._tor_process.poll()  # None if running
      AttributeError: 'NoneType' object has no attribute 'poll'
---
 test/runner.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/test/runner.py b/test/runner.py
index c343ed57..d8adb585 100644
--- a/test/runner.py
+++ b/test/runner.py
@@ -499,12 +499,16 @@ class Runner(object):
     provides **False**.
     """
 
+    if not self._tor_process:
+      println('Tor process failed to initialize', ERROR)
+      return False
+
     process_status = self._tor_process.poll()  # None if running
 
     if process_status is None:
       return True
     else:
-      process_output = (self._tor_process.stdout.read() + '\n\n' + self._tor_process.stderr.read()).strip()
+      process_output = stem.util.str_tools._to_unicode(self._tor_process.stdout.read() + b'\n\n' + self._tor_process.stderr.read()).strip()
       println('\n%s\nOur tor process ended prematurely with exit status %s\n%s\n\n%s' % ('=' * 60, process_status, '=' * 60, process_output), ERROR)
       return False
 



More information about the tor-commits mailing list