Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.8.2
-
None
-
iPhone 12 with iOS 17
Description
To my knowledge, most cloud load balancers will have a timeout for a http/2 connection. QtGrpc channel connection seems to time out after about 10-20 minutes.
This seems like a tablestakes feature to handle. Again, to my knowledge, this is supposed to be handled by the client SDK; so QtGrpc in this case. There should be reconnect logic.
I am new to these concepts as I was hoping to use QtGrpc and see the basics covered without a leaky abstraction. However, perhaps I am wrong here, and I just need to change one particular thing. Please let me know what I can do to work around this.
Context:
- Our grpc server is in Google Cloud Platform in GKE (kubernetes cluster) behind a load balancer.
- Our service did not go down (our pod wasn't destroyed in the cluster) as it has been running for 7d, so there is no issue on the server side. The load balancer is sending this as is usual for AWS & GCP.
- We are using simple client code as below
```
QUrl host = QUrl("xxx");
QGrpcChannelOptions channel_options = QGrpcChannelOptions();
QSslConfiguration ssl_config = QSslConfiguration::defaultConfiguration();
ssl_config.setAllowedNextProtocols({QSslConfiguration::ALPNProtocolHTTP2});
channel_options.setSslConfiguration(ssl_config);
m_channel = std::make_shared<QGrpcHttp2Channel>(host, channel_options);
std::shared_ptr<AuthService::Client> auth_service_client = std::make_shared<AuthService::Client>(nullptr);
auth_service_client->attachChannel(m_channel);
```