Knowledge Base Administration Guide

Regression Re-run flow

Simscope can be run in a workflow where you re-run fails.

The most common use case for attachments is for a re-run flow:

  1. Launch a nightly regression
  2. Query simscope to find a single instance of each signature which failed
  3. Rerun each signature from the regression, with waves/FSDB and logging enabled
    • Mark back into simscope the path with waves

Now, when engineers arrive at the office in the morning, they will have waves available automatically, and not have to wait for simulations to be re-run.

Rerun script template

If you want to build your own re-run flow using the skeleton template, you can edit simscope-rerun and implement the rerun_job function.

# Usage
> bin/simscope-rerun REGRESSION_NAME

# Example
> bin/simscope-rerun cpu_smoke_regr/14705

If you want to build your own custom re-run interface, or if you want to debug the regression output, you can run with the --print-only option.

  • This mode will print the regression's failing jobs in JSON format to STDOUT (and skip doing rerun).

You can then run simscope-job-attach to annotate jobs in Simscope with rerun status.

> bin/simscope-rerun smoke_regr/14705 --print-only

→ This will print an array of each failing job from the regression, in JSON format:

{
    "smoke_regr/14705": {
        "id": 18203,
        "name": "smoke_regr/14705",
        "component_id": 29,
        "model_branch": "default",
        "model_version": "deadbeef",
        "rerun_jobs": [
            {
                "sigid": 1230,
                "jobns": 1672877133755567000,
                "start_time": "2023-01-04T19:05:33-05:00",
                "finish_time": "2023-01-04T19:06:14-05:00",
                "userid": "pdq",
                "category": "test",
                "build": "release",
                "testgroup": "selftest",
                "compute_ms": 43433,
                "message": "0.079 [WARN ] Tunnel message contains invalid JSON: invalid character Z looking for beginning of value type=regr-start correlation_id=zz-bozo-regr json-body="
            ...
  • Note the rerun_jobs array contains the list of jobs to be rerun.

Job Rerun

Rerun can also be hooked in as a Signature Plugin, to re-run individual simulations, based on a failing signature job.