From de3d57dc2a8b6efa65f2f0c052216a80df1bd42d Mon Sep 17 00:00:00 2001 From: Michael Demmer Date: Mon, 6 Aug 2018 09:42:12 -0700 Subject: [PATCH 1/5] restore the deprecated user-specific "dbname" flags Fix a regression where the dbname flags were removed as part of the earlier cleanup and refactor. This is against policy since we want to keep the flags for now. Unlike the other user-specific db connection flags, this one does not actually do anything at runtime except set a "DeprecatedDBName" field in the DBConfig. Signed-off-by: Michael Demmer --- go/mysql/conn_params.go | 4 ++++ go/vt/dbconfigs/dbconfigs.go | 3 +++ 2 files changed, 7 insertions(+) diff --git a/go/mysql/conn_params.go b/go/mysql/conn_params.go index 053e662b165..ae739c9b59c 100644 --- a/go/mysql/conn_params.go +++ b/go/mysql/conn_params.go @@ -34,6 +34,10 @@ type ConnParams struct { SslCert string `json:"ssl_cert"` SslKey string `json:"ssl_key"` ServerName string `json:"server_name"` + + // The following is only set when the deprecated "dbname" flags are + // supplied and will be removed. + DeprecatedDBName string } // EnableSSL will set the right flag on the parameters. diff --git a/go/vt/dbconfigs/dbconfigs.go b/go/vt/dbconfigs/dbconfigs.go index 802a5376c7f..38d73d08cf0 100644 --- a/go/vt/dbconfigs/dbconfigs.go +++ b/go/vt/dbconfigs/dbconfigs.go @@ -124,6 +124,9 @@ func registerPerUserFlags(dbc *userConfig, userKey string) { flag.StringVar(&dbc.param.SslCaPath, "db-config-"+userKey+"-ssl-ca-path", "", "deprecated: use db_ssl_ca_path") flag.StringVar(&dbc.param.SslCert, "db-config-"+userKey+"-ssl-cert", "", "deprecated: use db_ssl_cert") flag.StringVar(&dbc.param.SslKey, "db-config-"+userKey+"-ssl-key", "", "deprecated: use db_ssl_key") + + flag.StringVar(&dbc.param.DeprecatedDbName, "db-config-"+userKey+"-dbname", "", "deprecated: dbname does not need to be explicitly configured") + } // AppWithDB returns connection parameters for app with dbname set. From 1852654b940342cc707467ff5e98fd2341f81902 Mon Sep 17 00:00:00 2001 From: Michael Demmer Date: Mon, 6 Aug 2018 10:15:23 -0700 Subject: [PATCH 2/5] fix typo and use DeprecatedDBName properly Signed-off-by: Michael Demmer --- go/vt/dbconfigs/dbconfigs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/vt/dbconfigs/dbconfigs.go b/go/vt/dbconfigs/dbconfigs.go index 38d73d08cf0..5df9aa2d7da 100644 --- a/go/vt/dbconfigs/dbconfigs.go +++ b/go/vt/dbconfigs/dbconfigs.go @@ -125,7 +125,7 @@ func registerPerUserFlags(dbc *userConfig, userKey string) { flag.StringVar(&dbc.param.SslCert, "db-config-"+userKey+"-ssl-cert", "", "deprecated: use db_ssl_cert") flag.StringVar(&dbc.param.SslKey, "db-config-"+userKey+"-ssl-key", "", "deprecated: use db_ssl_key") - flag.StringVar(&dbc.param.DeprecatedDbName, "db-config-"+userKey+"-dbname", "", "deprecated: dbname does not need to be explicitly configured") + flag.StringVar(&dbc.param.DeprecatedDBName, "db-config-"+userKey+"-dbname", "", "deprecated: dbname does not need to be explicitly configured") } From bb9395b3b589aa09774d322c5cf208234351d351 Mon Sep 17 00:00:00 2001 From: Maggie Zhou Date: Fri, 10 Aug 2018 13:47:48 -0700 Subject: [PATCH 3/5] Set the keepalive server-side enforcement policy min time, so that the server doesn't preemptively close connections due to our client keepalive being more aggressive than the allowed server policy. Signed-off-by: Maggie Zhou --- go/vt/servenv/grpc_server.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/go/vt/servenv/grpc_server.go b/go/vt/servenv/grpc_server.go index 8bfbcae0fff..25dce3617b6 100644 --- a/go/vt/servenv/grpc_server.go +++ b/go/vt/servenv/grpc_server.go @@ -83,6 +83,10 @@ var ( // The lower bound for window size is 64K and any value smaller than that will be ignored. GRPCInitialWindowSize = flag.Int("grpc_server_initial_window_size", 0, "grpc server initial window size") + // EnforcementPolicy MinTime that sets the keepalive enforcement policy on the server. + // This is the minimum amount of time a client should wait before sending a keepalive ping. + GRPCEnforcementPolicyMinTime = flag.Duration("grpc_enforcement_min_time", 5*time.Minute, "grpc server minimum keepalive time") + authPlugin Authenticator ) @@ -143,6 +147,11 @@ func createGRPCServer() { opts = append(opts, grpc.InitialWindowSize(int32(*GRPCInitialWindowSize))) } + ep := keepalive.EnforcementPolicy{ + MinTime: *GRPCEnforcementPolicyMinTime, + } + opts = append(opts, grpc.KeepaliveEnforcementPolicy(ep)) + if GRPCMaxConnectionAge != nil { ka := keepalive.ServerParameters{ MaxConnectionAge: *GRPCMaxConnectionAge, From eb8922775ac21badc4c1ca848775d0748eca135e Mon Sep 17 00:00:00 2001 From: Maggie Zhou Date: Fri, 10 Aug 2018 14:29:35 -0700 Subject: [PATCH 4/5] Change the flag name to respond to code review. Signed-off-by: Maggie Zhou --- go/vt/servenv/grpc_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/vt/servenv/grpc_server.go b/go/vt/servenv/grpc_server.go index 25dce3617b6..156e54bc583 100644 --- a/go/vt/servenv/grpc_server.go +++ b/go/vt/servenv/grpc_server.go @@ -85,7 +85,7 @@ var ( // EnforcementPolicy MinTime that sets the keepalive enforcement policy on the server. // This is the minimum amount of time a client should wait before sending a keepalive ping. - GRPCEnforcementPolicyMinTime = flag.Duration("grpc_enforcement_min_time", 5*time.Minute, "grpc server minimum keepalive time") + GRPCKeepAliveEnforcementPolicyMinTime = flag.Duration("grpc_server_keepalive_enforcement_policy_min_time", 5*time.Minute, "grpc server minimum keepalive time") authPlugin Authenticator ) From 9b04fe02787f1c8ddcdb4f41c45872ca7f946aea Mon Sep 17 00:00:00 2001 From: Maggie Zhou Date: Fri, 10 Aug 2018 14:51:27 -0700 Subject: [PATCH 5/5] Use the new variable name. Signed-off-by: Maggie Zhou --- go/vt/servenv/grpc_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/vt/servenv/grpc_server.go b/go/vt/servenv/grpc_server.go index 156e54bc583..e596d1702f8 100644 --- a/go/vt/servenv/grpc_server.go +++ b/go/vt/servenv/grpc_server.go @@ -148,7 +148,7 @@ func createGRPCServer() { } ep := keepalive.EnforcementPolicy{ - MinTime: *GRPCEnforcementPolicyMinTime, + MinTime: *GRPCKeepAliveEnforcementPolicyMinTime, } opts = append(opts, grpc.KeepaliveEnforcementPolicy(ep))