git-ecosystem / git-ecosystem/git-credential-manager
Hang when using linux pass.
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 9.3k
- Forks
- 2.9k
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 14
Description
Version
2.5.1+90d5f897f164a8fe07d2aa3bf7db439b0b4e03ea
Operating system
Linux
OS version or distribution
Ubuntu 2024
Git hosting provider(s)
Azure DevOps
Other hosting provider
No response
(Azure DevOps only) What format is your remote URL?
None
Can you access the remote repository directly in the browser?
Yes, I can access the repository
Expected behavior
things work or error
Actual behavior
Fetch and psuh both hang and git-credential-manager get hangs as well. I at leat expect an error rather than a hang.
GCM_TRACE=1 GIT_TRACE=1 git fetch
23:01:47.575391 git.c:455 trace: built-in: git fetch
23:01:47.575584 run-command.c:668 trace: run_command: GIT_DIR=.git git remote-https origin https://msazure.visualstudio.com/DefaultCollection/CloudNativeCompute/_git/aks-rp
23:01:47.576387 git.c:742 trace: exec: git-remote-https origin https://msazure.visualstudio.com/DefaultCollection/CloudNativeCompute/_git/aks-rp
23:01:47.576415 run-command.c:668 trace: run_command: git-remote-https origin https://msazure.visualstudio.com/DefaultCollection/CloudNativeCompute/_git/aks-rp
23:01:47.737658 run-command.c:668 trace: run_command: '/usr/local/bin/git-credential-manager get'
23:01:47.816553 git.c:455 trace: built-in: git config --null --list
23:01:47.855780 ...e/Application.cs:106 trace: [RunInternalAsync] Version: 2.5.1.0
23:01:47.862254 ...e/Application.cs:107 trace: [RunInternalAsync] Runtime: .NET 8.0.6
23:01:47.862298 ...e/Application.cs:108 trace: [RunInternalAsync] Platform: Linux (x86-64)
23:01:47.862307 ...e/Application.cs:109 trace: [RunInternalAsync] OSVersion: Ubuntu 22.04.4 LTS
23:01:47.862317 ...e/Application.cs:110 trace: [RunInternalAsync] AppPath: /usr/local/bin/git-credential-manager
23:01:47.862390 ...e/Application.cs:111 trace: [RunInternalAsync] InstallDir: /usr/local/share/gcm-core/
23:01:47.862424 ...e/Application.cs:112 trace: [RunInternalAsync] Arguments: get
23:01:47.887028 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'get' command...
23:01:47.902668 ...GitCommandBase.cs:46 trace: [ExecuteAsync] Detecting host provider for input:
23:01:47.903887 ...GitCommandBase.cs:47 trace: [ExecuteAsync] protocol=https
23:01:47.903924 ...GitCommandBase.cs:47 trace: [ExecuteAsync] host=msazure.visualstudio.com
23:01:47.907114 ...viderRegistry.cs:149 trace: [GetProviderAsync] Performing auto-detection of host provider.
23:01:47.909055 ...viderRegistry.cs:162 trace: [GetProviderAsync] Auto-detect probe timeout is 2 ms.
23:01:47.912702 ...viderRegistry.cs:170 trace: [GetProviderAsync] Checking against 4 host providers registered with priority 'Normal'.
23:01:47.913321 ...GitCommandBase.cs:49 trace: [ExecuteAsync] Host provider 'Azure Repos' was selected.
23:01:47.916560 ...osHostProvider.cs:99 trace: [GetCredentialAsync] Looking for existing credential in store with service=https://msazure.visualstudio.com account=...
23:01:47.918348 ...edentialStore.cs:364 trace: [GetGpgPath] Using PATH-located GPG (gpg) executable: /usr/bin/gpg
-> % git-credential-manager get23:00:02.876648 ...e/Application.cs:106 trace: [RunInternalAsync] Version: 2.5.1.0
23:00:02.886785 ...e/Application.cs:107 trace: [RunInternalAsync] Runtime: .NET 8.0.6
23:00:02.886829 ...e/Application.cs:108 trace: [RunInternalAsync] Platform: Linux (x86-64)
23:00:02.886837 ...e/Application.cs:109 trace: [RunInternalAsync] OSVersion: Ubuntu 22.04.4 LTS
23:00:02.886845 ...e/Application.cs:110 trace: [RunInternalAsync] AppPath: /usr/local/bin/git-credential-manager
23:00:02.886899 ...e/Application.cs:111 trace: [RunInternalAsync] InstallDir: /usr/local/share/gcm-core/
23:00:02.886931 ...e/Application.cs:112 trace: [RunInternalAsync] Arguments: get
23:00:02.911431 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'get' command...
Logs
I'm using the utility pass on linyx and while typing my pin in control-c'd pass. This seems to corrupt somthing. If I do pass rm -r git I can at least do one push or pull but after that I'm hung agan
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 with the git-credential-manager get entry point in Application.cs, then follow AzureReposHostProvider.GetCredentialAsync and CredentialStore.GetGpgPath in the trace. Reproduce the cancelled pass PIN flow on Ubuntu and verify that a subsequent credential request completes or reports an error instead of hanging.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp, git, linux
- Domain
- authentication, operating-systems, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100