@@ -75,13 +75,13 @@ func (t *WorkerThrottler) Release() {
7575}
7676
7777type ThrottledValidationSpawner struct {
78- Spawner validator. ValidationSpawner
78+ Spawner * retry_wrapper. ValidationSpawnerRetryWrapper
7979 Throttler * WorkerThrottler
8080}
8181
8282func NewThrottledValidationSpawner (spawner validator.ValidationSpawner ) * ThrottledValidationSpawner {
8383 return & ThrottledValidationSpawner {
84- Spawner : spawner ,
84+ Spawner : retry_wrapper . NewValidationSpawnerRetryWrapper ( spawner ) ,
8585 Throttler : & WorkerThrottler {maxWorkers : spawner .Capacity ()},
8686 }
8787}
@@ -996,9 +996,7 @@ func (v *BlockValidator) sendValidations(ctx context.Context) (*arbutil.MessageI
996996 var runs []validator.ValidationRun
997997 for _ , moduleRoot := range wasmRoots {
998998 throttledSpawner := v .chosenValidator [moduleRoot ]
999- spawner := retry_wrapper .NewValidationSpawnerRetryWrapper (throttledSpawner .Spawner )
1000- spawner .StopWaiter .Start (ctx , v )
1001- input , err := validationStatus .Entry .ToInput (spawner .StylusArchs ())
999+ input , err := validationStatus .Entry .ToInput (throttledSpawner .Spawner .StylusArchs ())
10021000 if err != nil && ctx .Err () == nil {
10031001 v .possiblyFatal (fmt .Errorf ("%w: error preparing validation" , err ))
10041002 throttledSpawner .Throttler .Release ()
@@ -1011,7 +1009,7 @@ func (v *BlockValidator) sendValidations(ctx context.Context) (*arbutil.MessageI
10111009 }
10121010 return nil , ctx .Err ()
10131011 }
1014- run := spawner .LaunchWithNAllowedAttempts (input , moduleRoot , v .config ().ValidationSpawningAllowedAttempts , v .config ().ValidationSpawningAllowedTimeouts )
1012+ run := throttledSpawner . Spawner .LaunchWithNAllowedAttempts (input , moduleRoot , v .config ().ValidationSpawningAllowedAttempts , v .config ().ValidationSpawningAllowedTimeouts )
10151013 log .Trace ("sendValidations: launched" , "pos" , validationStatus .Entry .Pos , "moduleRoot" , moduleRoot )
10161014 runs = append (runs , run )
10171015 }
@@ -1558,12 +1556,18 @@ func (v *BlockValidator) LaunchWorkthreadsWhenCaughtUp(ctx context.Context) {
15581556
15591557func (v * BlockValidator ) Start (ctxIn context.Context ) error {
15601558 v .StopWaiter .Start (ctxIn , v )
1559+ for _ , throttled := range v .chosenValidator {
1560+ throttled .Spawner .Start (v .GetContext ())
1561+ }
15611562 v .LaunchThread (v .LaunchWorkthreadsWhenCaughtUp )
15621563 v .CallIteratively (v .iterativeValidationPrint )
15631564 return nil
15641565}
15651566
15661567func (v * BlockValidator ) StopAndWait () {
1568+ for _ , throttled := range v .chosenValidator {
1569+ throttled .Spawner .StopAndWait ()
1570+ }
15671571 v .StopWaiter .StopAndWait ()
15681572}
15691573
0 commit comments