Closed valkolaci closed 1 year ago
I get this whenever a network interface no longer exist, like powering off a virtual machine, etc.
I can confirm this issue, both on dstat
and the most recent dool
version from AUR:
File "/usr/bin/dool", line 2908, in <module>
main()
File "/usr/bin/dool", line 2758, in main
scheduler.run()
File "/usr/lib/python3.10/sched.py", line 151, in run
action(*argument, **kwargs)
File "/usr/bin/dool", line 2858, in perform
line = line + o.show() + o.showend(totlist, vislist)
File "/usr/bin/dool", line 574, in show
line = line + cprintlist(self.val[name], ctype, self.width, scale)
File "/usr/bin/dool", line 2162, in cprintlist
ret = ret + sep + cprint(var, ctype, width, scale)
File "/usr/bin/dool", line 2212, in cprint
ret, c = dchg(var, width, base)
File "/usr/bin/dool", line 2112, in dchg
ret = str(int(round(var)))
OverflowError: cannot convert float infinity to integer
This is the dool version:
dool --version
Dool 1.0.0
Written by Scott Baker <scott@perturb.org>
Forked from Dstat written by Dag Wieers <dag@wieers.com>
Homepage at https://github.com/scottchiefbaker/dool/
Platform posix/linux
Kernel 5.17.4-arch1-1
Python 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0]
Terminal type: xterm-256color (color support)
Terminal size: 54 lines, 131 columns
Processors: 24
Pagesize: 4096
Clock ticks per secs: 100
internal:
aio,cpu,cpu-adv,cpu-use,cpu24,disk,disk24,disk24-old,epoch,fs,int,int24,io,ipc,load,lock,mem,mem-adv,
net,page,page24,proc,raw,socket,swap,swap-old,sys,tcp,time,udp,unix,vm,vm-adv,zones
/usr/share/dool:
battery,battery-remain,condor-queue,cpufreq,dbus,disk-avgqu,disk-avgrq,disk-svctm,disk-tps,disk-util,disk-wait,
dool,dool-cpu,dool-ctxt,dool-mem,fan,freespace,fuse,gpfs,gpfs-ops,helloworld,ib,innodb-buffer,innodb-io,
innodb-ops,jvm-full,jvm-vm,lustre,md-status,memcache-hits,mongodb-conn,mongodb-mem,mongodb-opcount,
mongodb-queue,mongodb-stats,mysql-io,mysql-keys,mysql5-cmds,mysql5-conn,mysql5-innodb,mysql5-innodb-basic,
mysql5-innodb-extra,mysql5-io,mysql5-keys,net-packets,nfs3,nfs3-ops,nfsd3,nfsd3-ops,nfsd4-ops,nfsstat4,ntp,
postfix,power,proc-count,qmail,redis,rpc,rpcd,sendmail,snmp-cpu,snmp-load,snmp-mem,snmp-net,snmp-net-err,
snmp-sys,snooze,squid,test,thermal,top-bio,top-bio-adv,top-childwait,top-cpu,top-cpu-adv,top-cputime,
top-cputime-avg,top-int,top-io,top-io-adv,top-latency,top-latency-avg,top-mem,top-oom,utmp,vm-cpu,vm-mem,
vm-mem-adv,vmk-hba,vmk-int,vmk-nic,vz-cpu,vz-io,vz-ubc,wifi,zfs-arc,zfs-l2arc,zfs-zil
Still happens with dool 1.1.0
i have the same question
I get this whenever a network interface no longer exist, like powering off a virtual machine, etc.
Same. I can reproduce it by removing a Wireguard network interface
Yeah, the annoying thing is: docker is widespread and stopping containers also removes interfaces, crashes dool.
Partial workaround: name the interfaces to monitor with the argument -N
dool -N eth0
Doesn't help with many interfaces meant to be summed up in a total.
This issues SHOULD be addressed now in #16. If the issue remains, please re-open this issue.
SUMMARY
dool (and dstat as well) regularly and randomly (from about once per a few hours to once per month) dies with OverflowError while printing the values, trying to convert infinity from float to integer. It sounds like a division by zero error earlier, resulting in infinity as the float value.
ISSUE TYPE
DSTAT VERSION
Built from latest git commit:
OS / ENVIRONMENT
Linux
STEPS TO REPRODUCE
CLI used:
EXPECTED RESULTS
It shoudn't crash
ACTUAL RESULTS