Dale Richardson created YUNIKORN-3418:
-----------------------------------------

             Summary: User/group resolution runs under the PartitionContext 
read lock
                 Key: YUNIKORN-3418
                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3418
             Project: Apache YuniKorn
          Issue Type: Bug
          Components: core - scheduler
            Reporter: Dale Richardson


{{PartitionContext.convertUGI}} takes {{pc.RLock()}} and then calls 
{{userGroupCache.ConvertUGI}}, which for an uncached user resolves through the 
configured OS or LDAP resolver. The cache releases its own lock around the 
lookup, but the partition lock stays held, so a slow or unreachable directory 
blocks every partition writer ({{AddApplication}}, node add and remove, 
allocation processing, config update) for as long as the lookup takes. Negative 
results are cached for only 30 seconds, so a broken directory recurs per user.

With the default no-op resolver of the Kubernetes deployment the section is 
bounded and this does not apply; it matters for OS and LDAP resolvers. Not 
reproduced.

Fix: {{userGroupCache}} is set at construction, so read it and call 
{{ConvertUGI}} after releasing the lock.

Marker: {{convertUGI}} in {{partition.go}} carries {{+lockblockingignore}} for 
this JIRA; the fix removes it.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to