diff --git a/js/runner.go b/js/runner.go index f6d89ffd3970..c91e9fcb235e 100644 --- a/js/runner.go +++ b/js/runner.go @@ -219,7 +219,6 @@ func (r *Runner) newVU(idLocal, idGlobal uint64, samplesOut chan<- stats.SampleC Console: r.console, BPool: bpool.NewBufferPool(100), Samples: samplesOut, - scenarioID: make(map[string]uint64), scenarioIter: make(map[string]uint64), } @@ -547,8 +546,6 @@ type VU struct { setupData goja.Value state *lib.State - // ID of this VU in each scenario - scenarioID map[string]uint64 // count of iterations executed by this VU in each scenario scenarioIter map[string]uint64 } @@ -616,12 +613,6 @@ func (u *VU) Activate(params *lib.VUActivationParams) lib.ActiveVU { ctx = lib.WithState(ctx, u.state) params.RunContext = ctx *u.Context = ctx - if params.GetNextScVUID != nil { - if _, ok := u.scenarioID[params.Scenario]; !ok { - u.state.VUIDScenario = params.GetNextScVUID() - u.scenarioID[params.Scenario] = u.state.VUIDScenario - } - } u.state.GetScenarioVUIter = func() uint64 { return u.scenarioIter[params.Scenario] diff --git a/lib/executor/base_executor.go b/lib/executor/base_executor.go index 14126ca351ce..9a65d4e5e9b4 100644 --- a/lib/executor/base_executor.go +++ b/lib/executor/base_executor.go @@ -24,7 +24,6 @@ import ( "context" "strconv" "sync" - "sync/atomic" "github.com/sirupsen/logrus" @@ -40,7 +39,6 @@ import ( type BaseExecutor struct { config lib.ExecutorConfig executionState *lib.ExecutionState - VUIDLocal *uint64 // counter for assigning executor-specific VU IDs iterSegIndexMx *sync.Mutex iterSegIndex *lib.SegmentedIndex logger *logrus.Entry @@ -53,7 +51,6 @@ func NewBaseExecutor(config lib.ExecutorConfig, es *lib.ExecutionState, logger * return &BaseExecutor{ config: config, executionState: es, - VUIDLocal: new(uint64), logger: logger, iterSegIndexMx: new(sync.Mutex), iterSegIndex: segIdx, @@ -83,12 +80,6 @@ func (bs *BaseExecutor) GetConfig() lib.ExecutorConfig { return bs.config } -// getNextLocalVUID increments and returns the next VU ID that's specific for -// this executor (i.e. not global like __VU). -func (bs *BaseExecutor) getNextLocalVUID() uint64 { - return atomic.AddUint64(bs.VUIDLocal, 1) -} - // GetLogger returns the executor logger entry. func (bs *BaseExecutor) GetLogger() *logrus.Entry { return bs.logger diff --git a/lib/executor/constant_arrival_rate.go b/lib/executor/constant_arrival_rate.go index 5303924acf10..9d4111b66e6e 100644 --- a/lib/executor/constant_arrival_rate.go +++ b/lib/executor/constant_arrival_rate.go @@ -286,7 +286,7 @@ func (car ConstantArrivalRate) Run(parentCtx context.Context, out chan<- stats.S activeVUsWg.Add(1) activeVU := initVU.Activate(getVUActivationParams( maxDurationCtx, car.config.BaseConfig, returnVU, - car.getNextLocalVUID, car.nextIterationCounters, + car.nextIterationCounters, )) car.executionState.ModCurrentlyActiveVUsCount(+1) atomic.AddUint64(&activeVUsCount, 1) diff --git a/lib/executor/constant_vus.go b/lib/executor/constant_vus.go index 727338efbf99..6961d9733b94 100644 --- a/lib/executor/constant_vus.go +++ b/lib/executor/constant_vus.go @@ -195,7 +195,7 @@ func (clv ConstantVUs) Run(parentCtx context.Context, out chan<- stats.SampleCon activeVU := initVU.Activate( getVUActivationParams(ctx, clv.config.BaseConfig, returnVU, - clv.getNextLocalVUID, clv.nextIterationCounters)) + clv.nextIterationCounters)) for { select { diff --git a/lib/executor/externally_controlled.go b/lib/executor/externally_controlled.go index 5acf23c24c18..f356eac30035 100644 --- a/lib/executor/externally_controlled.go +++ b/lib/executor/externally_controlled.go @@ -362,7 +362,7 @@ func (rs *externallyControlledRunState) newManualVUHandle( ctx, cancel := context.WithCancel(rs.ctx) return &manualVUHandle{ vuHandle: newStoppedVUHandle(ctx, getVU, returnVU, - rs.executor.getNextLocalVUID, rs.executor.nextIterationCounters, + rs.executor.nextIterationCounters, &rs.executor.config.BaseConfig, logger), initVU: initVU, wg: &wg, diff --git a/lib/executor/helpers.go b/lib/executor/helpers.go index e2a972df9880..f127cec44c0f 100644 --- a/lib/executor/helpers.go +++ b/lib/executor/helpers.go @@ -225,7 +225,7 @@ func getArrivalRatePerSec(scaledArrivalRate *big.Rat) *big.Rat { // TODO: Refactor this, maybe move all scenario things to an embedded struct? func getVUActivationParams( ctx context.Context, conf BaseConfig, deactivateCallback func(lib.InitializedVU), - getNextScVUID func() uint64, nextIterationCounters func() (uint64, uint64), + nextIterationCounters func() (uint64, uint64), ) *lib.VUActivationParams { return &lib.VUActivationParams{ RunContext: ctx, @@ -234,7 +234,6 @@ func getVUActivationParams( Env: conf.GetEnv(), Tags: conf.GetTags(), DeactivateCallback: deactivateCallback, - GetNextScVUID: getNextScVUID, GetNextIterationCounters: nextIterationCounters, } } diff --git a/lib/executor/per_vu_iterations.go b/lib/executor/per_vu_iterations.go index 6f84c5cb192c..070a12a9de9f 100644 --- a/lib/executor/per_vu_iterations.go +++ b/lib/executor/per_vu_iterations.go @@ -221,7 +221,7 @@ func (pvi PerVUIterations) Run(parentCtx context.Context, out chan<- stats.Sampl vuID := initVU.GetID() activeVU := initVU.Activate( getVUActivationParams(ctx, pvi.config.BaseConfig, returnVU, - pvi.getNextLocalVUID, pvi.nextIterationCounters)) + pvi.nextIterationCounters)) for i := int64(0); i < iterations; i++ { select { diff --git a/lib/executor/ramping_arrival_rate.go b/lib/executor/ramping_arrival_rate.go index 935385c03949..adfef535ba3b 100644 --- a/lib/executor/ramping_arrival_rate.go +++ b/lib/executor/ramping_arrival_rate.go @@ -410,7 +410,7 @@ func (varr RampingArrivalRate) Run(parentCtx context.Context, out chan<- stats.S activeVU := initVU.Activate( getVUActivationParams( maxDurationCtx, varr.config.BaseConfig, returnVU, - varr.getNextLocalVUID, varr.nextIterationCounters)) + varr.nextIterationCounters)) varr.executionState.ModCurrentlyActiveVUsCount(+1) atomic.AddUint64(&activeVUsCount, 1) diff --git a/lib/executor/ramping_vus.go b/lib/executor/ramping_vus.go index 8aee2187a859..af5aa554efd5 100644 --- a/lib/executor/ramping_vus.go +++ b/lib/executor/ramping_vus.go @@ -574,9 +574,8 @@ func (vlv RampingVUs) Run(parentCtx context.Context, out chan<- stats.SampleCont vuHandles := make([]*vuHandle, maxVUs) for i := uint64(0); i < maxVUs; i++ { vuHandle := newStoppedVUHandle( - maxDurationCtx, getVU, returnVU, vlv.getNextLocalVUID, - vlv.nextIterationCounters, &vlv.config.BaseConfig, - vlv.logger.WithField("vuNum", i)) + maxDurationCtx, getVU, returnVU, vlv.nextIterationCounters, + &vlv.config.BaseConfig, vlv.logger.WithField("vuNum", i)) go vuHandle.runLoopsIfPossible(runIteration) vuHandles[i] = vuHandle } diff --git a/lib/executor/shared_iterations.go b/lib/executor/shared_iterations.go index 00c835d64a8b..9e2e8226dd8f 100644 --- a/lib/executor/shared_iterations.go +++ b/lib/executor/shared_iterations.go @@ -251,9 +251,7 @@ func (si SharedIterations) Run(parentCtx context.Context, out chan<- stats.Sampl defer cancel() activeVU := initVU.Activate(getVUActivationParams( - ctx, si.config.BaseConfig, returnVU, si.getNextLocalVUID, - si.nextIterationCounters, - )) + ctx, si.config.BaseConfig, returnVU, si.nextIterationCounters)) for { select { diff --git a/lib/executor/vu_handle.go b/lib/executor/vu_handle.go index 815741fa8e05..7a25ca32ad26 100644 --- a/lib/executor/vu_handle.go +++ b/lib/executor/vu_handle.go @@ -92,7 +92,6 @@ type vuHandle struct { parentCtx context.Context getVU func() (lib.InitializedVU, error) returnVU func(lib.InitializedVU) - getScenarioVUID func() uint64 nextIterationCounters func() (uint64, uint64) config *BaseConfig @@ -110,7 +109,7 @@ type vuHandle struct { func newStoppedVUHandle( parentCtx context.Context, getVU func() (lib.InitializedVU, error), - returnVU func(lib.InitializedVU), getScenarioVUID func() uint64, + returnVU func(lib.InitializedVU), nextIterationCounters func() (uint64, uint64), config *BaseConfig, logger *logrus.Entry, ) *vuHandle { @@ -120,7 +119,6 @@ func newStoppedVUHandle( mutex: &sync.Mutex{}, parentCtx: parentCtx, getVU: getVU, - getScenarioVUID: getScenarioVUID, nextIterationCounters: nextIterationCounters, config: config, @@ -153,8 +151,7 @@ func (vh *vuHandle) start() (err error) { } vh.activeVU = vh.initVU.Activate(getVUActivationParams( - vh.ctx, *vh.config, vh.returnVU, vh.getScenarioVUID, - vh.nextIterationCounters)) + vh.ctx, *vh.config, vh.returnVU, vh.nextIterationCounters)) close(vh.canStartIter) vh.changeState(starting) } diff --git a/lib/executor/vu_handle_test.go b/lib/executor/vu_handle_test.go index 425d6647a662..4dd1cb7ff080 100644 --- a/lib/executor/vu_handle_test.go +++ b/lib/executor/vu_handle_test.go @@ -65,7 +65,7 @@ func TestVUHandleRace(t *testing.T) { } } - vuHandle := newStoppedVUHandle(ctx, getVU, returnVU, nil, mockNextIterations, &BaseConfig{}, logEntry) + vuHandle := newStoppedVUHandle(ctx, getVU, returnVU, mockNextIterations, &BaseConfig{}, logEntry) go vuHandle.runLoopsIfPossible(runIter) var wg sync.WaitGroup wg.Add(3) @@ -157,7 +157,7 @@ func TestVUHandleStartStopRace(t *testing.T) { } } - vuHandle := newStoppedVUHandle(ctx, getVU, returnVU, nil, mockNextIterations, &BaseConfig{}, logEntry) + vuHandle := newStoppedVUHandle(ctx, getVU, returnVU, mockNextIterations, &BaseConfig{}, logEntry) go vuHandle.runLoopsIfPossible(runIter) for i := 0; i < testIterations; i++ { err := vuHandle.start() @@ -235,7 +235,7 @@ func TestVUHandleSimple(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - vuHandle := newStoppedVUHandle(ctx, test.getVU, test.returnVU, nil, mockNextIterations, &BaseConfig{}, logEntry) + vuHandle := newStoppedVUHandle(ctx, test.getVU, test.returnVU, mockNextIterations, &BaseConfig{}, logEntry) var wg sync.WaitGroup wg.Add(1) go func() { @@ -275,7 +275,7 @@ func TestVUHandleSimple(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - vuHandle := newStoppedVUHandle(ctx, test.getVU, test.returnVU, nil, mockNextIterations, &BaseConfig{}, logEntry) + vuHandle := newStoppedVUHandle(ctx, test.getVU, test.returnVU, mockNextIterations, &BaseConfig{}, logEntry) var wg sync.WaitGroup wg.Add(1) go func() { @@ -316,7 +316,7 @@ func TestVUHandleSimple(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - vuHandle := newStoppedVUHandle(ctx, test.getVU, test.returnVU, nil, mockNextIterations, &BaseConfig{}, logEntry) + vuHandle := newStoppedVUHandle(ctx, test.getVU, test.returnVU, mockNextIterations, &BaseConfig{}, logEntry) var wg sync.WaitGroup wg.Add(1) go func() { @@ -395,7 +395,7 @@ func BenchmarkVUHandleIterations(b *testing.B) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - vuHandle := newStoppedVUHandle(ctx, getVU, returnVU, nil, mockNextIterations, &BaseConfig{}, logEntry) + vuHandle := newStoppedVUHandle(ctx, getVU, returnVU, mockNextIterations, &BaseConfig{}, logEntry) var wg sync.WaitGroup wg.Add(1) go func() { diff --git a/lib/runner.go b/lib/runner.go index 12522dd6f98a..9cad5f6c420d 100644 --- a/lib/runner.go +++ b/lib/runner.go @@ -55,7 +55,6 @@ type VUActivationParams struct { DeactivateCallback func(InitializedVU) Env, Tags map[string]string Exec, Scenario string - GetNextScVUID func() uint64 GetNextIterationCounters func() (uint64, uint64) } diff --git a/lib/state.go b/lib/state.go index 8c271e6043b8..37933910ba22 100644 --- a/lib/state.go +++ b/lib/state.go @@ -67,9 +67,9 @@ type State struct { // TODO: maybe use https://golang.org/pkg/sync/#Pool ? BPool *bpool.BufferPool - VUID, VUIDGlobal, VUIDScenario uint64 - Iteration int64 - Tags map[string]string + VUID, VUIDGlobal uint64 + Iteration int64 + Tags map[string]string // These will be assigned on VU activation. // Returns the iteration number of this VU in the current scenario. GetScenarioVUIter func() uint64 diff --git a/lib/testutils/minirunner/minirunner.go b/lib/testutils/minirunner/minirunner.go index 834cb15990c9..a70fdaa6906f 100644 --- a/lib/testutils/minirunner/minirunner.go +++ b/lib/testutils/minirunner/minirunner.go @@ -65,7 +65,6 @@ func (r *MiniRunner) NewVU(idLocal, idGlobal uint64, out chan<- stats.SampleCont ID: idLocal, IDGlobal: idGlobal, state: state, - scenarioID: make(map[string]uint64), scenarioIter: make(map[string]uint64), }, nil } @@ -137,8 +136,6 @@ type VU struct { ID, IDGlobal uint64 Iteration int64 state *lib.State - // ID of this VU in each scenario - scenarioID map[string]uint64 // count of iterations executed by this VU in each scenario scenarioIter map[string]uint64 } @@ -163,13 +160,6 @@ func (vu *VU) GetID() uint64 { func (vu *VU) Activate(params *lib.VUActivationParams) lib.ActiveVU { ctx := lib.WithState(params.RunContext, vu.state) - if params.GetNextScVUID != nil { - if _, ok := vu.scenarioID[params.Scenario]; !ok { - vu.state.VUIDScenario = params.GetNextScVUID() - vu.scenarioID[params.Scenario] = vu.state.VUIDScenario - } - } - vu.state.GetScenarioVUIter = func() uint64 { return vu.scenarioIter[params.Scenario] }