Skip to content

Commit 6e1400d

Browse files
committed
Fix exception handling bugs in EV and PV managers
Also use `logging.exception` to log broad exceptions Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 30f19c0 commit 6e1400d

File tree

3 files changed

+15
-18
lines changed

3 files changed

+15
-18
lines changed

src/frequenz/sdk/actor/power_distributing/_component_managers/_battery_manager.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -672,13 +672,12 @@ def _parse_result(
672672
battery_ids,
673673
request_timeout.total_seconds(),
674674
)
675-
except Exception as e: # pylint: disable=broad-except
675+
except Exception: # pylint: disable=broad-except
676676
failed_power += distribution[inverter_id]
677677
failed_batteries = failed_batteries.union(battery_ids)
678-
_logger.warning(
679-
"Unknown error while setting power to battery %s: %s",
678+
_logger.exception(
679+
"Unknown error while setting power to batteries: %s",
680680
battery_ids,
681-
e,
682681
)
683682

684683
return failed_power, failed_batteries

src/frequenz/sdk/actor/power_distributing/_component_managers/_ev_charger_manager/_ev_charger_manager.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,21 +331,20 @@ async def _set_api_power(
331331
succeeded_components.add(component_id)
332332

333333
match task.exception():
334-
case asyncio.CancelledError:
334+
case asyncio.CancelledError():
335335
_logger.warning(
336336
"Timeout while setting power to EV charger %s", component_id
337337
)
338-
case grpc.aio.AioRpcError as err:
338+
case grpc.aio.AioRpcError() as err:
339339
_logger.warning(
340340
"Error while setting power to EV charger %s: %s",
341341
component_id,
342342
err,
343343
)
344-
case e if e is not None:
345-
_logger.warning(
346-
"Unknown error while setting power to EV charger %s: %s",
344+
case Exception():
345+
_logger.exception(
346+
"Unknown error while setting power to EV charger: %s",
347347
component_id,
348-
e,
349348
)
350349
if failed_components:
351350
return PartialFailure(

src/frequenz/sdk/actor/power_distributing/_component_managers/_pv_inverter_manager/_pv_inverter_manager.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,21 +191,20 @@ async def _set_api_power( # pylint: disable=too-many-locals
191191
succeeded_components.add(component_id)
192192

193193
match task.exception():
194-
case asyncio.CancelledError:
194+
case asyncio.CancelledError():
195195
_logger.warning(
196-
"Timeout while setting power to EV charger %s", component_id
196+
"Timeout while setting power to PV inverter %s", component_id
197197
)
198-
case grpc.aio.AioRpcError as err:
198+
case grpc.aio.AioRpcError() as err:
199199
_logger.warning(
200-
"Error while setting power to EV charger %s: %s",
200+
"Error while setting power to PV inverter %s: %s",
201201
component_id,
202202
err,
203203
)
204-
case e if e is not None:
205-
_logger.warning(
206-
"Unknown error while setting power to EV charger %s: %s",
204+
case Exception():
205+
_logger.exception(
206+
"Unknown error while setting power to PV inverter: %s",
207207
component_id,
208-
e,
209208
)
210209
if failed_components:
211210
await self._results_sender.send(

0 commit comments

Comments
 (0)