Skip to content

Unable to use grpcui through load balancer in v1.4.2+ #383

@rgallagher-adc

Description

@rgallagher-adc

We have a couple grpc servers sitting behind a load balancer. When I use grpcui release versions 1.4.2 and 1.4.3 via the load balancer I see:

Failed to compute set of methods to expose: rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: INTERNAL_ERROR

When we use v1.4.1 or earlier I am able to connect no problem.

Interestingly, when I use version 1.4.2 to connect directly to the server behind the load balancer, I am able to connect without issue.

In case it's useful here are the verbose logs when I use v1.4.3:

2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel created
2025/05/21 15:59:51 INFO: [core] [Channel #1] original dial target is: ":443"
2025/05/21 15:59:51 INFO: [core] [Channel #1] parsed dial target is: resolver.Target{URL:url.URL{Scheme:"
", Opaque:"443", User:(url.Userinfo)(nil), Host:"", Path:"", RawPath:"", OmitHost:false, ForceQuery:false, RawQuery:"", Fragment:"", RawFragment:""}}
2025/05/21 15:59:51 INFO: [core] [Channel #1] fallback to scheme "passthrough"
2025/05/21 15:59:51 INFO: [core] [Channel #1] parsed dial target is: passthrough:///
:443
2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel authority set to "
:443"
2025/05/21 15:59:51 INFO: [core] [Channel #1] Resolver state updated: {
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Endpoints": [
{
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Attributes": null
}
],
"ServiceConfig": null,
"Attributes": null
} (resolver returned new addresses)
2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel switches to new LB policy "pick_first"
2025/05/21 15:59:51 INFO: [core] [pick-first-lb 0xc0003cb290] Received new config {
"shuffleAddressList": false
}, resolver state {
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Endpoints": [
{
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Attributes": null
}
],
"ServiceConfig": null,
"Attributes": null
}
2025/05/21 15:59:51 INFO: [core] [Channel #1 SubChannel #2] Subchannel created
2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel Connectivity change to CONNECTING
2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel exiting idle mode
2025/05/21 15:59:51 INFO: [core] [Channel #1 SubChannel #2] Subchannel Connectivity change to CONNECTING
2025/05/21 15:59:51 INFO: [core] [Channel #1 SubChannel #2] Subchannel picks a new address "
**:443" to connect
2025/05/21 15:59:51 INFO: [core] [pick-first-lb 0xc0003cb290] Received SubConn state update: 0xc0003cb4a0, {ConnectivityState:CONNECTING ConnectionError:}
2025/05/21 15:59:51 INFO: [core] [Channel #1 SubChannel #2] Subchannel Connectivity change to READY
2025/05/21 15:59:51 INFO: [core] [pick-first-lb 0xc0003cb290] Received SubConn state update: 0xc0003cb4a0, {ConnectivityState:READY ConnectionError:}
2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel Connectivity change to READY
Failed to compute set of methods to expose: rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: INTERNAL_ERROR
2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel Connectivity change to SHUTDOWN
2025/05/21 15:59:51 INFO: [core] [Channel #1] Closing the name resolver
2025/05/21 15:59:51 INFO: [core] [Channel #1] ccBalancerWrapper: closing
2025/05/21 15:59:51 INFO: [core] [Channel #1 SubChannel #2] Subchannel Connectivity change to SHUTDOWN
2025/05/21 15:59:51 INFO: [core] [Channel #1 SubChannel #2] Subchannel deleted
2025/05/21 15:59:51 INFO: [transport] [client-transport 0xc00037c488] Closing: rpc error: code = Canceled desc = grpc: the client connection is closing
2025/05/21 15:59:51 INFO: [transport] [client-transport 0xc00037c488] loopyWriter exiting with error: transport closed by client
2025/05/21 15:59:51 INFO: [core] [Channel #1] Channel deleted

These are the verbose logs for v1.4.1:

2025/05/21 19:28:01 INFO: [core] [Channel #1] Channel created
2025/05/21 19:28:01 INFO: [core] [Channel #1] original dial target is: ":443"
2025/05/21 19:28:01 INFO: [core] [Channel #1] parsed dial target is: resolver.Target{URL:url.URL{Scheme:"
", Opaque:"443", User:(url.Userinfo)(nil), Host:"", Path:"", RawPath:"", OmitHost:false, ForceQuery:false, RawQuery:"", Fragment:"", RawFragment:""}}
2025/05/21 19:28:01 INFO: [core] [Channel #1] fallback to scheme "passthrough"
2025/05/21 19:28:01 INFO: [core] [Channel #1] parsed dial target is: passthrough:///
:443
2025/05/21 19:28:01 INFO: [core] [Channel #1] Channel authority set to "
:443"
2025/05/21 19:28:01 INFO: [core] [Channel #1] Resolver state updated: {
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Endpoints": [
{
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Attributes": null
}
],
"ServiceConfig": null,
"Attributes": null
} (resolver returned new addresses)
2025/05/21 19:28:01 INFO: [core] [Channel #1] Channel switches to new LB policy "pick_first"
2025/05/21 19:28:01 INFO: [core] [pick-first-lb 0xc000357620] Received new config {
"shuffleAddressList": false
}, resolver state {
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Endpoints": [
{
"Addresses": [
{
"Addr": "
:443",
"ServerName": "",
"Attributes": null,
"BalancerAttributes": null,
"Metadata": null
}
],
"Attributes": null
}
],
"ServiceConfig": null,
"Attributes": null
}
2025/05/21 19:28:01 INFO: [core] [Channel #1 SubChannel #2] Subchannel created
2025/05/21 19:28:01 INFO: [core] [Channel #1] Channel Connectivity change to CONNECTING
2025/05/21 19:28:01 INFO: [core] [Channel #1] Channel exiting idle mode
2025/05/21 19:28:01 INFO: [core] [Channel #1 SubChannel #2] Subchannel Connectivity change to CONNECTING
2025/05/21 19:28:01 INFO: [core] [Channel #1 SubChannel #2] Subchannel picks a new address "
**:443" to connect
2025/05/21 19:28:01 INFO: [core] [pick-first-lb 0xc000357620] Received SubConn state update: 0xc0003577a0, {ConnectivityState:CONNECTING ConnectionError:}
2025/05/21 19:28:02 INFO: [core] [Channel #1 SubChannel #2] Subchannel Connectivity change to READY
2025/05/21 19:28:02 INFO: [core] [pick-first-lb 0xc000357620] Received SubConn state update: 0xc0003577a0, {ConnectivityState:READY ConnectionError:}
2025/05/21 19:28:02 INFO: [core] [Channel #1] Channel Connectivity change to READY
gRPC Web UI available at http://127.0.0.1:52461/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions