Improvements
------------
- packaging: rpm: added systemd's sysusers support (!1830)
+- controller: improved error handling when sending commands to workers (!1834)
Knot Resolver 6.3.0 (2026-04-27)
async def command_registered_workers(cmd: str) -> "Dict[KresID, object]":
async def single_pair(sub: "Subprocess") -> "Tuple[KresID, object]":
- return sub.id, await sub.command(cmd)
+ try:
+ return sub.id, await sub.command(cmd)
+ except BaseException as e:
+ logger.error(
+ "failed to command '%s' worker: %s",
+ sub.id,
+ e,
+ )
+ return sub.id, None
+
+ pairs = await asyncio.gather(
+ *(single_pair(inst) for inst in list(_REGISTERED_WORKERS.values())),
+ return_exceptions=False,
+ )
- pairs = await asyncio.gather(*(single_pair(inst) for inst in _REGISTERED_WORKERS.values()))
return dict(pairs)