Executions and Time Limits
Learn about different types of time limits on executions, and how they can affect your executions on the DNAnexus Platform.
Types of Time Limits
On the DNAnexus Platform, executions are subject to two independent time limits: job timeouts, and execution tree expirations.
Job Timeouts
Each job has a timeout setting. This setting denotes the maximum amount of “wall clock time” that the job can spend in the “running” state, i.e. running on the DNAnexus Platform.
If the job is still running when this limit is reached, the job will be terminated.
The default job timeout setting is 30 days, though individual apps may have different timeout settings, as specified by the app’s creator. A job may be given a custom timeout setting.
How Job Timeouts Work
As noted above, job timeouts only apply to the time a job spends in the "running" state.
Job timeouts do not apply to any time a job spends waiting to begin running - as, for example, when a job is waiting for inputs to become available.
Job timeouts also do not apply to the time a job may spend between exiting the “running” state, and entering the “done” state - as, for example, when it is waiting for subjobs to finish.
See this documentation to learn more about on the job lifecycle and job states.
Errors
If a job fails to complete running before reaching its timeout limit, it will be terminated, with the Platform returning JobTimeoutExceeded
as the job's failure reason.
Execution Tree Expiration
Each job is part of an execution tree. All jobs in an execution tree must complete running within 30 days of the launch of the tree’s root execution.
After this limit has been reached, all jobs within the execution tree lose the ability to access the Platform.
Note that if an execution tree is restarted, its timeout setting is not reset. Jobs in the tree lose Platform access 30 days after the initial launch (the first try) of the tree’s root execution.
Errors
If an execution tree reaches its time limit, jobs in the tree may not fail right away. If such a job is waiting for inputs or outputs, or if it is running without accessing the Platform, it may remain in that state. Only when the job tries to access the Platform will it fail. Depending on the access pattern, the Platform will return AppInternalError
, AppError
, or AuthError
as the job's failure reason.
Monitoring Time Limits
To see information on time limits for execution and execution trees:
Navigate to the project in which the execution or execution tree is being run.
Click the Monitor tab.
Click the name of the execution or execution tree to open a page showing detailed information on it.
If a time limit is approaching, a warning message information on when the limit will be reached.
f a job is waiting for subjobs to finish, it will be as running, but job timeout information will not be displayed. Execution tree information will continue to be displayed.
Last updated
Was this helpful?