tools/power/pm-graph/sleepgraph.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
From: Gongwei Li <ligongwei@kylinos.cn>
When parsing device properties from ftrace data, the devprops() function
assumes that each line has at least three fields and that the third field
(f[2]) always contains a valid integer. However, due to incomplete or
corrupted ftrace logs, f[2] may be missing, empty, or non-existent.
This can lead to the following error:
Traceback (most recent call last):
File "../sleepgraph.py", line 7142, in <module>
stamp = rerunTest(sysvals.outdir)
File "../sleepgraph.py", line 6255, in rerunTest
testruns, stamp = processData()
File "../sleepgraph.py", line 6181, in processData
testruns, error = parseTraceLog(live)
File "../sleepgraph.py", line 3470, in parseTraceLog
tp, tf = loadTraceLog()
File "../sleepgraph.py", line 3398, in loadTraceLog
if tp.stampInfo(line, sysvals):
File "../sleepgraph.py", line 3073, in stampInfo
self.parsePlatformInfo(line, sv)
File "../sleepgraph.py", line 3177, in parsePlatformInfo
sv.devprops = self.devprops(sv.b64unzip(info))
File "../sleepgraph.py", line 3158, in devprops
if int(f[2]):
ValueError: invalid literal for int() with base 10: ''
To prevent this crash, add proper validation before accessing.
Signed-off-by: Gongwei Li <ligongwei@kylinos.cn>
---
tools/power/pm-graph/sleepgraph.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm-graph/sleepgraph.py
index 1555b51a7d55..f6d172254829 100755
--- a/tools/power/pm-graph/sleepgraph.py
+++ b/tools/power/pm-graph/sleepgraph.py
@@ -3155,7 +3155,7 @@ class TestProps:
dev = f[0]
props[dev] = DevProps()
props[dev].altname = f[1]
- if int(f[2]):
+ if len(f) > 2 and f[2] and int(f[2]):
props[dev].isasync = True
else:
props[dev].isasync = False
--
2.25.1
On Fri, 2026-04-24 at 15:12 +0800, Gongwei Li wrote: > From: Gongwei Li <ligongwei@kylinos.cn> > > When parsing device properties from ftrace data, the devprops() > function > assumes that each line has at least three fields and that the third > field > (f[2]) always contains a valid integer. However, due to incomplete or > corrupted ftrace logs, f[2] may be missing, empty, or non-existent. > > This can lead to the following error: > > Traceback (most recent call last): > File "../sleepgraph.py", line 7142, in <module> > stamp = rerunTest(sysvals.outdir) > File "../sleepgraph.py", line 6255, in rerunTest > testruns, stamp = processData() > File "../sleepgraph.py", line 6181, in processData > testruns, error = parseTraceLog(live) > File "../sleepgraph.py", line 3470, in parseTraceLog > tp, tf = loadTraceLog() > File "../sleepgraph.py", line 3398, in loadTraceLog > if tp.stampInfo(line, sysvals): > File "../sleepgraph.py", line 3073, in stampInfo > self.parsePlatformInfo(line, sv) > File "../sleepgraph.py", line 3177, in parsePlatformInfo > sv.devprops = self.devprops(sv.b64unzip(info)) > File "../sleepgraph.py", line 3158, in devprops > if int(f[2]): > ValueError: invalid literal for int() with base 10: '' > > To prevent this crash, add proper validation before accessing. > > Signed-off-by: Gongwei Li <ligongwei@kylinos.cn> > --- > tools/power/pm-graph/sleepgraph.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm- > graph/sleepgraph.py > index 1555b51a7d55..f6d172254829 100755 > --- a/tools/power/pm-graph/sleepgraph.py > +++ b/tools/power/pm-graph/sleepgraph.py > @@ -3155,7 +3155,7 @@ class TestProps: > dev = f[0] > props[dev] = DevProps() > props[dev].altname = f[1] > - if int(f[2]): > + if len(f) > 2 and f[2] and int(f[2]): > props[dev].isasync = True > else: > props[dev].isasync = False This looks good, thanks for the catch! Rafael can you apply this? Signed-off-by: Todd Brandt <todd.e.brandt@intel.com>
On Thu, Apr 30, 2026 at 7:38 PM Todd Brandt <todd.e.brandt@linux.intel.com> wrote: > > On Fri, 2026-04-24 at 15:12 +0800, Gongwei Li wrote: > > From: Gongwei Li <ligongwei@kylinos.cn> > > > > When parsing device properties from ftrace data, the devprops() > > function > > assumes that each line has at least three fields and that the third > > field > > (f[2]) always contains a valid integer. However, due to incomplete or > > corrupted ftrace logs, f[2] may be missing, empty, or non-existent. > > > > This can lead to the following error: > > > > Traceback (most recent call last): > > File "../sleepgraph.py", line 7142, in <module> > > stamp = rerunTest(sysvals.outdir) > > File "../sleepgraph.py", line 6255, in rerunTest > > testruns, stamp = processData() > > File "../sleepgraph.py", line 6181, in processData > > testruns, error = parseTraceLog(live) > > File "../sleepgraph.py", line 3470, in parseTraceLog > > tp, tf = loadTraceLog() > > File "../sleepgraph.py", line 3398, in loadTraceLog > > if tp.stampInfo(line, sysvals): > > File "../sleepgraph.py", line 3073, in stampInfo > > self.parsePlatformInfo(line, sv) > > File "../sleepgraph.py", line 3177, in parsePlatformInfo > > sv.devprops = self.devprops(sv.b64unzip(info)) > > File "../sleepgraph.py", line 3158, in devprops > > if int(f[2]): > > ValueError: invalid literal for int() with base 10: '' > > > > To prevent this crash, add proper validation before accessing. > > > > Signed-off-by: Gongwei Li <ligongwei@kylinos.cn> > > --- > > tools/power/pm-graph/sleepgraph.py | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm- > > graph/sleepgraph.py > > index 1555b51a7d55..f6d172254829 100755 > > --- a/tools/power/pm-graph/sleepgraph.py > > +++ b/tools/power/pm-graph/sleepgraph.py > > @@ -3155,7 +3155,7 @@ class TestProps: > > dev = f[0] > > props[dev] = DevProps() > > props[dev].altname = f[1] > > - if int(f[2]): > > + if len(f) > 2 and f[2] and int(f[2]): > > props[dev].isasync = True > > else: > > props[dev].isasync = False > > This looks good, thanks for the catch! Rafael can you apply this? > > Signed-off-by: Todd Brandt <todd.e.brandt@intel.com> Changed the tag to Acked-by and applied the patch as 7.2 material, thanks!
On Fri, 2026-04-24 at 15:12 +0800, Gongwei Li wrote: > From: Gongwei Li <ligongwei@kylinos.cn> > > When parsing device properties from ftrace data, the devprops() > function > assumes that each line has at least three fields and that the third > field > (f[2]) always contains a valid integer. However, due to incomplete or > corrupted ftrace logs, f[2] may be missing, empty, or non-existent. > > This can lead to the following error: > > Traceback (most recent call last): > File "../sleepgraph.py", line 7142, in <module> > stamp = rerunTest(sysvals.outdir) > File "../sleepgraph.py", line 6255, in rerunTest > testruns, stamp = processData() > File "../sleepgraph.py", line 6181, in processData > testruns, error = parseTraceLog(live) > File "../sleepgraph.py", line 3470, in parseTraceLog > tp, tf = loadTraceLog() > File "../sleepgraph.py", line 3398, in loadTraceLog > if tp.stampInfo(line, sysvals): > File "../sleepgraph.py", line 3073, in stampInfo > self.parsePlatformInfo(line, sv) > File "../sleepgraph.py", line 3177, in parsePlatformInfo > sv.devprops = self.devprops(sv.b64unzip(info)) > File "../sleepgraph.py", line 3158, in devprops > if int(f[2]): > ValueError: invalid literal for int() with base 10: '' > > To prevent this crash, add proper validation before accessing. > > Signed-off-by: Gongwei Li <ligongwei@kylinos.cn> > --- > tools/power/pm-graph/sleepgraph.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm- > graph/sleepgraph.py > index 1555b51a7d55..f6d172254829 100755 > --- a/tools/power/pm-graph/sleepgraph.py > +++ b/tools/power/pm-graph/sleepgraph.py > @@ -3155,7 +3155,7 @@ class TestProps: > dev = f[0] > props[dev] = DevProps() > props[dev].altname = f[1] > - if int(f[2]): > + if len(f) > 2 and f[2] and int(f[2]): > props[dev].isasync = True > else: > props[dev].isasync = False This looks good, thanks for the catch! Raphael can you apply this? Signed-off-by: Todd Brandt <todd.e.brandt@intel.com>
© 2016 - 2026 Red Hat, Inc.