From bae022db43a98185943ca7023584ce45b65b761c Mon Sep 17 00:00:00 2001 From: Brian Hanson Date: Thu, 16 Apr 2026 21:20:53 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20thermald=20crash=20blocking=20shutdown?= =?UTF-8?q?=20(getBool=20=E2=86=92=20get=5Fbool)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Python Params uses snake_case; the C++ camelCase call raised AttributeError, killing thermald_thread at the exact moment of shutdown. Result: DoShutdown never got set, the 10-minute timer "worked" once (set DashcamShutdown=True) and then thermald died silently. Device kept draining the battery instead of powering down. Caught because CLAUDE.md specifically flags this pattern as a common source of silent failures between C++ and Python. Co-Authored-By: Claude Opus 4.6 (1M context) --- selfdrive/thermald/thermald.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/thermald/thermald.py b/selfdrive/thermald/thermald.py index 12aee3b..15338b5 100755 --- a/selfdrive/thermald/thermald.py +++ b/selfdrive/thermald/thermald.py @@ -425,7 +425,7 @@ def thermald_thread(end_event, hw_queue) -> None: params.put_bool("DashcamShutdown", True) deadline = time.monotonic() + 15.0 while time.monotonic() < deadline: - if not params.getBool("DashcamShutdown"): + if not params.get_bool("DashcamShutdown"): cloudlog.info("dashcamd shutdown ack received") break time.sleep(0.5)