siso: complete upstream Execute streams cleanly in the proxy

The proxy returned from its Execute and WaitExecution handlers right
after forwarding the done operation, abandoning the upstream stream.
gRPC cancels a stream that its handler stops reading, so the backend
recorded every Execute as canceled even though it succeeded. Anything
that counts errors upstream sees the whole build as failing RPCs.

Read the trailing EOF the backend sends after the done operation before
returning, so the stream completes cleanly.

Change-Id: I32b85bda5f18de4769fd0c891807f39c084a82e2
Reviewed-on: https://chromium-review.googlesource.com/c/build/+/8114149
Reviewed-by: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Philipp Wollermann <philwo@google.com>
1 file changed
tree: d210425f3fc28680b54311c3fe8caaa71cbf9aeb
  1. bench/
  2. gong/
  3. hashigo/
  4. infra/
  5. kajiya/
  6. kzipinfo/
  7. remote-apis/
  8. runmc/
  9. siso/
  10. .gitignore
  11. .golangci.yml
  12. .style.yapf
  13. BUILD_OWNERS
  14. BUILD_TEAM_OWNERS
  15. CONTRIBUTING.md
  16. LICENSE
  17. OWNERS
  18. PRESUBMIT.py
  19. README.md
  20. WATCHLISTS
README.md

build.git repository

This repository contains tools developed and owned by the Chrome Build Team.

Quick start

The steps for getting the code are:

  1. Install depot_tools
  2. Run git clone https://chromium.googlesource.com/build

We use the standard Go module workflow to work on our projects.

Links