CONDOR_DAG_CHECKER(1)

NAME
condor_dag_checker - HTCondor Manual

Process provided DAG file(s) for syntactical and logical issues.

SYNOPSIS

condor_dag_checker [-help]

condor_dag_checker [OPTIONS] DAG_File [DAG_File ...]

condor_dag_checker [-AllowIllegalChars] [-UseDagDir] [-[No]JoinNodes] [-json | -Statistics] [-CheckExternalFiles] [-CheckJDL] [-CheckScripts] [-CheckSubDags] [-Strict]

DESCRIPTION

Process provided DAG file(s) for any issues that would prevent the creation and execution of a DAG. Issues include, but are not limited to, incorrect DAG command syntax, referencing undefined nodes, and cyclic dependencies.

OPTIONS

-AllowIllegalChars
    Allow use of illegal characters in node names.

-CheckExternalFiles
    Process external submit and Sub-DAG files if they exist.

-CheckJDL
    Best effort process node submit descriptions similar to condor_submit -dry-run

-CheckScripts
    Check that node scripts exist.

-CheckSubDags
    Best effort process Sub-DAG files.

-[No]JoinNodes
    Enable/Disable use of join nodes in produced DAG. Enabled by default.

-json
    Print results into JSON format.

-Statistics
    Print statistics about the parsed DAG.

-Strict
    Require external files checked to exists during processing or be considered an error.

-UseDagDir
    Switch into the DAG file's directory prior to parsing.

GENERAL REMARKS

This tool by default does not check any external files that are used by the DAG (i.e. scripts, submit files, Sub-DAGs) because these can be dynamically generated during DAGMan's lifetime. Using -CheckExternalFiles will enable this tool to also process Sub-DAGs and submit files (akin to condor_submit -dry-run). This is best effort and only process the external files if they exist. Use -Strict to report an error if these external files do not exist.

This tool will process files specified by the INCLUDE and SPLICE commands.

EXIT STATUS

0 - Success (No issues detected in DAG files(s))

1 - Failure (Issue detected with DAG file(s))

2 - Tool execution failure

EXAMPLES

Example checking DAG file diamond.dag for issues:

$ condor_dag_checker diamond.dag

Example getting statistics about DAG file diamond.dag:

$ condor_dag_checker -statistics diamond.dag

Example getting JSON formatted information about DAG file diamond.dag:

$ condor_dag_checker -json diamond.dag

Example checking multiple DAG files for issues:

$ condor_dag_checker first.dag second.dag third.dag

Example use DAG file directories during processing:

$ condor_dag_checker -usedagdir subdir1/simple.dag subdir2/simple.dag

Example comparing DAG file with and without join nodes:

$ condor_dag_checker -stat -JoinNodes sample.dag
$ condor_dag_checker -stat -NoJoinNodes sample.dag

Example processing Sub-DAGs best effort:

$ condor_dag_checker -CheckSubDags russian-nested.dag

Example processing node submit descriptions best effort:

$ condor_dag_checker -CheckJDL sample.dag

Example verifying all node scripts exist:

$ condor_dag_checker -CheckScripts sample.dag

Example checking all external files for existence and validity:

$ condor_dag_checker -CheckExternalFiles -strict sample.dag

SEE ALSO

•   None

AVAILABILITY

Linux, MacOS, Windows

Introduced in v24.10.1 of HTCondor

AUTHOR
HTCondor Team

COPYRIGHT
1990-2026, Center for High Throughput Computing, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI, US. Licensed under the Apache License, Version 2.0.