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.
