siso: end the proxy's GetTree stream cleanly The proxy's GetTree stopped reading as soon as a page came back without a next_page_token, and returned any other Recv error to the client as is. Both are wrong. The backend ends the stream with io.EOF after the last page. When that page still carries a next_page_token, which tells the client to ask for the next page in a new call, the proxy kept reading, got io.EOF and returned it from the handler. gRPC turns that into an Unknown "EOF" error for the client. An empty tree fails the same way, because the backend EOFs without sending a page. When the last page had no token, the proxy returned while the upstream stream was still open, so gRPC canceled it and the backend recorded a successful GetTree as canceled. Forward pages until io.EOF instead. The page token needs no special handling: it rides along on the last page, and the client issues its own follow-up call. Change-Id: I8f4c0d21a5e6b3d7c9a1f2e4b6d8a0c3e5f7b9d1 Reviewed-on: https://chromium-review.googlesource.com/c/build/+/8114150 Reviewed-by: Fumitoshi Ukai <ukai@google.com> Commit-Queue: Philipp Wollermann <philwo@google.com>
This repository contains tools developed and owned by the Chrome Build Team.
The steps for getting the code are:
git clone https://chromium.googlesource.com/buildWe use the standard Go module workflow to work on our projects.