gWhisper
gWhisper copied to clipboard
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
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