The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] PM: tools: fix ValueError when parsing incomplete device properties
@ 2026-04-24  7:12 Gongwei Li
  2026-04-30 17:26 ` Todd Brandt
  2026-04-30 17:38 ` Todd Brandt
  0 siblings, 2 replies; 4+ messages in thread
From: Gongwei Li @ 2026-04-24  7:12 UTC (permalink / raw)
  To: Todd E Brandt; +Cc: linux-pm, linux-kernel, Gongwei Li

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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-04-30 18:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-24  7:12 [PATCH] PM: tools: fix ValueError when parsing incomplete device properties Gongwei Li
2026-04-30 17:26 ` Todd Brandt
2026-04-30 17:38 ` Todd Brandt
2026-04-30 18:35   ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox