Skip to content

Commit 9efe842

Browse files
jluebbeEmantor
authored andcommitted
remote/coordinator: add names for asyncio tasks
This helps with debugging, as tasks don't use the default names of "Task-<ID>". Signed-off-by: Jan Luebbe <[email protected]>
1 parent a919c66 commit 9efe842

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

labgrid/remote/coordinator.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ def __init__(self) -> None:
195195
self.load()
196196

197197
self.loop = asyncio.get_running_loop()
198-
self.poll_task = self.loop.create_task(self.poll())
198+
self.poll_task = self.loop.create_task(self.poll(), name="coordinator-poll")
199199

200200
async def _poll_step(self):
201201
# save changes
@@ -298,6 +298,7 @@ async def request_task():
298298
name = in_msg.startup.name
299299
session = self.clients[peer] = ClientSession(self, peer, name, out_msg_queue, version)
300300
logging.debug("Received startup from %s with %s", name, version)
301+
asyncio.current_task().set_name(f"client-{peer}-rx/started-{name}")
301302
elif kind == "subscribe":
302303
if in_msg.subscribe.all_places:
303304
session.subscribe_places()
@@ -309,7 +310,8 @@ async def request_task():
309310
except Exception:
310311
logging.exception("error in client message handler")
311312

312-
running_request_task = self.loop.create_task(request_task())
313+
asyncio.current_task().set_name(f"client-{peer}-tx")
314+
running_request_task = self.loop.create_task(request_task(), name=f"client-{peer}-rx/init")
313315

314316
try:
315317
async for out_msg in queue_as_aiter(out_msg_queue):
@@ -389,6 +391,7 @@ async def request_task():
389391
session = self.exporters[peer] = ExporterSession(self, peer, name, command_queue, version)
390392
logging.debug("Exporters: %s", self.exporters)
391393
logging.debug("Received startup from %s with %s", name, version)
394+
asyncio.current_task().set_name(f"exporter-{peer}-rx/started-{name}")
392395
elif kind == "resource":
393396
logging.debug("Received resource from %s with %s", name, in_msg.resource)
394397
action, _ = session.set_resource(
@@ -405,7 +408,8 @@ async def request_task():
405408
except Exception:
406409
logging.exception("error in exporter message handler")
407410

408-
running_request_task = self.loop.create_task(request_task())
411+
asyncio.current_task().set_name(f"exporter-{peer}-tx")
412+
running_request_task = self.loop.create_task(request_task(), name=f"exporter-{peer}-rx/init")
409413

410414
try:
411415
async for cmd in queue_as_aiter(command_queue):
@@ -958,6 +962,7 @@ async def GetReservations(self, request: labgrid_coordinator_pb2.GetReservations
958962

959963

960964
async def serve(listen, cleanup) -> None:
965+
asyncio.current_task().set_name("coordinator-serve")
961966
# It seems since https://github.com/grpc/grpc/pull/34647, the
962967
# ping_timeout_ms default of 60 seconds overrides keepalive_timeout_ms,
963968
# so set it as well.

0 commit comments

Comments
 (0)