summary refs log tree commit diff
path: root/gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch')
-rw-r--r--gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch b/gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch
new file mode 100644
index 0000000000..0b59387dc9
--- /dev/null
+++ b/gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch
@@ -0,0 +1,48 @@
+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