mobuchowski opened a new pull request, #68708:
URL: https://github.com/apache/airflow/pull/68708

   ### Why
   
   By default the OpenLineage listener emits each task-level event from a 
forked child process (os.fork() with no exec). That child inherits the task 
runner's connection to the Airflow supervisor; if there are issues with that 
connection - it can hang.
   
   There were a bunch of issues with that fixed in 3.2.x release - like #66574 
#65714 #66573 #67115 #66572 - but we still support earlier ones like 3.1.x line.
   
   ### What
   
   Add an opt-in `[openlineage] execute_in_thread` option (default False). When 
enabled, task-level emission runs in a time-bounded daemon thread instead of 
forking: nothing is inherited, so a blocked emission can never strand the task, 
and the task runner waits at most `[openlineage] execution_timeout` for 
emission before proceeding. Metadata extraction still runs in-process with full 
access to the task runtime, so Operators whose extractors resolve Connections, 
Variables or XComs keep working.
   
   The default (fork) path is unchanged.
   
   Verified on AWS MWAA and custom GKE Airflow environment.
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [ ] Yes (please specify the tool below)
   
   Generated-by: [Claude Code] following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   


-- 
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]

Reply via email to