Issue 1:
Apache Airflow version

2.2.2rc1 (release candidate)

Operating System

debian (docker)

Versions of Apache Airflow Providers

n/a

Deployment

Astronomer

Deployment details

Dockerfile:

astro dev start

FROM quay.io/astronomer/ap-airflow-dev:2.2.2-onbuild-48058

Two dags:

# one.py

@task
def a():
print("a")

@dag(schedule_interval=None, start_date=days_ago(2))
def my_dag():
a()

dag = my_dag()

# two.py

@task
def b():
print("b")

@dag(schedule_interval=None, start_date=days_ago(2))
def my_dag():
b()

dag = my_dag()

Note that they share the same dag_id: my_dag

What happened

Only one DAG appeared. In the tree-view, I would refresh the page and see the task change between:

task_id: a

task_id: b

seemingly at random.

What you expected to happen

At least, I expected a warning to appear. It seems that we used to have this: #15302

I think that in the presence of a dag_id collision, we should either:

refuse to run that dag at all until the collision is resolved

resolve it deterministically

How to reproduce

Include the two dags above and observe the "DAGs" view. Notice that there's only one DAG and it's not clear which one it is.

Anything else

No response

Are you willing to submit PR?

Yes I am willing to submit a PR!

Code of Conduct

I agree to follow this project's Code of Conduct

Issue 2:
Airflow 2.2.1rc2 testing

We have a kind request for all the contributors to the latest Apache Airflow RC 2.2.1rc2.

Could you please help us to test the RC versions of Airflow?

Please let us know in the comment if the issue is addressed in the latest RC.

Document changes related to PR #16634 (#18644): @Jorricks

Don't install SQLAlchemy/Pendulum adapters for other DBs (#18745): @JavierLopezT @ashb

Linked issues:

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: cannot allocate memory in static TLS block (#17546)

Don't bake ENV and _cmd into tmp config for non-sudo (#18772): @ashb @khalidmammadov

Linked issues:

Remove duplicate line of code for configuration copy (#18723)

Add Callbacks Section to Logging & Monitoring (#18842): @john-jac

Add information about keepalives for managed Postgres (#18850): @hpatel-higi @potiuk

Linked issues:

Scheduler stops running: psycopg2.OperationalError: SSL SYSCALL error: EOF detected (#18846)

Fix occassional deadlock on MSSQL test DagMaker cleanup (#18857): @potiuk

Group PATCH DAGrun together with other DAGRun endpoints (#18885): @BasPH

Fix catchup by limiting queued dagrun creation using max_active_runs (#18897): @ephraimbuddy

Check python version before starting triggerer (#18926): @jedcunningham

Try to move "dangling" rows in upgradedb (#18953): @uranusjr @sbialkowski-pixel

Linked issues:

Migrate from 2.1.4 to 2.2.0 (#18894)

Fix XCom.delete error in Airflow 2.2.0 (#18956): @jordanjeremy

Row lock TI query in SchedulerJob._process_executor_events (#18975): @ephraimbuddy

Fixes #18943 null execution date on insert to task_fail violating NOT NULL (#18979): @robinedwards

Linked issues:

IntegrityError inserting into task_fail table with null execution_date from TI.handle_failure_with_callback (#18943)

Sentry before send fallback (#18980): @leonsmith @joshzana

Linked issues:

Missing value for new before_send config causes airflow.exceptions.AirflowConfigException: section/key [sentry/before_send] not found in config (#18963)

Upgrade old DAG/task param format when deserializing from the DB (#18986): @ashb

fail backfill command before loading DAGs if missing args (#18994): @SamWheating

Workaround libstdcpp TLS error (#19010): @potiuk

Allow Param to support a default value of None (#19034): @jedcunningham

Warn about unsupported Python 3.10 (#19060): @mik-laj

Rename trigger page label to Logical Date (#19061): @uranusjr

Remove incorrect type comment in Swagger2Specification._set_defaults classmethod (#19065): @brain-buster

Relax packaging requirement (#19087): @uranusjr @andrewgodwin

Linked issues:

Add "packaging" to core requirements (#18122)

Change ds, ts, etc. back to use logical date (#19088): @uranusjr

Ensure task state doesn't change when marked as failed/success/skipped (#19095): @ephraimbuddy

add detailed information to logging when a dag or a task finishes. (#19097): @steveyz-astro

Hide tooltip when next run is none (#19112): @bbovenzi

Prevent scheduler crash when serialized dag is missing (#19113): @ephraimbuddy

Fix queued dag runs changes catchup=False behaviour (#19130): @robinedwards

Add test for interval timetable catchup=False (#19145): @uranusjr @robinedwards

Linked issues:

Fix queued dag runs changes catchup=False behaviour (#19130)

Crerate TI context with data interval compat layer (#19148): @uranusjr @andreychernih

Linked issues:

TypeError: unsupported operand type(s) for +=: 'NoneType' and 'datetime.timedelta' (#19143)

Faster db migration to Airflow 2.2 (#19166): @jedcunningham

Add TriggererJob to jobs check command (#19179): @mik-laj

Clearing ti.next_method and ti.next_kwargs on task finish. (#19183): @ReadytoRocc @jedcunningham

Linked issues:

Deferred TI's next_method is not cleared when Clearing a Successful Task (#19120)

Deferred TI's next_method and next_kwargs not cleared on retries (#18146)

Fix airflow jobs check cmd for TriggererJob (#19185): @mik-laj

Add DagRun.logical_date as a property (#19198): @uranusjr

Fix Unexpected commit error in schedulerjob (#19213): @ephraimbuddy

Linked issues:

Ensure task state doesn't change when marked as failed/success/skipped (#19095)

Thanks to all who contributed to the release (probably not a complete list!):

@ephraimbuddy @JavierLopezT @jedcunningham @sbialkowski-pixel @Jorricks @khalidmammadov @john-jac @brain-buster @andrewgodwin @joshzana @SamWheating @mik-laj @leonsmith @ReadytoRocc @ashb @robinedwards @potiuk @bbovenzi @jordanjeremy @steveyz-astro @BasPH @hpatel-higi @uranusjr @andreychernih

Committer

I acknowledge that I am a maintainer/committer of the Apache Airflow project.