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]
