I saw your pdf on using gRPC for long lived and streaming RPC and would like to 
ask some questions about RpcException and other issues we're getting issuing 
unary RPC commands from our c# server app to our localhost c++ app.

We replaced WCF with gRPC for our inter-process communication, so it's all just 
over localhost using the HTTP/2 transport. Our Platform runs in C# and needs to 
communicate with the Game (C++). Because some of the calls are Platform->Game, 
we have a Server set up game side, which the Platform C# client calls. And 
because some of the calls are Game->Platform, we have the opposite set up. Both 
servers are on different ports on localhost.

The RpcException is the most frequent and where we have the most information 
about. Usually, what we'll see is the C++ Server receives the RPC call and runs 
into an unknown frame type. Then the subchannel goes into shutdown and 
everything usually re-connects fine.

What we've seen with the unknown frame type, is that the C++ server parses the 
HEADERS, WINDOW_UPDATE, DATA, WINDOW_UPDATE and then gets a TCP: on_read 
without a corresponding READ and then tries to parse again. It's this parse 
where it looks like the parser is at the wrong offset in the buffer, because it 
gets the unknown frame type, incoming frame size and incoming stream_id all map 
to the middle of the RPC call that it just parsed.

We are sending info from c# server to c++ client at a high speed, like dozens a 
second. This maybe the issue. We also attempted a retry scheme to no effect. We 
also added waitforready in the server and client which settled down some of the 
issue but not all.

Any help would be appreciated.



________________________________

IMPORTANT CONFIDENTIALITY NOTICE:

This e-mail (including any documents referred to in, or attached to, this 
e-mail) may contain information that is personal, confidential or the subject 
of copyright, privilege or other proprietary rights in favour of Aristocrat, 
its affiliates or third parties. This e-mail is intended only for the named 
addressee. Any privacy, confidentiality, legal professional privilege, 
copyright or other proprietary rights in favour of Aristocrat, its affiliates 
or third parties, is not lost nor waived if this e-mail has been sent to you in 
error.

If you have received this e-mail in error you should: (i) not copy, disclose, 
distribute or otherwise use it or its contents without the consent of 
Aristocrat or the owner of the relevant rights; (ii) let us know of the mistake 
by reply e-mail or by telephone (AUS +61 2 9013 6000 or USA +1-877-274-9661); 
and (iii) delete it from your system and destroy all copies.

Any personal information contained in this e-mail must be handled in accordance 
with applicable privacy laws.

Electronic and internet communications can be interfered with or affected by 
viruses and other defects. As a result, such communications may not be 
successfully received or, if received, may cause interference with the 
integrity of receiving, processing or related systems (including hardware, 
software and data or information on, or using, that hardware or software). 
Aristocrat gives no assurances and accepts no liability in relation to these 
matters.

If you have any doubts about the veracity or integrity of any electronic 
communication we appear to have sent you, please call (AUS +61 2 9013 6000 or 
USA +1-877-274-9661) for clarification.

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/DM5PR08MB3369F1CD887C85C10BA4DB2DF00F9%40DM5PR08MB3369.namprd08.prod.outlook.com.

Reply via email to