فهرست منبع

Merge pull request #913 from LK4D4/fix_races

Fix some races in getNetworkFromStore
Jana Radhakrishnan 9 سال پیش
والد
کامیت
b253feee8c
2فایلهای تغییر یافته به همراه3 افزوده شده و 1 حذف شده
  1. 1 1
      libnetwork/endpoint.go
  2. 2 0
      libnetwork/store.go

+ 1 - 1
libnetwork/endpoint.go

@@ -343,7 +343,7 @@ func (ep *endpoint) getNetworkFromStore() (*network, error) {
 		return nil, fmt.Errorf("invalid network object in endpoint %s", ep.Name())
 	}
 
-	return ep.network.ctrlr.getNetworkFromStore(ep.network.id)
+	return ep.network.getController().getNetworkFromStore(ep.network.id)
 }
 
 func (ep *endpoint) Join(sbox Sandbox, options ...EndpointOption) error {

+ 2 - 0
libnetwork/store.go

@@ -141,8 +141,10 @@ func (c *controller) getNetworksFromStore() ([]*network, error) {
 				return nil, fmt.Errorf("could not find endpoint count key %s for network %s while listing: %v", datastore.Key(ec.Key()...), n.Name(), err)
 			}
 
+			n.Lock()
 			n.epCnt = ec
 			n.scope = store.Scope()
+			n.Unlock()
 			nl = append(nl, n)
 		}
 	}