[tor-commits] [nyx/master] Stacktrace due to negative uptime

atagar at torproject.org atagar at torproject.org
Wed Jul 5 15:44:08 UTC 2017


commit 08eec6f9067538778264eb952097ef982e2b4bc0
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Jul 5 08:35:02 2017 -0700

    Stacktrace due to negative uptime
    
    Great catch from dgoulet. Sidestepping this is trivial and something we
    defintely want to do since there's edge cases this can arise in. For
    instance...
    
      * User pauses nyx's interface.
      * User quits tor then restarts the process.
      * User connects nyx to the new process.
    
    Since we're paused the 'now' is then before the startup time of the process,
    causing this to be negative. Needless to say this is a really weird edge case
    and not sure it would even happen when paused. None the less might as well code
    defenseively so we don't stacktrace like this...
    
      Traceback (most recent call last):
        File "/usr/local/bin/nyx", line 14, in <module>
          nyx.main()
        ...
        File "/usr/local/lib/python2.7/dist-packages/nyx/panel/header.py", line 169, in _draw
          _draw_resource_usage(subwindow, left_width, 0, right_width, vals, self._pause_time)
        File "/usr/local/lib/python2.7/dist-packages/nyx/panel/header.py", line 389, in _draw_resource_usage
          uptime = stem.util.str_tools.short_time_label(now - vals.start_time)
        File "/usr/local/lib/python2.7/dist-packages/stem/util/str_tools.py", line 417, in short_time_label
          raise ValueError("Input needs to be a non-negative integer, got '%i'" % seconds)
      ValueError: Input needs to be a non-negative integer, got '-114'
    
    More likely dgoulet is hitting another bug too where we detect the wrong
    startup time for the tor process.
---
 nyx/panel/header.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nyx/panel/header.py b/nyx/panel/header.py
index 63a4f86..d3e7454 100644
--- a/nyx/panel/header.py
+++ b/nyx/panel/header.py
@@ -386,7 +386,7 @@ def _draw_resource_usage(subwindow, x, y, width, vals, pause_time):
     else:
       now = time.time()
 
-    uptime = stem.util.str_tools.short_time_label(now - vals.start_time)
+    uptime = stem.util.str_tools.short_time_label(max(0, now - vals.start_time))
   else:
     uptime = ''
 



More information about the tor-commits mailing list