Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#62793 - [dstat] Latest version dies with explicit delay (+ Upstream dead)

Attached to Project: Arch Linux
Opened by t0rb3n (t0rb3n) - Saturday, 01 June 2019, 18:52 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Tuesday, 04 June 2019, 07:10 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Sven-Hendrik Haase (Svenstaro)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Upon calling dstat, it offers the option to choose the refresh frequency (delay, as CLI argument).
The latest dstat-0.7.4 (upstream release 2019-05-22) dies with an error as soon as invoked with this (very common) option:


$ dstat 10
You did not select any stats, using -cdngy by default.
Traceback (most recent call last):
File "./dstat", line 2825, in <module>
main()
File "./dstat", line 2684, in main
scheduler.run()
File "/usr/lib/python3.7/sched.py", line 151, in run
action(*argument, **kwargs)
File "./dstat", line 2729, in perform
oldcols = cols
NameError: name 'cols' is not defined


This makes using dstat a pain.
Workraround: Downgradde to dstat-0.7.3 and add to IgnorePkg


This is in fact an upstream bug. But since the project recently has orphaned/archived on Github ( https://github.com/dagwieers/dstat/issues/170 ), we won't get help from there.



Additional info:
* package version: dstat-0.7.4-3 (most probably all dstat-0.7.4-*)


Steps to reproduce:
dstat 10
This task depends upon

Closed by  Sven-Hendrik Haase (Svenstaro)
Tuesday, 04 June 2019, 07:10 GMT
Reason for closing:  Fixed
Comment by Bartłomiej Piotrowski (Barthalion) - Monday, 03 June 2019, 12:57 GMT
We should probably take it from PCP and change the hashbang: https://github.com/performancecopilot/pcp/blob/master/src/pcp/dstat/pcp-dstat.py
Comment by Sven-Hendrik Haase (Svenstaro) - Monday, 03 June 2019, 14:13 GMT
Well this is a nasty situation. Upstream being dead isn't great. Doesn't seem like there are any defacto official community forks either. What exactly is the pcp dstat fork? It has a ton of changes and I'm not sure we can just pick it out of there and make it our upstream. Though of course I'd much prefer a maintained upstream dstat.

For now, I fixed this bug in this particular package.
Comment by Sven-Hendrik Haase (Svenstaro) - Monday, 03 June 2019, 14:14 GMT
Wrong package category by the way. It's in [community].
Comment by Bartłomiej Piotrowski (Barthalion) - Monday, 03 June 2019, 19:36 GMT
PCP forked dstat to make it python 3 compatible (which, in turn, made original maintainer wake up suddenly, push a new, albeit flawed as seen above, python3 compatible release and finally throw a tantrum and archive the repo). I'd say it's the only actually maintained dstat that is out there for the time being.

There are more details on Fedora's wiki: https://fedoraproject.org/wiki/Changes/MergeDstatAndPerformanceCoPilot
Comment by t0rb3n (t0rb3n) - Monday, 03 June 2019, 23:19 GMT
Also mind https://aur.archlinux.org/packages/dstat-py3/
Apparently this is also inactive. But for the time being, that one makes an easy drop-in dstat replacement.

PCP's dstat is not (at least not out of the box). For me, it dies with:
Failed to register derived metric: PMNS not accessible <pcp.pmapi.c_uint_Array_1 object at 0x7ff0067d0488>.

I also needed to build it against systemtap-git, since systemtap doesn't build at all. A lot to do at the PCP front…

(Also, sorry for the wrong repo.)
Comment by Sven-Hendrik Haase (Svenstaro) - Tuesday, 04 June 2019, 07:10 GMT
Given the circumstances and the bug report, I'll just close this issue as I've fixed this particular bug. If any of you feel strongly about pointing upstream to somewhere else then open a new ticket.

Loading...