diff options
| author | Taras Madan <tarasmadan@google.com> | 2025-07-31 16:05:38 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2025-08-07 08:11:10 +0000 |
| commit | 00dc68fb94791fb479cdd1932b9dd6793f14fefd (patch) | |
| tree | 93270e95d5cef33e8c9862b6e81152c47d274b8b /dashboard/app/coverage.go | |
| parent | 9a42d6b1e05dfb4fb8867726c63ab9d1bc9d6840 (diff) | |
pkg/coveragedb: update file to subsystem info periodically
#6070 explains the problem of data propagation.
1. Add weekly /cron/update_coverdb_subsystems.
2. Stop updating subsystems from coverage receiver API.
Diffstat (limited to 'dashboard/app/coverage.go')
| -rw-r--r-- | dashboard/app/coverage.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/dashboard/app/coverage.go b/dashboard/app/coverage.go index 4611a7977..67a4494e0 100644 --- a/dashboard/app/coverage.go +++ b/dashboard/app/coverage.go @@ -21,6 +21,7 @@ import ( "github.com/google/syzkaller/pkg/html/urlutil" "github.com/google/syzkaller/pkg/validator" "google.golang.org/appengine/v2" + "google.golang.org/appengine/v2/log" ) var coverageDBClient spannerclient.SpannerClient @@ -393,3 +394,23 @@ func handleCoverageGraph(c context.Context, w http.ResponseWriter, r *http.Reque } return serveTemplate(w, "graph_histogram.html", data) } + +func handleUpdateCoverDBSubsystems(w http.ResponseWriter, r *http.Request) { + ctx := r.Context() + for ns, nsConfig := range getConfig(ctx).Namespaces { + service := nsConfig.Subsystems.Service + if service == nil { + continue + } + sss := service.List() + updatedRecords, err := coveragedb.RegenerateSubsystems(ctx, ns, sss, coverageDBClient) + if err != nil { + httpErr := fmt.Errorf("ns %s: %w", ns, err) + log.Errorf(ctx, "%s", httpErr.Error()) + http.Error(w, httpErr.Error(), http.StatusInternalServerError) + return + } + log.Infof(ctx, "%s: %v records updated\n", ns, updatedRecords) + fmt.Fprintf(w, "%s: %v records updated\n", ns, updatedRecords) + } +} |
