myzhan / boomer

A better load generator for locust, written in golang.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

在使用 stableRatelimiter 时,有时候会出现panic

boboalex opened this issue · comments

master 使用的是 locust 2.0.0,boomer 端是github.com/myzhan/boomer v1.6.1-0.20220119085022-9513c121d233,使用了 stableRatelimiter 来跑压测时,偶尔会出现 panic 情况,此时 master 端设置的 并发数为 200, 并发的增长率为 45,此时会偶现 panic 情况:
image

在实际使用时,我这边会直接实例化一个 boomer,例如叫 testingBoomer:
testingBoomer := boomer.NewBoomer(host, port)
然后使用
rateLimiter := testingBoomer.NewStableRateLimiter(targetRps, time.Second)
以及:
testingBoomer.SetRateLimiter(rateLimiter)
最后启动 boomer:
testingBoomer.Run(caseList...)

谢谢,我这边复现了,我看看原因。

Here is a testcase to reproduct this issue.

func TestStableRateLimiterStartAndStopManyTimes(t *testing.T) {
	ratelimiter := NewStableRateLimiter(100, 5*time.Millisecond)
	for i := 0; i < 1000; i++ {
		ratelimiter.Start()
		time.Sleep(5 * time.Millisecond)
		ratelimiter.Stop()
	}
}

修复了,可以更新一下试试。

修复了,可以更新一下试试。

感谢哈~