Skip to content

Commit adad603

Browse files
author
breezeli
authored
Merge pull request #3852 from wcy00000000000000/v3.2.x-datacollection
修复3.2 datacollection空指针异常和连接未关闭的问题
2 parents 8555751 + cc94b69 commit adad603

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/scene_server/datacollection/datacollection/discover.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,14 @@ func (d *Discover) subChan() {
214214
if nil != err {
215215
d.interrupt <- err
216216
blog.Errorf("subscribe [%s] failed: %s", d.chanName, err.Error())
217+
return
217218
}
218219

219220
defer func() {
220221
subChan.Unsubscribe(d.chanName)
221222
d.isSubing = false
222223
blog.Infof("close subscribe channel: %s", d.chanName)
224+
_ = subChan.Close()
223225
}()
224226

225227
var ts = time.Now()
@@ -244,7 +246,7 @@ func (d *Discover) subChan() {
244246

245247
blog.Warnf("receive message err: %s", err.Error())
246248
d.interrupt <- err
247-
continue
249+
return
248250
}
249251

250252
msg, ok := received.(*redis.Message)

src/scene_server/datacollection/datacollection/hostsnap.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -533,8 +533,10 @@ func (h *HostSnap) subChan(snapcli *redis.Client, chanName []string) {
533533
subChan, err := snapcli.Subscribe(chanName...)
534534
if nil != err {
535535
h.interrupt <- err
536-
blog.Error("subscribe channel faile ", err.Error())
536+
blog.Errorf("subscribe channel failed %s", err.Error())
537+
return
537538
}
539+
defer subChan.Close()
538540
closeChan := make(chan struct{})
539541
go h.healthCheck(closeChan)
540542
defer func() {
@@ -559,13 +561,13 @@ func (h *HostSnap) subChan(snapcli *redis.Client, chanName []string) {
559561
if err == redis.Nil || err == io.EOF {
560562
continue
561563
}
562-
msg, ok := received.(*redis.Message)
563-
if !ok {
564-
continue
565-
}
566564
if nil != err {
567-
blog.Debug("receive messave err", err.Error())
565+
blog.Debug("receive message err", err.Error())
568566
h.interrupt <- err
567+
return
568+
}
569+
msg, ok := received.(*redis.Message)
570+
if !ok {
569571
continue
570572
}
571573

0 commit comments

Comments
 (0)