CONDOR_DAG_CHECKER(1)

πŸ’– CONDOR_DAG_CHECKER(1) πŸ’–

okay bestie, so this is a page from the HTCondor Manual and babes, it's about condor_dag_checker β€” the little tool that goes through your DAG file(s) and sniffs out any syntactical and logical issues before you even try to run them. it's giving pre-flight check, it's giving "i'm protecting you from yourself", and honestly? we're obsessed. 🩷


✨ NAME ✨

condor_dag_checker β€” HTCondor Manual

Process provided DAG file(s) for syntactical and logical issues. yeah. that's the whole job. it reads your DAG and tells you what's wrong with it. no cap.


🌸 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 πŸ¦‹

So what it does is: it processes the DAG file(s) you hand it and looks for any issue that would stop a DAG from being created and executed. πŸ’…

And what counts as an "issue"? Things like β€” but not limited to, bestie, don't @ me β€”

  • incorrect DAG command syntax
  • referencing nodes that are literally undefined πŸ‘»
  • cyclic dependencies (round and round and round, a toxic situationship fr)

πŸŽ€ OPTIONS πŸŽ€

  • -AllowIllegalChars β€” let node names have illegal characters in them. you're breaking the rules but like, on purpose.
  • -CheckExternalFiles β€” go process external submit files and Sub-DAG files, if they exist.
  • -CheckJDL β€” best effort processing of node submit descriptions, similar to what condor_submit -dry-run does.
  • -CheckScripts β€” check that node scripts actually exist. they gotta be there, periodt.
  • -CheckSubDags β€” best effort processing of Sub-DAG files.
  • -[No]JoinNodes β€” enable/disable use of join nodes in the produced DAG. Enabled by default, so if you want it off you say -NoJoinNodes.
  • -json β€” print the results into JSON format. for the tech girlies who love structured data πŸ”₯
  • -Statistics β€” print statistics about the parsed DAG.
  • -Strict β€” require that external files checked actually exist during processing, or else it counts as an error. no more "eh, it's fine".
  • -UseDagDir β€” switch into the DAG file's directory before parsing. cute little cd, but make it official.

🌈 GENERAL REMARKS 🌈

okay this part is important, listen up. πŸ‘‘

By default, this tool does not check any external files that the DAG uses β€” meaning scripts, submit files, Sub-DAGs β€” because those can be dynamically generated during DAGMan's lifetime. like, they might not even exist yet when you're checking! so it's not being lazy, it's being smart. 🧠

If you use -CheckExternalFiles, that enables this tool to also process Sub-DAGs and submit files (akin to condor_submit -dry-run). This is best effort β€” it only processes the external files if they exist. And if you want an actual error reported when those external files don't exist, use -Strict.

Also: this tool will process files specified by the INCLUDE and SPLICE commands. yes ma'am, it follows the tea. β˜•


πŸ’€ 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

like… nothing? okay we're self-sufficient, we're the whole meal, we're the main character energy here. πŸ’…


🫢 AVAILABILITY 🫢

  • Linux, MacOS, Windows

Introduced in v24.10.1 of HTCondor. so she's new-ish, she's fresh, she's iconic. πŸ‘‘


πŸ’– AUTHOR πŸ’–

HTCondor Team


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.


and that's the whole vibe check bestie, go forth and validate your DAGs before they ghost you πŸ¦‹

okay mwah, this was the HTCondor Manual edition of CONDOR_DAG_CHECKER(1), dated Oct 16, 2026 β€” luv u, bye!! πŸ’œβœ¨

πŸ“¦ where this page comes from