Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.1.0 - Incorrect response from /healthz endpoint #8414

Closed
ben-staked opened this issue Feb 8, 2021 · 2 comments · Fixed by #8418
Closed

v1.1.0 - Incorrect response from /healthz endpoint #8414

ben-staked opened this issue Feb 8, 2021 · 2 comments · Fixed by #8418
Assignees
Labels
Bug Something isn't working

Comments

@ben-staked
Copy link

ben-staked commented Feb 8, 2021

🐞 Bug Report

Description

When accessing the /healthz monitoring endpoint of a healthy beacon node with TLS enabled, it will always report an error for the gateway, e.g.

*powchain.Service: OK
*sync.Service: OK
*gateway.Gateway: ERROR grpc server is TRANSIENT_FAILURE
*prometheus.Service: OK
*p2p.Service: OK
*attestations.Service: OK
*blockchain.Service: OK
*initialsync.Service: OK
*rpc.Service: OK

This only occurs when TLS is enabled on a beacon node; if TLS is not enabled on the beacon node, it will correctly report on the status of the gateway.

Has this worked before in a previous version?

Have not tested in a prior version.

🔬 Minimal Reproduction

Run two different beacon nodes - one with TLS enabled and one with TLS disabled:

beacon-chain --accept-terms-of-use --tls-cert $TLS_CERT --tls-key $TLS_KEY --http-web3provider=$WEB3_PROVIDER --pyrmont

and

beacon-chain --accept-terms-of-use --http-web3provider=$WEB3_PROVIDER --pyrmont

The node running with TLS enabled should fail to return a passing status for the gateway even when otherwise healthy, while the node without TLS will be able to return a passing status once healthy.

🔥 Error

*gateway.Gateway: ERROR grpc server is TRANSIENT_FAILURE

🌍 Your Environment

Operating System:

  
Ubuntu 18.04
  

What version of Prysm are you running? (Which release)

  
v1.1.0
  

Anything else relevant (validator index / public key)?
There doesn't appear to be any connection to validator or public keys.

@prestonvanloon
Copy link
Member

Looks like gRPC gateway does not dial the gRPC service with the TLS specified. It seems to always use the insecure protocol:

opts := []grpc.DialOption{
grpc.WithInsecure(),
grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(int(g.maxCallRecvMsgSize))),
}

@prestonvanloon prestonvanloon self-assigned this Feb 9, 2021
@prestonvanloon prestonvanloon added the Bug Something isn't working label Feb 9, 2021
@prestonvanloon
Copy link
Member

This is fixed in #8418. If you aren't using the gRPC gateway for JSON requests, you may disable it entirely to unblock yourself until that PR can be included in the next release. --disable-grpc-gateway

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants