From: Tobias Geerinckx-Rice <me@tobias.gr> Date: Sun, 16 Jun 2019 02:34:10 +0200 Subject: [PATCH] gnu: dstat: Fix crash when specifying a delay. Taken verbatim from a pull request[0] that will never be merged. [0]: https://github.com/dagwieers/dstat/pull/167 From 220a785321b13b6df92a536080aca6ef1cb644ad Mon Sep 17 00:00:00 2001 From: Falko Goettsch <falko@uw.edu> Date: Mon, 11 Mar 2019 20:12:49 -0700 Subject: [PATCH] Fixed bug when specifying a delay The division in the 'loop' calculation in perform() was returning floating point values after the migration to Python 3, rather than rounding down. Changed to floor division. I think the floating point values kept 'loop == 0' from ever being true and the variables inside that conditional were never initialized, causing the following error when a delay other than 1 was specified: You did not select any stats, using -cdngy by default. Traceback (most recent call last): File "/home/falko/repos/dstat/dstat", line 2825, in <module> main() File "/home/falko/repos/dstat/dstat", line 2684, in main scheduler.run() File "/home/falko/.conda/envs/python3/lib/python3.7/sched.py", line 151, in run action(*argument, **kwargs) File "/home/falko/repos/dstat/dstat", line 2729, in perform oldcols = cols NameError: name 'cols' is not defined --- dstat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dstat b/dstat index 9359965..3b4980f 100755 --- a/dstat +++ b/dstat @@ -2697,7 +2697,7 @@ def perform(update): starttime = time.time() - loop = (update - 1 + op.delay) / op.delay + loop = (update - 1 + op.delay) // op.delay step = ((update - 1) % op.delay) + 1 ### Get current time (may be different from schedule) for debugging