Scroll to navigation

CONDOR_DAG_CHECKER(1) HTCondor Manual 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

Allow use of illegal characters in node names.
Process external submit and Sub-DAG files if they exist.
Best effort process node submit descriptions similar to condor_submit <href="../man-pages/condor_submit.html"> -dry-run
Check that node scripts exist.
Best effort process Sub-DAG files.
-[No]JoinNodes
Enable/Disable use of join nodes in produced DAG. Enabled by default.
Print results into JSON format.
Print statistics about the parsed DAG.
Require external files checked to exists during processing or be considered an error.
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 <href="../man-pages/condor_submit.html"> -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 <href="../automated-workflows/dagman-reference.html#INCLUDE"> and SPLICE <href="../automated-workflows/dagman-reference.html#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.

June 17, 2026