Przeglądaj źródła

Fix race in Statistics

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Alexander Morozov 9 lat temu
rodzic
commit
0eb01bbbee
1 zmienionych plików z 5 dodań i 2 usunięć
  1. 5 2
      libnetwork/sandbox.go

+ 5 - 2
libnetwork/sandbox.go

@@ -142,12 +142,15 @@ func (sb *sandbox) Labels() map[string]interface{} {
 func (sb *sandbox) Statistics() (map[string]*types.InterfaceStatistics, error) {
 func (sb *sandbox) Statistics() (map[string]*types.InterfaceStatistics, error) {
 	m := make(map[string]*types.InterfaceStatistics)
 	m := make(map[string]*types.InterfaceStatistics)
 
 
-	if sb.osSbox == nil {
+	sb.Lock()
+	osb := sb.osSbox
+	sb.Unlock()
+	if osb == nil {
 		return m, nil
 		return m, nil
 	}
 	}
 
 
 	var err error
 	var err error
-	for _, i := range sb.osSbox.Info().Interfaces() {
+	for _, i := range osb.Info().Interfaces() {
 		if m[i.DstName()], err = i.Statistics(); err != nil {
 		if m[i.DstName()], err = i.Statistics(); err != nil {
 			return m, err
 			return m, err
 		}
 		}