jscheffl commented on code in PR #65622:
URL: https://github.com/apache/airflow/pull/65622#discussion_r3119835164
##########
airflow-core/src/airflow/jobs/triggerer_job_runner.py:
##########
@@ -912,14 +912,20 @@ async def _aget_response(self, expect_id: int) ->
ToTriggerRunner | None:
raise RuntimeError(f"Response read out of order! Got {frame.id=},
{expect_id=}")
return self._from_frame(frame)
- async def asend(self, msg: ToTriggerSupervisor) -> ToTriggerRunner | None:
+ async def _asend(self, msg: ToTriggerSupervisor) -> ToTriggerRunner | None:
frame = _RequestFrame(id=next(self.id_counter), body=msg.model_dump())
bytes = frame.as_bytes()
+ self._async_writer.write(bytes)
+ return await self._aget_response(frame.id)
+ async def asend(self, msg: ToTriggerSupervisor) -> ToTriggerRunner | None:
Review Comment:
With this change you are masking the implementation in CommdDecoder.asend()
(in task-sdk/src/airflow/sdk/execution_time/comms.py:221) - but the problem of
multi-threading and locking is a generic problem.
Have you considered applying the same change in CommdDecoder base class?
(I assume this is also used for the case of async tasks in worker with the
new task run interface in Airflow 3.2, if we have async problems in triggerer
while sending/receiving, will it not be the same for any other async task using
the same in the base class?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]