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

   Related: #62192
   
   The AWS Batch Executor still calls `TaskInstance.command_as_list()` from 
`try_adopt_task_instances()`. That method is not available in Airflow 3 after 
the Task SDK changes.
   
   This is triggered when the scheduler restarts or fails over and tries to 
adopt orphaned task instances that still have an `external_executor_id` 
pointing to an AWS Batch job. The scheduler calls 
`adopt_or_reset_orphaned_tasks()`, the Batch executor describes the existing 
Batch jobs, and then crashes while rebuilding the command for the adopted task 
instance:
   
   `AttributeError: TaskInstance object has no attribute command_as_list`
   
   The normal submission path already handles Task SDK workloads. This change 
makes the adoption path use the same Task SDK command serialization on Airflow 
3 while keeping the existing `command_as_list()` behavior for Airflow 2.
   
   This mirrors the ECS executor fix from #62192 for the AWS Batch executor.
   
   Testing:
   - `prek run --files 
providers/amazon/src/airflow/providers/amazon/aws/executors/batch/batch_executor.py
 providers/amazon/tests/unit/amazon/aws/executors/batch/test_batch_executor.py`
   - `/Users/ambaena/.local/bin/uv run --project providers/amazon pytest 
providers/amazon/tests/unit/amazon/aws/executors/batch/test_batch_executor.py 
-k "try_adopt_task_instances or serialize_workload_to_command or 
build_task_command" -xvs`
   
   Disclosure: I used an AI assistant to help investigate the failure mode and 
cross-check the proposed fix. I reviewed the final code and tests myself.


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