diff --git a/ers/ers.go b/ers/ers.go index bc7a9674c..e14ba192d 100644 --- a/ers/ers.go +++ b/ers/ers.go @@ -123,11 +123,13 @@ func (erS *ERService) ListenAndServe(stopChan, cfgRldChan chan struct{}) (err er if erS.cfg.ERsCfg().Readers[rdrIdx].Type == utils.MetaNone { // ignore *default reader continue } - if err := erS.addReader(id, rdrIdx); err != nil { + if err = erS.addReader(id, rdrIdx); err != nil { utils.Logger.Crit( fmt.Sprintf("<%s> adding reader <%s> got error: <%s>", utils.ERs, id, err.Error())) - erS.rdrErr <- err + erS.closeAllRdrs() + erS.Unlock() + return } } erS.Unlock() diff --git a/ers/ers_it_test.go b/ers/ers_it_test.go index 5f7ff2660..5fe15b41e 100644 --- a/ers/ers_it_test.go +++ b/ers/ers_it_test.go @@ -370,7 +370,6 @@ func TestERsListenAndServeCfgRldChan5(t *testing.T) { } } -/* func TestERsListenAndServeCfgRldChan6(t *testing.T) { cfg := config.NewDefaultCGRConfig() cfg.ERsCfg().Readers = []*config.EventReaderCfg{ @@ -395,17 +394,21 @@ func TestERsListenAndServeCfgRldChan6(t *testing.T) { srv.rdrPaths = map[string]string{ "test": "path_test", } - cfgRldChan <- struct{}{} go func() { time.Sleep(10 * time.Millisecond) - close(stopChan) + cfg.ERsCfg().Readers = []*config.EventReaderCfg{ + { + ID: "test", + Type: "BadType", + }, + } + cfgRldChan <- struct{}{} }() err := srv.ListenAndServe(stopChan, cfgRldChan) - if err == nil || err.Error() != "unsupported reader type: " { - t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", "unsupported reader type: ", err) + if err == nil || err.Error() != "unsupported reader type: " { + t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", "unsupported reader type: ", err) } } -*/ func TestERsProcessEvent(t *testing.T) { cfg := config.NewDefaultCGRConfig()