Revert "Reland "Reland "[ArtifactExporter] Add checkpoints"""

This reverts commit 1a554ff3194b289bf7bfd03221f7c9e78e3ea94b.

Reason for revert: Still seeing elevated queue depth in dev.

Original change's description:
> Reland "Reland "[ArtifactExporter] Add checkpoints""
>
> This reverts commit cf1ed7dda520fbe49c0f4dc227f66adf4a5918f2.
>
> Relevant changes since last review: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5732803/2..3
>
> Looking at the logs when the problem happenned [1] (link in comment),  I can see most of the time out is related to the download artifact (although it is also possible that the export artifact takes so long that it did not consume the channel fast enough, leading to the slowness of the download).
>
> I look through the code and see little relation between adding the checkpoint and the increasing of download time. So my suspect goes to the increasing of ChromeOSMaxArtifactSize from 5MB -> 50 MB. My hypothesis goes like this:
> - There was nothing wrong with the checkpoints or spanner.
> - When we increased the ChromeOSMaxArtifactSize to 50MB, some tasks takes longer and time out.
> - The increasing of ChromeOSMaxArtifactSize to 50MB should only affect the amount of artifact downloaded in streaming manner, but for some reason they also congest the batch manner download as well (?). I saw some tasks that tried to download only vary small amount of small artifacts [2] but timed out after 10 mins.
>
> I checked the RBE quota around that time, but there was no noticeable increase.
>
>
> Original change's description:
> > Revert "Reland "[ArtifactExporter] Add checkpoints""
> >
> > This reverts commit 0b5a5a622fe3f588bfafb824cd0e90fbcb5e1cd8.
> >
> > Reason for revert: I see an increase in queue size and tasks got deadline exceeded.
> >
> > Original change's description:
> > > Reland "[ArtifactExporter] Add checkpoints"
> > >
> > > This is a reland of commit 2e4251df7f1a1391d02873415e7edbb98c648871
> > >
> > > Changes relative to last review: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5715471/1..3
> > >
> > > According to https://screenshot.googleplex.com/3gVQWA4sQjs4kK3, there were 2 common root cause of session leak. I checked for RowIterator and they all seem to be properly closed.
> > >
> > > One thing suspicious is that we created the ReadOnlyTransaction at the beginning, and keep that transaction through the whole task, which maybe 10 mins long. We only need it for a few queries at the beginning. This may contribute to the problem.
> > >
> > > Also added some logging and change from span.Apply -> BufferWrite (I am not sure if it helps).
> > >
> > > It this still does not solve the problem, my next step is to enable the TrackSessionHandles.
> > >
> > >
> > >
> > > Original change's description:
> > > > [ArtifactExporter] Add checkpoints
> > > >
> > > > In this CL:
> > > > - I increased the max artifact size for ChromeOS to 50MB, as we already have the limit for total invocation in place.
> > > > - We will increase the limit for invocation level later, after we verify checkpoint is working.
> > > > - Support checkpoint for artifacts.
> > > > - For big artifacts, we need special handling, because part of the artifact may be successfully exported in previous invocation run and we don't want to export them again.
> > > >
> > > > Bug:b/351046122
> > > > Change-Id: I0e64f809bc097a758481a20e91a4f762db15a6b9
> > > > Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5686697
> > > > Reviewed-by: Patrick Meiring <meiring@google.com>
> > > > Commit-Queue: Tuan Nguyen <nqmtuan@google.com>
> > >
> > > Bug: b/351046122
> > > Change-Id: I0a6d6ffa79d4f8fbce205c1ad9466e7f42dc3016
> > > Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5715471
> > > Commit-Queue: Tuan Nguyen <nqmtuan@google.com>
> > > Reviewed-by: Patrick Meiring <meiring@google.com>
> >
> > Bug: b/351046122
> > Change-Id: Ibdc7f9ee35f4c6d9b963d3d0edcdd3317570dc3f
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5719828
> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> > Auto-Submit: Tuan Nguyen <nqmtuan@google.com>
> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
>
> Bug: b/351046122
> Change-Id: Id428cb339985dee8cf812d3edf423304cef3bc3c
> Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5732803
> Reviewed-by: Patrick Meiring <meiring@google.com>
> Commit-Queue: Tuan Nguyen <nqmtuan@google.com>

Bug: b/351046122
Change-Id: I4d6473292983e165c3f1e3e44266f79102c41ba6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5739946
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Tuan Nguyen <nqmtuan@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
9 files changed
tree: f1bcd9a60e087e48b083204a3e76fbab093898c8
  1. analysis/
  2. appengine/
  3. auth/
  4. auth_service/
  5. bisection/
  6. build/
  7. buildbucket/
  8. casviewer/
  9. cipd/
  10. cipkg/
  11. client/
  12. common/
  13. config/
  14. config_service/
  15. cv/
  16. deploy/
  17. examples/
  18. gae/
  19. gce/
  20. grpc/
  21. hardcoded/
  22. led/
  23. logdog/
  24. luci_notify/
  25. lucicfg/
  26. lucictx/
  27. luciexe/
  28. mailer/
  29. milo/
  30. mmutex/
  31. provenance/
  32. resultdb/
  33. scheduler/
  34. scripts/
  35. server/
  36. standalone/
  37. starlark/
  38. swarming/
  39. teams/
  40. third_party/
  41. tokenserver/
  42. tools/
  43. tree_status/
  44. vpython/
  45. web/
  46. .gitallowed
  47. .gitattributes
  48. .gitignore
  49. .go-lintable
  50. AUTHORS
  51. codereview.settings
  52. CONTRIBUTING.md
  53. CONTRIBUTORS
  54. go.mod
  55. go.sum
  56. LICENSE
  57. OWNERS
  58. PRESUBMIT.py
  59. README.md
  60. tools.go
  61. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoReference

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

It is now possible to directly install tools with go install:

go install go.chromium.org/luci/auth/client/cmd/...@latest
go install go.chromium.org/luci/buildbucket/cmd/...@latest
go install go.chromium.org/luci/cipd/client/cmd/...@latest
go install go.chromium.org/luci/client/cmd/...@latest
go install go.chromium.org/luci/cv/cmd/...@latest
go install go.chromium.org/luci/gce/cmd/...@latest
go install go.chromium.org/luci/grpc/cmd/...@latest
go install go.chromium.org/luci/logdog/client/cmd/...@latest
go install go.chromium.org/luci/luci_notify/cmd/...@latest
go install go.chromium.org/luci/lucicfg/cmd/...@latest
go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest
go install go.chromium.org/luci/mailer/cmd/...@latest
go install go.chromium.org/luci/mmutex/cmd/...@latest
go install go.chromium.org/luci/resultdb/cmd/...@latest
go install go.chromium.org/luci/server/cmd/...@latest
go install go.chromium.org/luci/swarming/cmd/...@latest
go install go.chromium.org/luci/tokenserver/cmd/...@latest
go install go.chromium.org/luci/tools/cmd/...@latest

Contributing

Contributing uses the same flow as Chromium contributions.