[gold] /json/v2/search RPC: Exclude digests with optional key disallow_triaging=true from BulkTriageDeltaInfos.

For CLs, this change adds the overhead of looking up the optional keys for each extendedBulkTriageDeltaInfo. I don't expect this to add significant latency to the RPC because it uses the options cache[1], and because the query for cache misses should be fast.

For the primary branch, we have the additional step of fetching the optionIDs for each digest. This is done via a single query against the TraceValues table (inspired in [2]). I expect this query to be pretty fast because the WHERE clause leverages the table's index.

[1] https://skia.googlesource.com/buildbot/+/264f3ee077677f5eddf47808a3f33987322f05a6/golden/go/search/search.go#1627
[2] https://skia.googlesource.com/buildbot/+/264f3ee077677f5eddf47808a3f33987322f05a6/golden/go/search/search.go#1818

Bug: skia:14033
Change-Id: I55765b64308e826b949e87e06ecc9b5fc3297d42
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/658056
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2 files changed
tree: e71c629645a1608309f8e055245323ae8551072a
  1. am/
  2. android_ingest/
  3. android_stats/
  4. api/
  5. autoroll/
  6. bash/
  7. bazel/
  8. blamer/
  9. bugs-central/
  10. cd/
  11. cherrypick-watcher/
  12. cmd/
  13. codereview-watcher/
  14. codesize/
  15. comments/
  16. comp-ui/
  17. cq_watcher/
  18. ct/
  19. datahopper/
  20. debugger-app/
  21. demos/
  22. docker/
  23. docker_pushes_watcher/
  24. docs/
  25. docsyserver/
  26. ds/
  27. elements-sk/
  28. email/
  29. external/
  30. fiddlek/
  31. firestore/
  32. get_service_account/
  33. gitsync/
  34. go/
  35. gold-client/
  36. golden/
  37. infra/
  38. infra-sk/
  39. jsdoc/
  40. jsfiddle/
  41. k8s-checker/
  42. k8s-deployer/
  43. kube/
  44. leasing/
  45. licenses/
  46. machine/
  47. make/
  48. modules/
  49. named-fiddles/
  50. new_element/
  51. npm-audit-mirror/
  52. perdiff/
  53. perf/
  54. periodic-trigger/
  55. proberk/
  56. promk/
  57. puppeteer-tests/
  58. sa-keys-checker/
  59. scrap/
  60. scripts/
  61. shaders/
  62. sk/
  63. skbug/
  64. skcq/
  65. skfe/
  66. skolo/
  67. skottie/
  68. static_server/
  69. status/
  70. task_driver/
  71. task_scheduler/
  72. test-service/
  73. third_party/
  74. tools/
  75. tree_status/
  76. trybot_updater/
  77. .bazelignore
  78. .bazelrc
  79. .bazelversion
  80. .eslintrc.js
  81. .gitattributes
  82. .gitignore
  83. .npmrc
  84. .puppeteerrc.js
  85. .vpython
  86. BAZEL_CHEATSHEET.md
  87. BUILD.bazel
  88. build_infra_prod.sh
  89. cipd.ensure
  90. codereview.settings
  91. DATASTORE.md
  92. demopage.sh
  93. DEPS
  94. go.mod
  95. go.sum
  96. go_repositories.bzl
  97. karmatest.sh
  98. launch.md
  99. LICENSE
  100. Makefile
  101. OWNERS
  102. package-lock.json
  103. package.json
  104. PRESUBMIT.py
  105. PRIVACY_POLICY.md
  106. README.md
  107. STYLEGUIDE.md
  108. tools.go
  109. tsconfig.json
  110. whitespace.txt
  111. WORKSPACE
README.md

Skia-Buildbot Repository

This repo contains infrastructure code for Skia.

Getting the Source Code

The main source code repository is a Git repository hosted at https://skia.googlesource.com/buildbot.git. It is possible to check out this repository directly with git clone or via go get.

Using git clone allows you to work in whatever directory you want. You will still need to set GOPATH in order to build some apps (recommended to put this in a cache dir). E.g.:

$ cd ${WORKDIR}
$ git clone https://skia.googlesource.com/buildbot.git
$ export GOPATH=${HOME}/.cache/gopath/$(basename ${WORKDIR})
$ mkdir $GOPATH
$ cd buildbot

Install dependencies

Almost all applications are built with Bazel, and bazelisk is the recommended tool to ensure you have the right version of bazel installed:

go install github.com/bazelbuild/bazelisk@latest
go install github.com/bazelbuild/buildtools/buildifier@latest
go install github.com/kisielk/errcheck@latest
go install golang.org/x/tools/cmd/goimports@latest
go install github.com/mikefarah/yq/v4@latest
go install go.chromium.org/luci/client/cmd/...@latest

Install other dependencies:

sudo apt-get install jq

Build ~everything

bazelisk build --config=mayberemote //...

Test everything

bazelisk test --config=mayberemote //...

Generated Code

To update generated code run the following in any directory:

go generate ./...

Running unit tests

Install Cloud SDK.

Use this command to run the presubmit tests:

./run_unittests --small