aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/app
Commit message (Collapse)AuthorAgeFilesLines
...
* dashboard: keep bug ID in Cc of forwarded emailsAleksandr Nogikh2025-07-102-11/+26
| | | | | | | | When we forward an email that matched an inbox regexp, make sure the author and the original report email are Cc'd. Otherwise the automation cannot determine the original bug report. Improve tests.
* dashboard/app: sort bugs by impactTaras Madan2025-07-082-0/+8
| | | | | The impact score is deducted from the title. Impact is max(known_titles).
* dashboard/app: fix nil-deref if no subsystems definedTaras Madan2025-07-031-3/+4
|
* dashboard: forward emails from designated inboxesAleksandr Nogikh2025-07-034-27/+168
| | | | | | For some specified inboxes, forward the emails that contain syz commands. Add tests to verify the behavior.
* dashboard: add send_email methodAleksandr Nogikh2025-07-031-0/+17
| | | | | The API method can be used to send a raw email on behalf of the GAE instance.
* dashboard/app: use crash types instead, no regexpsTaras Madan2025-07-021-11/+13
|
* dashboard: don't display GKE errors on the admin pageAleksandr Nogikh2025-06-261-1/+3
| | | | | GKE streams all stdout as severity=ERROR messages, which makes it too noisy to be useful on the Admin page of syzbot.
* dashboard/app: use page param type instead of hashmapTaras Madan2025-06-061-51/+40
| | | | It is a bit shorter.
* dashboard/app: simplify url parameters extractionTaras Madan2025-06-061-68/+35
| | | | Get parameters are the internal interface.
* dashboard/app: ns/cover?jsonl=1 supports manager and subsystem selectionTaras Madan2025-06-063-65/+148
| | | | | 1. Refactor handleHeatmap. 2. Introduce function options. Build them from http.Request.
* dashboard/app: disable old datastore backupTaras Madan2025-05-261-3/+0
| | | | | We're currently using alternative solution: https://cloud.google.com/datastore/docs/backups
* dashboard/app: email regressions in files onlyTaras Madan2025-05-192-3/+4
| | | | The lines about folders don't look actionable.
* dashboard/app: allow to set spanner context only from testsTaras Madan2025-05-059-27/+25
| | | | getSpannerClient returns prod client as a default.
* dashboard/app: fix bugs in handleCoverageReportsTaras Madan2025-05-022-5/+7
| | | | | 1. Set coverage db. 2. Use appUrl instead of r[.URL].Host.
* dashboard/app: send coverage report to ns-defined emailTaras Madan2025-04-307-21/+296
| | | | We periodically send coverage reports for the regressions detection.
* dashboard/app/templates: fix incorrect use of *Sort functionJeongjun Park2025-04-291-8/+4
| | | | | | | | | We are using incorrect *Sort functions when using some sortTable functions. Also, this is causing the current syz repro sort to not work. Thereforce we need to modify it to use the correct *Sort functions and remove unnecessary tab spaces to pass the intended text to the *Sort functions.
* dashboard: add missing access check for fsck logsAleksandr Nogikh2025-04-232-1/+19
| | | | | | | To make them accessible for non-admins, we need explicit checks in access.go. Extend TestAccess to cover fsck logs.
* dashboard/app: enable coverage pages formattingTaras Madan2025-04-111-2/+13
| | | | | | | | | | | | | cover.Format controls the resulting view. It allows to: 1. Remove records with 0 covered blocks. 2. Remove lines with low (user defined) coverage. 3. Order records by the covered lines drop value. The corresponding GET parameters are: 1. Implicitly enabled for onlyUnique records. 2. min-cover-lines-drop=%d 3. order-by-cover-lines-drop=1
* dashboard/app: allow user defined dateto for coverageTaras Madan2025-04-101-1/+8
| | | | | It allows to see records older than 12 periods. And it allows to specify the target for coverage regression analysis.
* dashboard/app: export info about uncovered blocks as wellDmitry Vyukov2025-04-102-31/+26
| | | | | | | | Currently it's only possible to understand total number of uncovered blocks in a function (implicitly defined by Instrumented field). This does not allow to render coverage data, nor do detailed analysis on line level. Export detailed info about both covered and uncovered blocks. This allows to e.g. calculate coverage percent for kernel interfaces.
* pkg/html: split off URL helpersAleksandr Nogikh2025-04-081-11/+12
| | | | | | | The existing pkg/html package transitively takes too many dependencies, which complicates the reuse of some of its methods. Split off a pkg/html/urlutil package.
* dashboard/app: allow quarter coverage analysisTaras Madan2025-04-071-2/+4
| | | | | | It was previously disabled because line coverage required data from BigQuery. It was too expensive. Coverage numbers are available in the Spanner now.
* dashboard/app: use machines with more memory for batch processingTaras Madan2025-04-071-3/+9
| | | | | | | 8 cores, 12 gig machines can't process quarter long aggregation for some reason. The process requires only 1 gig and do the stream processing. It is something else I don't fully understand. Local experiments show high memory consumptions by the git processes.
* dashboard/app: install opsagent to batch processorsTaras Madan2025-04-051-0/+1
| | | | | Quarter long aggregations are killed. OpsAgent may help to understand why.
* pkg/gcs: simplify interface, remove proxy typeTaras Madan2025-04-021-6/+2
|
* dashboard/app: double the requested CPUTaras Madan2025-04-011-2/+2
| | | | | We changes the machine type to c3-highmem-8. But forgot to double the CPU resources.
* dashboard/app: fix histogram numbersTaras Madan2025-03-281-1/+1
| | | | | | Some time ago we added the per-manager statistics. Histogram was broken since that moment. Closes #5867.
* dashboard/app: use more cores for coverage mergingTaras Madan2025-03-281-1/+1
| | | | Coverage merging often take more than 1 hour.
* all: opt-out some functions to enforce linter checksTaras Madan2025-03-271-0/+1
| | | | New code will be limited to max 7 function params.
* dashboard: include revoked reproducers in reportsAleksandr Nogikh2025-03-083-13/+78
| | | | | | | | | | | | | Context: #5829. Let's not pretend that the revoked reproducer never existed and still report it. It will avoid unexpected side-effects for the higher-level logic. There may be better ways to resolve the bug, but let's first just get it fixed to prevent syzbot from spamming the mailing lists. Add a test to verify the new behavior.
* pkg/manager: export programs + coverage jsonlTaras Madan2025-02-282-28/+10
| | | | | The export is quite big but is generated fast. Every line is a valid json object representing the single program coverage.
* all: remove loop variables scopingTaras Madan2025-02-175-6/+0
|
* dashboard/app: fix url generationTaras Madan2025-02-131-3/+3
| | | | | It currently generates &subsystem=null&manager=null&unique-only=null. I'd like to see &subsystem=&manager=&unique-only=
* dashboard/app: support gerrit servers as a webgit sourceTaras Madan2025-02-132-1/+5
| | | | | Gerrit servers return base64 encoded file content. To get the raw data, &format=TEXT request param is needed.
* dashboard/app: test jsonl coverage generationTaras Madan2025-02-072-2/+84
|
* dashboard/app: fix coverage jsonl formattingTaras Madan2025-02-061-1/+1
|
* all: fix html warningsTaras Madan2025-02-063-4/+4
| | | | Wrong closing tags etc.
* dashboard/app: export coverage jsonTaras Madan2025-02-062-0/+130
|
* pkg/cover: split logic, move some data processing to pkg/coveragedbTaras Madan2025-02-061-4/+4
|
* dashboard: include fsck results into email reportsAleksandr Nogikh2025-02-062-3/+24
|
* dashboard/app: pre-gzip all responsesTaras Madan2025-02-053-34/+171
|
* dashboard/app: use request contextTaras Madan2025-02-052-5/+3
| | | | It looks cheaper than appengine.NewContext().
* dashboard/app/app.yaml: go122 -> go123Taras Madan2025-02-041-1/+1
| | | | It is available in preview since Nov. 19 2024.
* dashboard/app: change coverage linksTaras Madan2025-01-313-10/+19
| | | | It will simplify the json API links.
* pkg/coveragedb: store information about covered file functions in dbTaras Madan2025-01-291-1/+1
|
* dashboard/app: auto-disable unique coverage checkbox for "*" managersTaras Madan2025-01-291-0/+10
|
* dashboard/app: test coverage /file linkTaras Madan2025-01-279-36/+268
| | | | | | | | 1. Init coveragedb client once and propagate it through context to enable mocking. 2. Always init coverage handlers. It simplifies testing. 3. Read webGit and coveragedb client from ctx to make it mockable. 4. Use int for file line number and int64 for merged coverage. 5. Add tests.
* dashboard/app: show manager unique coverageTaras Madan2025-01-272-7/+36
| | | | | | | | | | | | 1. Make heatmap testable, move out the spanner client instantiation. 2. Generate spannerdb.ReadOnlyTransaction mocks. 3. Generate spannerdb.RowIterator mocks. 4. Generate spannerdb.Row mocks. 5. Prepare spannerdb fixture. 6. Fixed html control name + value. 7. Added multiple tests. 8. Show line coverage from selected manager. 9. Propagate coverage url params to file coverage url.
* all: use min/max functionsDmitry Vyukov2025-01-177-67/+24
| | | | They are shorter, more readable, and don't require temp vars.
* dashboard/app: coverage page allows to specify analysis duration (columns)Taras Madan2025-01-101-1/+4
|