@@ -173,8 +173,22 @@ func (f *failoverState) Run(pCtx context.Context) (multiErr error) {
173173 multiErr = errors .Join (multiErr , fmt .Errorf ("stopping %s: %w" , name , err ))
174174 }
175175 }
176+ cCtx , cancel := context .WithCancel (pCtx )
177+ defer cancel ()
178+ wg , ctx := errgroup .WithContext (cCtx )
179+ wg .Go (func () (rerr error ) {
180+ defer func () {
181+ if err := f .bc .Stop (); err != nil && ! errors .Is (err , context .Canceled ) {
182+ rerr = errors .Join (rerr , fmt .Errorf ("stopping block components: %w" , err ))
183+ }
184+ }()
176185
177- wg , ctx := errgroup .WithContext (pCtx )
186+ f .logger .Info ().Str ("addr" , f .rpcServer .Addr ).Msg ("Started RPC server" )
187+ if err := f .rpcServer .ListenAndServe (); err != nil && ! errors .Is (err , http .ErrServerClosed ) {
188+ return err
189+ }
190+ return nil
191+ })
178192
179193 if err := f .p2pClient .Start (ctx ); err != nil {
180194 return fmt .Errorf ("start p2p: %w" , err )
@@ -191,20 +205,6 @@ func (f *failoverState) Run(pCtx context.Context) (multiErr error) {
191205 }
192206 defer stopService (f .dataSyncService .Stop , "data sync" )
193207
194- wg .Go (func () (rerr error ) {
195- defer func () {
196- if err := f .bc .Stop (); err != nil && ! errors .Is (err , context .Canceled ) {
197- rerr = errors .Join (rerr , fmt .Errorf ("stopping block components: %w" , err ))
198- }
199- }()
200-
201- f .logger .Info ().Str ("addr" , f .rpcServer .Addr ).Msg ("Started RPC server" )
202- if err := f .rpcServer .ListenAndServe (); err != nil && ! errors .Is (err , http .ErrServerClosed ) {
203- return err
204- }
205- return nil
206- })
207-
208208 wg .Go (func () error {
209209 defer func () {
210210 shutdownCtx , done := context .WithTimeout (context .Background (), 3 * time .Second )
0 commit comments