]> code.ossystems Code Review - openembedded-core.git/commitdiff
buildstats.bbclass: Avoid index exception in /proc/PID/io parsing
authorPavel Modilaynen <pavelmn@axis.com>
Wed, 31 Jan 2018 19:10:38 +0000 (19:10 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 8 Mar 2018 02:02:15 +0000 (18:02 -0800)
There is some probability (depends on system load) to get empty
or line containing "0" as the last line while reading /proc/PID/io.
Avoid build failure by checking if line contains separator
":" before split.

Backport from pyro commit b26feaf51af55f17fad79dbd53dd3ec0a37c38ff

Signed-off-by: Pavel Modilaynen <pavelmn@axis.com>
Signed-off-by: Daniel Lublin <daniel@lublin.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/buildstats.bbclass

index 599a21998461b0a0813ee7e416e035ec2fd3d20c..415d2ee8202818a465ce62fbee5229a35bc34325 100644 (file)
@@ -31,6 +31,11 @@ def get_process_cputime(pid):
                 i = f.readline().strip()
                 if not i:
                     break
+                if not ":" in i:
+                    # one more extra line is appended (empty or containing "0")
+                    # most probably due to race condition in kernel while
+                    # updating IO stats
+                    break
                 i = i.split(": ")
                 iostats[i[0]] = i[1]
     resources = resource.getrusage(resource.RUSAGE_SELF)