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:
- Launch a nightly regression
- Query simscope to find a single instance of each signature which failed
- 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
Print JSON only
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.