[roll] Roll fuchsia [fidl][cpp] Transport writes don't surface peer-closed (behavior change) Today one-way calls may fail because the remote server closed their endpoint. However this is a source of race conditions because one-way calls are not synchronization/rendezvous points between the client and server. One-way calls are used to stream values without waiting. In this CL the FIDL C++ bindings stops exposing peer-closed errors in one-way calls, event sending, and server reply sending. In short, all writes don't surface peer-closed errors. A common example is methods that involve `component::Open` (or the underlying fuchsia.io/Directory.Open calls). Sometimes the caller wanted to handle the error where the Open call fails because the remote endpoint is closed, so they code up some error handling logic that checks the one-way result of Open. However, that ignores the case where the remote endpoint closed just after sending Open, at which point the pipelined protocol is still closed, but Open appears to succeed. Usually, people should use the same error handling logic for those two cases, because in production it'll happen racily. But having Open return peer-closed forces the error to be handled in two places (and quite often the second place is forgotten). So this is a pragmatic trade-off to converge errors to one place. C++ generated interface for two-way calls don't return anything to the user, so there is no behavior change in those functions. Tested via new cases in the client/server suite. Original-Bug: 113160 Run-All-Tests: True Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/780723 Original-Revision: a3223fd266abd57e10c6863620333fd1e4785811 GitOrigin-RevId: a44d95f37d0a58ba9f583ccf618dcb1e0536a6c1 Change-Id: Ie4ac32d28871ab56a2ad888836d56975a801f6b1
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.