Sorry wanted to clarify by the way, when I run `client.py` against server, I get an rpc error raised on the *first* `next` call, rather then on the 2nd one as I'd expect.
``` (grpc110) vagrant@vagrant:/vagrant$ python client.py Traceback (most recent call last): File "client.py", line 34, in <module> make_requests(make_client()) File "client.py", line 26, in make_requests next(resp) File "/home/vagrant/grpc110/lib/python3.6/site-packages/grpc/_channel.py", line 347, in __next__ return self._next() File "/home/vagrant/grpc110/lib/python3.6/site-packages/grpc/_channel.py", line 330, in _next raise self grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, test)> ``` On Friday, March 23, 2018 at 4:48:33 AM UTC-7, rvsh...@gmail.com wrote: > I was trying out python server streaming, and it is unclear to me if there > is a guarantee that the client will receive all messages the server sent. I > have a test setup here > https://github.com/rvshah825/grpc-python/tree/5f306d820458b539187a6c7fa80f7d3e7d2bed87 > > (client.py, server.py) > > The setup is that the client opens a stream request to server, and the > server returns a value then aborts the call. It seems that if I wait a > second on client before looking for replies on the stream, I never seen the > initial value, and instead only get abort. > > The reason I am opening in forum rather than as bug on tracker is that it > is unclear to me what is the expected behavior. Naively, I would assume > that if I consume the stream response in client calling `next` repeatedly > will give me the results that the server sent in order. I would consider > aborting to be a value, so in this test I assume that the stream of values > from server is [Response, Abort]. What is a little ambiguous is that since > the server is sending replies without waiting for requests from client, > maybe I cannot expect this? > > > > Platform I am testing on if relevant is: > ``` > (grpc110) vagrant@vagrant:/vagrant$ python > Python 3.6.4 (default, Jan 28 2018, 17:52:01) > (grpc110) vagrant@vagrant:/vagrant$ lsb_release -a > No LSB modules are available. > Distributor ID: Ubuntu > Description: Ubuntu 16.04.3 LTS > Release: 16.04 > Codename: xenial > (grpc110) vagrant@vagrant:/vagrant$ pip list > DEPRECATION: The default format will switch to columns in the future. You > can use --format=(legacy|columns) (or define a format=(legacy|columns) in > your pip.conf under the [list] section) to disable this warning. > grpcio (1.10.0) > grpcio-tools (1.10.0) > pip (9.0.3) > protobuf (3.5.2.post1) > setuptools (39.0.1) > six (1.11.0) > wheel (0.30.0) > > ``` > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+unsubscr...@googlegroups.com. To post to this group, send email to grpc-io@googlegroups.com. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/73ccca5a-511d-443a-aca6-34bf2a542009%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.