luoyuan3471 opened a new pull request, #8767: URL: https://github.com/apache/hadoop/pull/8767
### Description of PR When multiple containers request the same Docker image concurrently, separate NodeManager launch threads can invoke duplicate `docker pull` commands for that image. These pulls contend on the same image and perform redundant work. This change serializes pulls by image name with reference-counted per-image locks. Pulls for the same image execute one at a time, while pulls for different images can still run concurrently. Unused locks are removed after the last waiter finishes, including when a pull fails. JIRA: https://issues.apache.org/jira/browse/YARN-11997 ### How was this patch tested? - Added focused coverage in `TestDockerContainerRuntime` for serializing concurrent pulls of the same image, allowing different images to pull concurrently, and releasing the image lock after a failed pull. - `TestDockerContainerRuntime`: 127 tests passed, 0 failures, 0 errors, 0 skipped. - `git diff --check` passed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
