From 980fb598781eeaee37ea583014893b03a51bef46 Mon Sep 17 00:00:00 2001 From: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> Date: Sat, 1 May 2021 22:28:23 +0800 Subject: [PATCH] Fix: observatory starts with empty config & fails to close (#957) --- app/observatory/observer.go | 11 ++++++++--- infra/conf/observatory.go | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/observatory/observer.go b/app/observatory/observer.go index 7da459b00..632d5cecd 100644 --- a/app/observatory/observer.go +++ b/app/observatory/observer.go @@ -44,13 +44,18 @@ func (o *Observer) Type() interface{} { } func (o *Observer) Start() error { - o.finished = done.New() - go o.background() + if o.config != nil && len(o.config.SubjectSelector) != 0 { + o.finished = done.New() + go o.background() + } return nil } func (o *Observer) Close() error { - return o.finished.Close() + if o.finished != nil { + return o.finished.Close() + } + return nil } func (o *Observer) background() { diff --git a/infra/conf/observatory.go b/infra/conf/observatory.go index dbf9b0d84..f7356bcbd 100644 --- a/infra/conf/observatory.go +++ b/infra/conf/observatory.go @@ -10,6 +10,6 @@ type ObservatoryConfig struct { SubjectSelector []string `json:"subjectSelector"` } -func (o ObservatoryConfig) Build() (proto.Message, error) { +func (o *ObservatoryConfig) Build() (proto.Message, error) { return &observatory.Config{SubjectSelector: o.SubjectSelector}, nil }