浏览代码

Merge pull request #22120 from crosbymichael/stats-panic

Create a copy of stats value before modifications
Michael Crosby 9 年之前
父节点
当前提交
eed9c930b8
共有 2 个文件被更改,包括 3 次插入3 次删除
  1. 2 2
      daemon/stats.go
  2. 1 1
      daemon/stats_collector_unix.go

+ 2 - 2
daemon/stats.go

@@ -43,11 +43,11 @@ func (daemon *Daemon) ContainerStats(ctx context.Context, prefixOrName string, c
 
 	var preCPUStats types.CPUStats
 	getStatJSON := func(v interface{}) *types.StatsJSON {
-		ss := v.(*types.StatsJSON)
+		ss := v.(types.StatsJSON)
 		ss.PreCPUStats = preCPUStats
 		// ss.MemoryStats.Limit = uint64(update.MemoryLimit)
 		preCPUStats = ss.CPUStats
-		return ss
+		return &ss
 	}
 
 	enc := json.NewEncoder(outStream)

+ 1 - 1
daemon/stats_collector_unix.go

@@ -135,7 +135,7 @@ func (s *statsCollector) run() {
 			// FIXME: move to containerd
 			stats.CPUStats.SystemUsage = systemUsage
 
-			pair.publisher.Publish(stats)
+			pair.publisher.Publish(*stats)
 		}
 	}
 }