docker / docker/docker-credential-helpers
consider a timeout when calling docker-credential-osxkeychain
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 1.3k
- Forks
- 195
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 5
Description
I had a (probably) very obscure issue, which took down my entire development environment and was difficult to track down. This is specific to macos and docker-credential-osxkeychain
Symptoms:
- I could not pull any docker containers
- it would show 'Pulling ...' with a timer, but then just sit there
- I waited more than 30 minutes to see if anything would eventually resolve itself
- my VS Code extensions could not make any network calls—resulting in a hang on load unless all were disabled
Factors:
- I had some keychains loaded connected to Keychain Access
- I later learned these could be displayed with
security list-keychains
- I later learned these could be displayed with
- those keychains were on a "Box Drive" volume
- Box was somehow broken, but it was not obvious. the folders opened and displayed files
- critically, the files could not be opened or synced from the cloud
I eventually realized that docker pull and other commands would reach out to docker-credential-osxkeychain and just hang. Looking at that process in Activity Monitor showed that it was trying to access one of the files on the Box drive. At that point, I realized that nothing could be loaded from the Box drive.
I worked around the issue by uninstalling Box completely, but I believe one could also use security list-keychains -s ... to rewrite the keychain search paths.
Ultimately, however, it seems as though docker-credential-osxkeychain should have some sort of timeout.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the docker-credential-osxkeychain implementation and tracing the credential operation that can hang while accessing macOS keychains. Determine the intended timeout behavior and how failures should be reported; done means a blocked keychain access no longer waits indefinitely and the behavior is tested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go, macos
- Domain
- authentication, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100