Skip to content

"git ls-remote" fails with error about failing to load library libcurl-4.dll #4573

@nikobockerman

Description

@nikobockerman
  • I was not able to find an open or closed issue matching what I'm seeing

Setup

  • Which version of Git for Windows are you using? Is it 32-bit or 64-bit?

64-bit

Non-working 2.42.0 version:

$ git --version --build-options
git version 2.42.0.windows.1
cpu: x86_64
built from commit: a2e49ec355ae22e74288fa74f50821f3cc1a1551
sizeof-long: 4
sizeof-size_t: 8
shell-path: /bin/sh
feature: fsmonitor--daemon

Working older 2.39.2 version:

$ git --version --build-options
git version 2.39.2.windows.1
cpu: x86_64
built from commit: a82fa99b36ddfd643e61ed45e52abe314687df67
sizeof-long: 4
sizeof-size_t: 8
shell-path: /bin/sh
feature: fsmonitor--daemon
  • Which version of Windows are you running? Vista, 7, 8, 10? Is it 32-bit or 64-bit?
    Windows 11 22H2, 64-bit
$ cmd.exe /c ver

Microsoft Windows [Version 10.0.22621.2134]
  • What options did you set as part of the installation? Or did you choose the
    defaults?
$ cat /etc/install-options.txt
Editor Option: VisualStudioCode
Custom Editor Path:
Default Branch Option: main
Path Option: Cmd
SSH Option: OpenSSH
Tortoise Option: false
CURL Option: WinSSL
CRLF Option: CRLFAlways
Bash Terminal Option: MinTTY
Git Pull Behavior Option: FFOnly
Use Credential Manager: Enabled
Performance Tweaks FSCache: Enabled
Enable Symlinks: Disabled
Enable Pseudo Console Support: Disabled
Enable FSMonitor: Enabled
  • Any other interesting things about your environment that might be related
    to the issue you're seeing?

Somewhat hardened and restricted corporate setup. But nothing that I would imagine affecting GfW. Especially as the older 2.39.2 version doesn't have same issue.

Details

  • Which terminal/shell are you running Git from? e.g Bash/CMD/PowerShell/other

All of them fail in the same way.

In Git Bash:

$ git ls-remote https://github.com
fatal: failed to load library 'libcurl-4.dll'

$ GIT_TRACE=2 git ls-remote https://github.com
13:32:08.133684 exec-cmd.c:244          trace: resolved executable dir: C:/Users/<redacted>/AppData/Local/Programs/Git/mingw64/bin
13:32:08.149319 git.c:463               trace: built-in: git ls-remote https://github.com
13:32:08.149319 run-command.c:659       trace: run_command: git remote-https https://github.com https://github.com
13:32:08.196196 exec-cmd.c:244          trace: resolved executable dir: C:/Users/<redacted>/AppData/Local/Programs/Git/mingw64/libexec/git-core
13:32:08.196196 git.c:749               trace: exec: git-remote-https https://github.com https://github.com
13:32:08.196196 run-command.c:659       trace: run_command: git-remote-https https://github.com https://github.com
13:32:08.243622 exec-cmd.c:244          trace: resolved executable dir: C:/Users/<redacted>/AppData/Local/Programs/Git/mingw64/libexec/git-core
fatal: failed to load library 'libcurl-4.dll'

$ GIT_TRACE2=2 /mingw64/libexec/git-core/git-remote-https.exe https://github.com
13:34:44.363642 common-main.c:55                  version 2.42.0.windows.1
13:34:44.363642 common-main.c:56                  start 'C:\Users\<redacted>\AppData\Local\Programs\Git\mingw64\libexec\git-core\git-remote-https.exe' https://github.com
13:34:44.363642 remote-curl.c:1544                cmd_name remote-curl (remote-curl)
13:34:44.363642 usage.c:61                        error failed to load library 'libcurl-4.dll'
fatal: failed to load library 'libcurl-4.dll'
13:34:44.363642 usage.c:75                        exit elapsed:0.020978 code:128
13:34:44.363642 trace2/tr2_tgt_normal.c:127       atexit elapsed:0.020994 code:128
  • What did you expect to occur after running these commands?

The command to be able to load libcurl successfully and complain that https://github.com is not a repository.

With 2.39.2 of GfW, the same command worked properly. Therefore, this feels like a regression.

2.41.0.3 of GfW fails in the same way as 2.42.0.

  • What actually happened instead?

The command fails with an error about failing to load libcurl-4.dll.

  • If the problem was occurring with a specific repository, can you provide the
    URL to that repository to help us with testing?

Not related to specific repository.

Extra information

  • Can extra items in $PATH cause problems?

No:

$ bash test-git-with-clean-path.sh
+ export PATH=/bin:/usr/bin
+ PATH=/bin:/usr/bin
+ echo /bin:/usr/bin
/bin:/usr/bin
+ export GIT_TRACE2=2
+ GIT_TRACE2=2
+ /mingw64/libexec/git-core/git-remote-https.exe https://github.com
13:45:54.153599 common-main.c:55                  version 2.42.0.windows.1
13:45:54.153599 common-main.c:56                  start 'C:\Users\<redacted>\AppData\Local\Programs\Git\mingw64\libexec\git-core\git-remote-https.exe' https://github.com
13:45:54.153599 remote-curl.c:1544                cmd_name remote-curl (remote-curl)
13:45:54.153599 usage.c:61                        error failed to load library 'libcurl-4.dll'
fatal: failed to load library 'libcurl-4.dll'
13:45:54.153599 usage.c:75                        exit elapsed:0.020037 code:128
13:45:54.153599 trace2/tr2_tgt_normal.c:127       atexit elapsed:0.020054 code:128
  • Does libcurl-4.dll exist in the installation?

In two places:

$ find /mingw64/ -name libcurl-4.dll
/mingw64/bin/libcurl-4.dll
/mingw64/libexec/git-core/libcurl-4.dll

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions