pybootchartgui crashed with ZeroDivisionError in draw_chart()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| pybootchartgui (Ubuntu) |
Undecided
|
Unassigned |
Bug Description
Binary package hint: pybootchartgui
I'm running pybootchartgui_
Traceback (most recent call last):
File "/usr/lib/
self.draw(cr, self.get_
File "/usr/lib/
draw.render(cr, *self.res)
File "/usr/lib/
draw_chart(ctx, IO_COLOR, True, chart_rect, [(sample.time, sample.util) for sample in disk_stats], proc_tree)
File "/usr/lib/
yscale = float(chart_
ZeroDivisionError: float division
I'm running the amd64 version under a KVM virtual machine.
ProblemType: Crash
Architecture: amd64
Date: Sat Oct 3 13:32:10 2009
DistroRelease: Ubuntu 9.10
ExecutablePath: /usr/bin/
InterpreterPath: /usr/bin/python2.6
Package: pybootchartgui 0+r124
PackageArchitec
ProcCmdline: /usr/bin/python /usr/bin/
ProcEnviron:
SHELL=/bin/bash
LANG=en_US.UTF-8
ProcVersionSign
PythonArgs: ['/usr/
SourcePackage: pybootchartgui
Title: pybootchartgui crashed with ZeroDivisionError in draw_chart()
Uname: Linux 2.6.31-11-generic x86_64
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
Related branches
- Daniel Holbach: Approve on 2009-12-09
- Ubuntu branches: Pending requested 2009-10-03
-
Diff: 21 lines1 file modifiedpybootchartgui/draw.py (+8/-2)
Jason Gerard DeRose (jderose) wrote : | #1 |
tags: | removed: need-duplicate-check |
visibility: | private → public |
Jason Gerard DeRose (jderose) wrote : | #2 |
Anders Norgaard (anders-norgaard) wrote : | #3 |
If you upload the datafile /var/log/
Best
Anders (upstream)
Jason Gerard DeRose (jderose) wrote : | #4 |
I attached the most recent bootchart data I was testing on, but I've personally encountered this bug consistently for about the last month during I've been testing Karmic in a VM.
I also revised my fix, please see revno 5 in lp:~jderose/ubuntu/karmic/pybootchartgui/fix-441660 (it now shows up in the merge proposal).
Anders Norgaard (anders-norgaard) wrote : | #5 |
Hi Jason,
It looks like the disk use and disk throughput is all zeroes. I wonder if the parsing code in pybootchartgui is broken or if somehow the dumping of diskusage data is broken when running in QEMU.
I'll look a bit more and run bootchart in some VM's.
Otherwise maybe just doing
yscale = float(chart_
would also do? (at least as a workaround)
Best
Anders
Anders Norgaard (anders-norgaard) wrote : | #6 |
Hi again,
The parsing was wrong - missing the virtual disks. This should now be fixed in r139
http://
"Make sure parsing also matches virtual disks, conventionally called vda, vdb
etc. - should fix https:/
Best
Anders
Jason Gerard DeRose (jderose) wrote : | #7 |
Anders,
Thanks for looking at this and thanks for the fix! I should have looked closer at the bootchart data. ;)
Yeah, the Linux virtio para-virtual block devices are /dev/vd{a,b,c,...}
Cheers,
Jason
Jason Gerard DeRose (jderose) wrote : | #8 |
One other thought: some kind of fix for potential division-by-zero errors should probably still be added. I didn't look closely at the meaning of the data, but if very short time intervals have the potential to be zero (depending on the time granularity available), this could still be a problem on a VM.
Many hosts will have enough RAM to cache all areas of the guest disk used during boot, so subsequent boots of the VM will be entirely from memory... so it seems feasible to have zero-time events.
Anders Norgaard (anders-norgaard) wrote : | #9 |
Hmm, since the divisor is the maximum of the timeseries of {CPU-use, I/O wait, disk-throughput, disk utilization}, and neither of those series should be all zeroes, I don't think there is any possibility of divide-by-zero for properly parsed data.
Ubuntu updated to -r139
Changed in pybootchartgui (Ubuntu): | |
status: | New → Fix Released |
Changed in pybootchartgui (Ubuntu): | |
status: | Fix Released → Confirmed |
status: | Confirmed → New |
status: | New → Fix Released |
I have a fix in lp:~jderose/ubuntu/karmic/pybootchartgui/fix-441660 and proposed a merge into lp:ubuntu/pybootchartgui