docker / docker/docker-credential-helpers

consider a timeout when calling docker-credential-osxkeychain

Open
#355 0 comments 0 reactions 0 assignees View on GitHub

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
  • 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.