Display a warning when rpc.enable_streaming = true is set on a client (#9530)
* Display a warning when rpc.enable_streaming = true is set on a client This option has no effect when running as an agent * Added warning when server starts with use_streaming_backend but without rpc.enable_streaming * Added unit test
This commit is contained in:
parent
2eac571276
commit
70d2da7582
|
@ -0,0 +1,3 @@
|
||||||
|
```release-note:improvement
|
||||||
|
streaming: display a warning on agent(s) when incompatible streaming parameters are used
|
||||||
|
```
|
|
@ -1426,6 +1426,14 @@ func (b *Builder) Validate(rt RuntimeConfig) error {
|
||||||
b.warn("bootstrap_expect > 0: expecting %d servers", rt.BootstrapExpect)
|
b.warn("bootstrap_expect > 0: expecting %d servers", rt.BootstrapExpect)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if rt.ServerMode {
|
||||||
|
if rt.UseStreamingBackend && !rt.RPCConfig.EnableStreaming {
|
||||||
|
b.warn("use_streaming_backend = true requires rpc.enable_streaming on servers to work properly")
|
||||||
|
}
|
||||||
|
} else if rt.RPCConfig.EnableStreaming {
|
||||||
|
b.warn("rpc.enable_streaming = true has no effect when not running in server mode")
|
||||||
|
}
|
||||||
|
|
||||||
if rt.AutoEncryptAllowTLS {
|
if rt.AutoEncryptAllowTLS {
|
||||||
if !rt.VerifyIncoming && !rt.VerifyIncomingRPC {
|
if !rt.VerifyIncoming && !rt.VerifyIncomingRPC {
|
||||||
b.warn("if auto_encrypt.allow_tls is turned on, either verify_incoming or verify_incoming_rpc should be enabled. It is necessary to turn it off during a migration to TLS, but it should definitely be turned on afterwards.")
|
b.warn("if auto_encrypt.allow_tls is turned on, either verify_incoming or verify_incoming_rpc should be enabled. It is necessary to turn it off during a migration to TLS, but it should definitely be turned on afterwards.")
|
||||||
|
|
|
@ -2898,6 +2898,48 @@ func TestBuilder_BuildAndValidate_ConfigFlagsAndEdgecases(t *testing.T) {
|
||||||
rt.SkipLeaveOnInt = true
|
rt.SkipLeaveOnInt = true
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "rpc.enable_streaming = true has no effect when not running in server mode",
|
||||||
|
args: []string{
|
||||||
|
`-data-dir=` + dataDir,
|
||||||
|
},
|
||||||
|
json: []string{`{
|
||||||
|
"rpc": { "enable_streaming": true }
|
||||||
|
}`},
|
||||||
|
hcl: []string{`
|
||||||
|
rpc { enable_streaming = true }
|
||||||
|
`},
|
||||||
|
warns: []string{"rpc.enable_streaming = true has no effect when not running in server mode"},
|
||||||
|
patch: func(rt *RuntimeConfig) {
|
||||||
|
rt.DataDir = dataDir
|
||||||
|
// rpc.enable_streaming make no sense in not-server mode
|
||||||
|
rt.RPCConfig.EnableStreaming = true
|
||||||
|
rt.ServerMode = false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "use_streaming_backend = true requires rpc.enable_streaming on servers to work properly",
|
||||||
|
args: []string{
|
||||||
|
`-data-dir=` + dataDir,
|
||||||
|
},
|
||||||
|
json: []string{`{
|
||||||
|
"use_streaming_backend": true,
|
||||||
|
"server": true
|
||||||
|
}`},
|
||||||
|
hcl: []string{`
|
||||||
|
use_streaming_backend = true
|
||||||
|
server = true
|
||||||
|
`},
|
||||||
|
warns: []string{"use_streaming_backend = true requires rpc.enable_streaming on servers to work properly"},
|
||||||
|
patch: func(rt *RuntimeConfig) {
|
||||||
|
rt.DataDir = dataDir
|
||||||
|
rt.UseStreamingBackend = true
|
||||||
|
// server things
|
||||||
|
rt.ServerMode = true
|
||||||
|
rt.LeaveOnTerm = false
|
||||||
|
rt.SkipLeaveOnInt = true
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
desc: "auto_encrypt.allow_tls errors in client mode",
|
desc: "auto_encrypt.allow_tls errors in client mode",
|
||||||
args: []string{
|
args: []string{
|
||||||
|
|
Loading…
Reference in New Issue