git-ecosystem / git-ecosystem/git-credential-manager

Hang when using linux pass.

Open
#1,691 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

auth-issue
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.