ZeroDivisionError in bootchart when parsing data from a HP Proliant DL360 G5

Bug #723663 reported by Brendan Donegan on 2011-02-23
62
This bug affects 8 people
Affects Status Importance Assigned to Milestone
pybootchartgui
New
Undecided
Unassigned
pybootchartgui (Ubuntu)
Medium
Brian Murray

Bug Description

Binary package hint: bootchart

In running bootchart against the data produced by the mentioned model of HP server, a ZeroDivisionError occurs during the parsing. I have attached the data, as well as the stack trace.

Distro version:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"

Package version:

bootchart:
  Installed: 0.90.2-7
  Candidate: 0.90.2-7
  Version table:
 *** 0.90.2-7 0
        500 http://archive.ubuntu.com/ubuntu/ maverick/universe amd64 Packages
        100 /var/lib/dpkg/status

Note that it looked to me as if it crashed while parsing the 3rd tgz file.

Brian Murray (brian-murray) wrote :

The crash is actually in pybootchartgui although the bug may lie in data files.

affects: bootchart (Ubuntu) → pybootchartgui (Ubuntu)
Changed in pybootchartgui (Ubuntu):
importance: Undecided → Medium
status: New → Confirmed
Ara Pulido (ara) wrote :

Guys, could you please have a look to this bug to see if the data generated is incorrect?

It is blocking our bootchart metrics for servers in Natty

Changed in pybootchartgui (Ubuntu):
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Colin Watson (cjwatson) wrote :

James, could you have a look at this?

Changed in pybootchartgui (Ubuntu):
assignee: Canonical Foundations Team (canonical-foundations) → James Hunt (jamesodhunt)

Hi,

I took a look at the third tgz file. The problem is the disk naming. On line 136 of parsing.py you can see the code looks for certain disk names.

def _parse_proc_disk_stat_log(file, numCpu):
 """
 Parse file for disk stats, but only look at the whole disks, eg. sda,
 not sda1, sda2 etc. The format of relevant lines should be:
 {major minor name rio rmerge rsect ruse wio wmerge wsect wuse running use aveq}
 """
 DISK_REGEX = 'hd.$|sd.$|vd.$'

But the log file contains blocks like

421
   1 0 ram0 0 0 0 0 0 0 0 0 0 0 0
   1 1 ram1 0 0 0 0 0 0 0 0 0 0 0
   1 2 ram2 0 0 0 0 0 0 0 0 0 0 0
   1 3 ram3 0 0 0 0 0 0 0 0 0 0 0
   1 4 ram4 0 0 0 0 0 0 0 0 0 0 0
   1 5 ram5 0 0 0 0 0 0 0 0 0 0 0
   1 6 ram6 0 0 0 0 0 0 0 0 0 0 0
   1 7 ram7 0 0 0 0 0 0 0 0 0 0 0
   1 8 ram8 0 0 0 0 0 0 0 0 0 0 0
   1 9 ram9 0 0 0 0 0 0 0 0 0 0 0
   1 10 ram10 0 0 0 0 0 0 0 0 0 0 0
   1 11 ram11 0 0 0 0 0 0 0 0 0 0 0
   1 12 ram12 0 0 0 0 0 0 0 0 0 0 0
   1 13 ram13 0 0 0 0 0 0 0 0 0 0 0
   1 14 ram14 0 0 0 0 0 0 0 0 0 0 0
   1 15 ram15 0 0 0 0 0 0 0 0 0 0 0
   7 0 loop0 0 0 0 0 0 0 0 0 0 0 0
   7 1 loop1 0 0 0 0 0 0 0 0 0 0 0
   7 2 loop2 0 0 0 0 0 0 0 0 0 0 0
   7 3 loop3 0 0 0 0 0 0 0 0 0 0 0
   7 4 loop4 0 0 0 0 0 0 0 0 0 0 0
   7 5 loop5 0 0 0 0 0 0 0 0 0 0 0
   7 6 loop6 0 0 0 0 0 0 0 0 0 0 0
   7 7 loop7 0 0 0 0 0 0 0 0 0 0 0
  11 0 sr0 0 0 0 0 0 0 0 0 0 0 0
 104 0 cciss/c0d0 739 932 33220 9080 1 0 8 70 5 2710 9590
 104 1 cciss/c0d0p1 661 902 32362 8850 1 0 8 70 5 2680 9360
 104 2 cciss/c0d0p2 1 0 2 30 0 0 0 0 0 30 30
 104 5 cciss/c0d0p5 52 30 656 170 0 0 0 0 0 160 170

So if you extend the regex to be

 DISK_REGEX = 'hd.$|sd.$|vd.$|cciss/c0d0$'

the charting will run without crashes.

Best
Anders

Brian Murray (brian-murray) wrote :

I'm working on this now.

Changed in pybootchartgui (Ubuntu):
assignee: James Hunt (jamesodhunt) → Brian Murray (brian-murray)
status: Confirmed → In Progress
Changed in pybootchartgui:
importance: Unknown → Undecided
status: Unknown → New
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package pybootchartgui - 0+r141-0ubuntu3

---------------
pybootchartgui (0+r141-0ubuntu3) natty; urgency=low

  * Add patch adding-smart-array-block-devices.patch to allow pybootchartgui
    to run on devices with an HP smart array. (LP: #723663)
 -- Brian Murray <email address hidden> Fri, 01 Apr 2011 11:15:10 -0700

Changed in pybootchartgui (Ubuntu):
status: In Progress → Fix Released
tags: added: iso-testing
Changed in pybootchartgui:
status: New → Fix Released
status: Fix Released → New
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.