The GitHub Actions job "Tests (AMD)" on airflow.git/dbfree-venv-operator-tests 
has failed.
Run started by GitHub user potiuk (triggered by potiuk).

Head commit for run:
af9a015da2c1cf5509e914dc5fa6d90fcd17a743 / Jarek Potiuk <[email protected]>
Run standard venv operator tests DB-free so they parallelize under xdist

PythonVirtualenvOperator/ExternalPythonOperator tests dominate the
`Providers[standard]` suite (~450s of ~510s) because they build real
virtualenvs, and they were forced to run serially: marked `db_test`,
so pytest-xdist could not parallelize them.

Their only real DB coupling was the test harness, not the metadata DB —
but the venv subprocess reconnects to the supervisor over a socket, so
they cannot use the plain `run_task` mock (no real socket → `OSError:
Socket operation on non-socket`).

Add an optional `client=` parameter to `InProcessTestSupervisor.start()`
(and `run_task_in_process`) so a task can run through the real supervisor
socketpair with an injected Execution-API client instead of the
DB-backed in-process API server.

Add `tests_common.test_utils.in_process_taskrun.run_task_no_db`, which
uses a real `Client(dry_run=True)` whose transport remembers XCom writes
in an in-memory dict — so a venv operator runs with a working supervisor
socket and no metadata DB, and its pushed XCom can be asserted.

Convert `TestPythonVirtualenvOperator` and `TestExternalPythonOperator`
onto it (via a `_DBFreeVenvRun` mixin) and drop their `db_test` mark, so
they parallelize under `--skip-db-tests --use-xdist`. On Airflow 2.x (no
`InProcessTestSupervisor`) the classes fall back to the DB-backed path
and keep `db_test`; on Airflow 3.x releases without the new `client=`
param the helper falls back to overriding `_api_client`. Branch venv
classes keep `db_test` (their multi-task assertions need a real DAG run).

Measured: the two classes run ~3x faster at `-n 4` (157 tests, 89s vs
~266s serial); larger gains at CI worker counts.

Report URL: https://github.com/apache/airflow/actions/runs/27526090775

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to