From 4059e373e6f6768c32f5ed7c15f1bea89b2bf62f Mon Sep 17 00:00:00 2001 From: yusing Date: Tue, 4 Feb 2025 10:50:52 +0800 Subject: [PATCH] fix failed routes being kept in routes map --- internal/route/provider/provider.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/route/provider/provider.go b/internal/route/provider/provider.go index de74bab..2e5237d 100644 --- a/internal/route/provider/provider.go +++ b/internal/route/provider/provider.go @@ -94,8 +94,11 @@ func (p *Provider) Start(parent task.Parent) E.Error { t := parent.Subtask("provider."+p.String(), false) errs := E.NewBuilder("routes error") - for _, r := range p.routes { - errs.Add(p.startRoute(t, r)) + for alias, r := range p.routes { + if err := p.startRoute(t, r); err != nil { + errs.Add(err) + delete(p.routes, alias) + } } eventQueue := events.NewEventQueue( @@ -133,7 +136,7 @@ func (p *Provider) GetRoute(alias string) (r *route.Route, ok bool) { func (p *Provider) loadRoutes() (routes route.Routes, err E.Error) { routes, err = p.loadRoutesImpl() if err != nil && len(routes) == 0 { - return nil, err + return route.Routes{}, err } errs := E.NewBuilder("routes error") errs.Add(err)