mirror of
https://github.com/zrepl/zrepl.git
synced 2025-05-30 14:48:57 +02:00
platformtest: fix bandwidth-limiting-related panics (missing BucketCapacity in sender/receiver config)
panic while running test: invalid config`Ratelimit` field invalid: BucketCapacity must not be zero main.runTestCase.func1.1 /home/cs/zrepl/zrepl/platformtest/harness/harness.go:190 runtime.gopanic /home/cs/go1.13/src/runtime/panic.go:679 github.com/zrepl/zrepl/endpoint.NewSender /home/cs/zrepl/zrepl/endpoint/endpoint.go:68 github.com/zrepl/zrepl/platformtest/tests.replicationInvocation.Do /home/cs/zrepl/zrepl/platformtest/tests/replication.go:87 github.com/zrepl/zrepl/platformtest/tests.ReplicationFailingInitialParentProhibitsChildReplication /home/cs/zrepl/zrepl/platformtest/tests/replication.go:925 main.runTestCase.func1 /home/cs/zrepl/zrepl/platformtest/harness/harness.go:193 main.runTestCase /home/cs/zrepl/zrepl/platformtest/harness/harness.go:194 main.HarnessRun /home/cs/zrepl/zrepl/platformtest/harness/harness.go:107 main.main /home/cs/zrepl/zrepl/platformtest/harness/harness.go:42 runtime.main /home/cs/go1.13/src/runtime/proc.go:203 runtime.goexit /home/cs/go1.13/src/runtime/asm_amd64.s:1357 fixup for f5f269bfd5b1641453989dd0bb9515bbb7b9e202 (bandwidth limiting)
This commit is contained in:
parent
08df208149
commit
3e93b31f75
@ -20,6 +20,7 @@ import (
|
|||||||
"github.com/zrepl/zrepl/replication/logic"
|
"github.com/zrepl/zrepl/replication/logic"
|
||||||
"github.com/zrepl/zrepl/replication/logic/pdu"
|
"github.com/zrepl/zrepl/replication/logic/pdu"
|
||||||
"github.com/zrepl/zrepl/replication/report"
|
"github.com/zrepl/zrepl/replication/report"
|
||||||
|
"github.com/zrepl/zrepl/util/bandwidthlimit"
|
||||||
"github.com/zrepl/zrepl/util/limitio"
|
"github.com/zrepl/zrepl/util/limitio"
|
||||||
"github.com/zrepl/zrepl/util/nodefault"
|
"github.com/zrepl/zrepl/util/nodefault"
|
||||||
"github.com/zrepl/zrepl/zfs"
|
"github.com/zrepl/zrepl/zfs"
|
||||||
@ -63,9 +64,10 @@ func (i replicationInvocation) Do(ctx *platformtest.Context) *report.Report {
|
|||||||
}
|
}
|
||||||
|
|
||||||
senderConfig := endpoint.SenderConfig{
|
senderConfig := endpoint.SenderConfig{
|
||||||
FSF: i.sfilter.AsFilter(),
|
FSF: i.sfilter.AsFilter(),
|
||||||
Encrypt: &nodefault.Bool{B: false},
|
Encrypt: &nodefault.Bool{B: false},
|
||||||
JobID: i.sjid,
|
JobID: i.sjid,
|
||||||
|
BandwidthLimit: bandwidthlimit.NoLimitConfig(),
|
||||||
}
|
}
|
||||||
if i.senderConfigHook != nil {
|
if i.senderConfigHook != nil {
|
||||||
i.senderConfigHook(&senderConfig)
|
i.senderConfigHook(&senderConfig)
|
||||||
@ -75,6 +77,7 @@ func (i replicationInvocation) Do(ctx *platformtest.Context) *report.Report {
|
|||||||
JobID: i.rjid,
|
JobID: i.rjid,
|
||||||
AppendClientIdentity: false,
|
AppendClientIdentity: false,
|
||||||
RootWithoutClientComponent: mustDatasetPath(i.rfsRoot),
|
RootWithoutClientComponent: mustDatasetPath(i.rfsRoot),
|
||||||
|
BandwidthLimit: bandwidthlimit.NoLimitConfig(),
|
||||||
}
|
}
|
||||||
if i.receiverConfigHook != nil {
|
if i.receiverConfigHook != nil {
|
||||||
i.receiverConfigHook(&receiverConfig)
|
i.receiverConfigHook(&receiverConfig)
|
||||||
|
@ -18,6 +18,13 @@ type Config struct {
|
|||||||
BucketCapacity int64
|
BucketCapacity int64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NoLimitConfig() Config {
|
||||||
|
return Config{
|
||||||
|
Max: -1,
|
||||||
|
BucketCapacity: -1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func ValidateConfig(conf Config) error {
|
func ValidateConfig(conf Config) error {
|
||||||
if conf.BucketCapacity == 0 {
|
if conf.BucketCapacity == 0 {
|
||||||
return errors.New("BucketCapacity must not be zero")
|
return errors.New("BucketCapacity must not be zero")
|
||||||
|
19
util/bandwidthlimit/bandwidthlimit_test.go
Normal file
19
util/bandwidthlimit/bandwidthlimit_test.go
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package bandwidthlimit
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestNoLimitConfig(t *testing.T) {
|
||||||
|
|
||||||
|
conf := NoLimitConfig()
|
||||||
|
|
||||||
|
err := ValidateConfig(conf)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
require.NotPanics(t, func() {
|
||||||
|
_ = WrapperFromConfig(conf)
|
||||||
|
})
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user