This document contains useful queries and commands that should be performed manually in exceptional situations.
This is important for situations where there is some compilation error for a stable benchmark, with a stable release of the compiler. While this should be rare, it happens sometimes e.g. because of future incompatibility lints turning into errors.
The benchmark should be fixed first, and then the DB should be altered (see below).
The easiest solution is to simply completely remove the artifact from the DB. You can do that either using the following command:
$ cargo run --bin collector purge_artifact <artifact-name> # $ cargo run --bin collector purge_artifact 1.70.0 # Remove stable artifact 1.70.0
Or using SQL queries. There are ON DELETE CASCADE
clauses for aid
(artifact ID) on tables that reference it, so it should be enough to just delete the artifact from the artifact
table. The set of queries below show an example of removing the measured data and errors for Rust 1.69
and 1.70
:
DELETE FROM artifact WHERE name IN ('1.69.0', '1.70.0') AND type = 'release';
After executing this query, the server should automatically re-benchmark these artifacts again.
This is similar to removing a stable artifact, however it also has to be removed from the pull_request_build
table.
DELETE FROM artifact WHERE name = "<sha>"; DELETE FROM pull_request_build WHERE bors_sha = "<sha>";
After that, the server has to be restarted, or you have to send a GET request to its /perf/onpush
endpoint.