Comment 8 for bug 723663

Revision history for this message
Anders Norgaard (anders-norgaard) wrote :

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