Skip to content

thermal: don't call service->run() in main loop

It's not up to our main() to start the service, but it's the responsibility of the hwservicemanager.

Keeping the clientThread here means that we might end up calling its destructor in case of a "stop", which will crash:

F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
F DEBUG   : Abort message: 'Failed HIDL return status not checked. Usually this happens because of a transport error (error parceling, binder driver, or from unparceling). If you see this in code calling into "Bn" classes in for a HAL server process, then it is likely that the code there is returning transport errors there (as opposed to errors defined within its protocol). Error is: Status(EX_TRANSACTION_FAILED): 'DEAD_OBJECT: ''

So remove the leaking (and unused) clientThread variable.

Test: adb root && adb shell stop # does not reproduce crash Signed-off-by: Mattijs Korpershoek mkorpershoek@baylibre.com

Merge request reports