Example:
DAG structure:
```
default_args = {
    'owner': 'dimon',
    'depends_on_past': False,
    'start_date': datetime(2021, 1, 10)
}

dag = DAG(
    'dummy-dag',
    schedule_interval='21 2 * * *',
    catchup=False,
    default_args=default_args
)

DagContext.push_context_managed_dag(dag)
task1 = BashOperator(task_id='task1', bash_command='echo 1')
task2 = BashOperator(task_id='task2', bash_command='echo 2')
task2 << task1
task3 = BashOperator(task_id='task3', bash_command='echo 3')
```

Let’s say you’ve missed the button and typed `--task-regex task4`.
When the backfill starts, firstly it will create a new empty DagRun and puts it in DB. Then the backfill job will go and try to find tasks that match the regex you’ve entered, will not find any obviously and will be stuck in the “running” state together with newly created DagRun forever.

airflow/cli/commands/dag_command.py
from airflow.utils.session import create_session, provide_session
from airflow.utils.state import State
@cli_utils.action_logging
def dag_backfill(args, dag=None):
    """Creates backfill job or dry run for a DAG"""
    logging.basicConfig(level=settings.LOGGING_LEVEL, format=settings.SIMPLE_LOG_FORMAT)
    signal.signal(signal.SIGTERM, sigint_handler)
    import warnings
    warnings.warn(
        '--ignore-first-depends-on-past is deprecated as the value is always set to True',
        category=PendingDeprecationWarning,
    )
    if args.ignore_first_depends_on_past is False:
        args.ignore_first_depends_on_past = True
    dag = dag or get_dag(args.subdir, args.dag_id)
    if not args.start_date and not args.end_date:
        raise AirflowException("Provide a start_date and/or end_date")
    
    args.end_date = args.end_date or args.start_date
    args.start_date = args.start_date or args.end_date
    if args.task_regex:
        dag = dag.partial_subset(
            task_ids_or_regex=args.task_regex, include_upstream=not args.ignore_dependencies
        )
    run_conf = None
    if args.conf:
        run_conf = json.loads(args.conf)
    if args.dry_run:
        print(f"Dry run of DAG {args.dag_id} on {args.start_date}")
        for task in dag.tasks: