mirror of https://github.com/docker/docs.git
Merge pull request #2210 from dongluochen/swarm_hang
Do not allow double RLock() of RWMutex
This commit is contained in:
commit
502c00b150
|
@ -760,10 +760,6 @@ func (c *Cluster) Container(IDOrName string) *cluster.Container {
|
||||||
if len(IDOrName) == 0 {
|
if len(IDOrName) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
c.RLock()
|
|
||||||
defer c.RUnlock()
|
|
||||||
|
|
||||||
return c.Containers().Get(IDOrName)
|
return c.Containers().Get(IDOrName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -801,9 +797,9 @@ func (c *Cluster) listNodes() []*node.Node {
|
||||||
out := make([]*node.Node, 0, len(c.engines))
|
out := make([]*node.Node, 0, len(c.engines))
|
||||||
for _, e := range c.engines {
|
for _, e := range c.engines {
|
||||||
node := node.NewNode(e)
|
node := node.NewNode(e)
|
||||||
for _, c := range c.pendingContainers {
|
for _, pc := range c.pendingContainers {
|
||||||
if c.Engine.ID == e.ID && node.Container(c.Config.SwarmID()) == nil {
|
if pc.Engine.ID == e.ID && node.Container(pc.Config.SwarmID()) == nil {
|
||||||
node.AddContainer(c.ToContainer())
|
node.AddContainer(pc.ToContainer())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
out = append(out, node)
|
out = append(out, node)
|
||||||
|
@ -897,9 +893,6 @@ func (c *Cluster) RANDOMENGINE() (*cluster.Engine, error) {
|
||||||
|
|
||||||
// RenameContainer rename a container
|
// RenameContainer rename a container
|
||||||
func (c *Cluster) RenameContainer(container *cluster.Container, newName string) error {
|
func (c *Cluster) RenameContainer(container *cluster.Container, newName string) error {
|
||||||
c.RLock()
|
|
||||||
defer c.RUnlock()
|
|
||||||
|
|
||||||
// check new name whether available
|
// check new name whether available
|
||||||
if !c.checkNameUniqueness(newName) {
|
if !c.checkNameUniqueness(newName) {
|
||||||
return fmt.Errorf("Conflict: The name %s is already assigned. You have to delete (or rename) that container to be able to assign %s to a container again.", newName, newName)
|
return fmt.Errorf("Conflict: The name %s is already assigned. You have to delete (or rename) that container to be able to assign %s to a container again.", newName, newName)
|
||||||
|
|
Loading…
Reference in New Issue