You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The issue stems in tonic not very nicely handling tls connections with custom connectors.
ChannelPool's clients connect using tonic::transport::channel::Endpoint::connect_with_connector function passing hyper_rustls::HttpsConnector which handles TLS connection. But connect_with_connector wraps this connector into service::Connector (not a public struct) which cannot understand that the inner connector (HttpsConnector) already handles TLS and does handle TLS if feature = "tls" is enabled: if the URI scheme is "https" and no tls config is set then service::Connector fails with HttpsUriWithoutTlsSupport. Note, it feature = "tls" is not enabled then service::Connector doesn't care about URI scheme being "https" which is weird and inconsistent IMHO. This issue has been known for a while now.
A recent PR makes it possible to workaround this issue: just reimplement connect_with_connector but without any service::Connector wrapping, this is now possible as the PR makes tonic::transport::Channel::connect function public and which is essential in reimplementing connect_with_connector. Unfortunately, it is not yet available in tonic-0.12.3 and will be available in the upcoming tonic-0.13.0.
Investigate issues in the custom TLS handling that surfaced during the re-fork, documenting findings and suggesting potential improvements.
#2882
The text was updated successfully, but these errors were encountered: