Avoid Expensive Reruns

Sometimes a complete run may take too much time, and you may want to find ways to bypass an expensive execution, at least in the short term, in order to focus on a more urgent issue.

For example, in the simple flow shown below, there are three jobs in sequence. The second job takes "a long time", and the user is currently focused on the third job.

Figure 1. Three Jobs in Sequence Dependency. First and Third Jobs Should be Run, but not the Second

If, for whatever reason, the first job becomes INVALID, you are forced to wait a long time for the second job to finish in order to see work on the third job happen. This may not be acceptable. This section shows some ways to temporarily skip the execution of the long second job. We assume that the job has been executed at least once in the past so that some reasonable instance of dependent inputs are available for the third job.

Only a true run is a guarantee of a correct and repeatable result. The techniques shown in this section are only short-term workarounds to run jobs that are later in a flow sequence for experimental reasons.

Try Validate

This technique is available only from the GUI. You can select the job to skip and attempt to turn it valid using the context menu, by right-clicking and selecting Hold > Status > Try Validate, by clicking Node > Status > Try Validate from the top level menu.

After the job turns VALID, you can tell FlowTracer to set its internal state to be consistent by doing a sanity check command. If the job remains VALID as the internal state is made consistent, then the fake valid state is stable, and the job of interest can be run.

Force Validate

This technique is available only from the GUI interface. It is a way to fake out the dependency graph analysis by forcing the outputs of a job to appear older than the inputs. It is similar to what the option "-t" does in "make" in order to effectively touch a target that needs to be remade. The nodes that are forcefully validated through this technique are assigned a property called "FORCE_STATUS_CHANGE".

The Force Validate technique is dangerous because it may give a false sense of "validity". Check for the property "FORCE_STATUS_CHANGE" before considering the flow to be truly up to date. If any nodes exist with this property, then the flow is not actually up to date.

Using the "skip" Flag

Setting the 'skip' flag is also called turning on 'autoflow'.

The 'skip' flag of a job tells FlowTracer to automatically change the status of the job to VALID as soon as all inputs to the job are also VALID. This happens without any job execution.

Skipped jobs are identified in the GUI by having a slightly different colors than the other jobs.

Figure 2. "The Expensive Job" Node has Skip Flag Set to autoflow into VALID State, so the Node is Different Green Color
The skip flag can be used to:
  • skip over the execution of some jobs
  • waive some tests in a regression.

Using 'skip' to Skip Job Execution

Sometimes you may want to temporarily skip the execution of a job in order to execute other jobs further down in the flow. If the job is INVALID, FlowTracer will not execute any dependent jobs.

This flag is controlled in many ways:
  • Using the command vovjobskip
  • Using the 'Skip' entry in the pop-up menu in the GUI
  • Editing the job with the browser
  • Editing the job with the GUI