summaryrefslogtreecommitdiff
path: root/edge
diff options
context:
space:
mode:
authorKubeEdge Bot <48982446+kubeedge-bot@users.noreply.github.com>2019-09-09 20:58:34 +0800
committerGitHub <noreply@github.com>2019-09-09 20:58:34 +0800
commitae0048d4badf93333d1a867640e550250c814694 (patch)
treee62ed3b7d14e94229b2449b58f423419ccad463b /edge
parentMerge pull request #1110 from kadisi/docs (diff)
parentfix panic: concurrent write to websocket (diff)
downloadkubeedge-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.go7
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)
}
}