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]