diff options
| author | KubeEdge Bot <48982446+kubeedge-bot@users.noreply.github.com> | 2019-09-09 20:58:34 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-09 20:58:34 +0800 |
| commit | ae0048d4badf93333d1a867640e550250c814694 (patch) | |
| tree | e62ed3b7d14e94229b2449b58f423419ccad463b /edge | |
| parent | Merge pull request #1110 from kadisi/docs (diff) | |
| parent | fix panic: concurrent write to websocket (diff) | |
| download | kubeedge-ae0048d4badf93333d1a867640e550250c814694.tar.gz | |
Merge pull request #1112 from fisherxu/fix-panic
Fix panic: concurrent write to websocket
Diffstat (limited to 'edge')
| -rw-r--r-- | edge/pkg/edgehub/controller.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/edge/pkg/edgehub/controller.go b/edge/pkg/edgehub/controller.go index a9bc87b5c..c6b457ad6 100644 --- a/edge/pkg/edgehub/controller.go +++ b/edge/pkg/edgehub/controller.go @@ -188,7 +188,9 @@ func (ehc *Controller) routeToEdge() { } func (ehc *Controller) sendToCloud(message model.Message) error { + ehc.keeperLock.Lock() err := ehc.chClient.Send(message) + ehc.keeperLock.Unlock() if err != nil { klog.Errorf("failed to send message: %v", err) return fmt.Errorf("failed to send message, error: %v", err) @@ -239,12 +241,15 @@ func (ehc *Controller) keepalive() { msg := model.NewMessage(""). BuildRouter(ModuleNameEdgeHub, "resource", "node", "keepalive"). FillBody("ping") - err := ehc.chClient.Send(*msg) + + // post message to cloud hub + err := ehc.sendToCloud(*msg) if err != nil { klog.Errorf("websocket write error: %v", err) ehc.stopChan <- struct{}{} return } + time.Sleep(ehc.config.HeartbeatPeriod) } } |
