mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-19 18:02:01 +00:00
Merge pull request #93971 from Danil-Grigorev/vsphere-secret-deadlock
Refactor locks logic on registeredNodesLock to be non-blocking
This commit is contained in:
commit
1c548c328a
@ -259,6 +259,16 @@ func (nm *NodeManager) GetNode(nodeName k8stypes.NodeName) (v1.Node, error) {
|
||||
return *node, nil
|
||||
}
|
||||
|
||||
func (nm *NodeManager) getNodes() map[string]*v1.Node {
|
||||
nm.registeredNodesLock.RLock()
|
||||
defer nm.registeredNodesLock.RUnlock()
|
||||
registeredNodes := make(map[string]*v1.Node, len(nm.registeredNodes))
|
||||
for nodeName, node := range nm.registeredNodes {
|
||||
registeredNodes[nodeName] = node
|
||||
}
|
||||
return registeredNodes
|
||||
}
|
||||
|
||||
func (nm *NodeManager) addNode(node *v1.Node) {
|
||||
nm.registeredNodesLock.Lock()
|
||||
nm.registeredNodes[node.ObjectMeta.Name] = node
|
||||
@ -288,11 +298,9 @@ func (nm *NodeManager) GetNodeInfo(nodeName k8stypes.NodeName) (NodeInfo, error)
|
||||
//
|
||||
// This method is a getter but it can cause side-effect of updating NodeInfo objects.
|
||||
func (nm *NodeManager) GetNodeDetails() ([]NodeDetails, error) {
|
||||
nm.registeredNodesLock.Lock()
|
||||
defer nm.registeredNodesLock.Unlock()
|
||||
var nodeDetails []NodeDetails
|
||||
|
||||
for nodeName, nodeObj := range nm.registeredNodes {
|
||||
for nodeName, nodeObj := range nm.getNodes() {
|
||||
nodeInfo, err := nm.GetNodeInfoWithNodeObject(nodeObj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -304,10 +312,7 @@ func (nm *NodeManager) GetNodeDetails() ([]NodeDetails, error) {
|
||||
}
|
||||
|
||||
func (nm *NodeManager) refreshNodes() (errList []error) {
|
||||
nm.registeredNodesLock.Lock()
|
||||
defer nm.registeredNodesLock.Unlock()
|
||||
|
||||
for nodeName := range nm.registeredNodes {
|
||||
for nodeName := range nm.getNodes() {
|
||||
nodeInfo, err := nm.getRefreshedNodeInfo(convertToK8sType(nodeName))
|
||||
if err != nil {
|
||||
errList = append(errList, err)
|
||||
|
Loading…
Reference in New Issue
Block a user