Skip to content

On slow machines the default connect timeout of 200ms hits when using SSL handshakes. The user does not get any error message in those cases #130

@rainerschoe

Description

@rainerschoe

Slow machine (s390x emulated in QEMU):

bad case:

# gwhisper --ssl --clientCert={$build}/cert-key-pair/client_crt.pem --clientKey={$build}/cert-key-pair/client_key.pem --serverCert={$build}/cert-key-pair/server_crt.pem kaas:60443
Parse failed.Parsed until: '--ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443'
Possible Candidates:
  '--connectTimeoutMilliseconds=200 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443 '

good case when manually setting connect timeout

# gwhisper --connectTimeoutMilliseconds=5000 --ssl --clientCert={$build}/cert-key-pair/client_crt.pem --clientKey={$build}/cert-key-pair/client_key.pem --serverCert={$build}/cert-key-pair/server_crt.pem kaas:60443
Parse failed.Parsed until: '--connectTimeoutMilliseconds=5000 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443'
Possible Candidates:
  '--connectTimeoutMilliseconds=5000 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443 examples.ScalarTypeRpcs '
  '--connectTimeoutMilliseconds=5000 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443 examples.NestedTypeRpcs '
  '--connectTimeoutMilliseconds=5000 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443 examples.ComplexTypeRpcs '
  '--connectTimeoutMilliseconds=5000 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443 examples.StreamingRpcs '
  '--connectTimeoutMilliseconds=5000 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443 examples.StatusHandling '
  '--connectTimeoutMilliseconds=5000 --ssl --clientCert=//cert-key-pair/client_crt.pem --clientKey=//cert-key-pair/client_key.pem --serverCert=//cert-key-pair/server_crt.pem kaas:60443 grpc.reflection.v1alpha.ServerReflection '

I did not print an error message in connect timeout scenarios, in order not to confuse tab completion. Tab completion is also the reason, why the default timeout is rather small (to not introduce high wait time if user presses tab on wrong hostname etc.).

Maybe we have to check if we are in tab complete --complete and then print or not print error message

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions