简体   繁体   English

git-remote-https 无法分叉 msys-unistring-2.dll 加载到不同的地址

[英]git-remote-https cannot fork msys-unistring-2.dll loaded to different address

I have git on my Windows 10 machine via MSYS2.我通过 MSYS2 在我的 Windows 10 机器上安装了 git。 From the MSYS2 terminal, I have been having no problem pushing commits to my bitbucket repository.从 MSYS2 终端,我一直没有问题将提交推送到我的 bitbucket 存储库。

Now, all of a suddent, I am receiving the following error:现在,突然之间,我收到以下错误:

$ git push origin master
Password for 'https://NeomerArcana@bitbucket.org':
      1 [main] git-remote-https 1747 child_info_fork::abort: \?? 
\C:\MSYS2-32\usr\bin\msys-unistring-2.dll: Loaded to different address: parent(0x990000) != child(0xF80000)
error: cannot fork() for send-pack: Resource temporarily unavailable
error: failed to push some refs to 'https://NeomerArcana@bitbucket.org/NeomerArcana/myrepo.git'

I read about issues with git and ASLR.我阅读了有关 git 和 ASLR 的问题。 So I disabled ASLR on the above.exe as well as mintty.exe and git.exe.所以我在 above.exe 以及 mintty.exe 和 git.exe 上禁用了 ASLR。 This didn't work so I disabled ASLR system-wide.这不起作用,所以我在系统范围内禁用了 ASLR。 This still didn't work.这仍然没有奏效。 I killed the git, created a new repository and started a new git with init .我杀死了 git,创建了一个新的存储库并使用init启动了一个新的 git。 Everything worked fine, right up until I tried pushing commits to the remote site, and I get the same error again.一切正常,直到我尝试将提交推送到远程站点,我再次遇到同样的错误。

Any ideas?有任何想法吗?

Are you running the 32-bit version of MSYS2?您运行的是 32 位版本的 MSYS2 吗? There seems to be a known error when it loads DLL files in a way so that they overlap:当它以某种方式加载 DLL 文件时似乎存在一个已知错误,以便它们重叠:

https://sourceforge.net/p/msys2/tickets/74/ https://sourceforge.net/p/msys2/tickets/74/

They write that you should try to:他们写道,您应该尝试:

  1. Close all MSYS2 processes关闭所有 MSYS2 进程
  2. Run autorebase.bat运行 autorebase.bat
  3. Start MSYS2 again再次启动 MSYS2

One commenter explains it like this:一位评论者这样解释:

All MSYS2 32-bit DLLs must be auto-rebased as a group to ensure the don't overlapping in address space.所有 MSYS2 32 位 DLL 必须作为一个组自动重新设置基础,以确保地址空间不会重叠。

Any attempt to two clashing MSYS2 32-bit DLLs loaded at once will result in the failure you have seen.一次加载两个冲突的 MSYS2 32 位 DLL 的任何尝试都将导致您看到的失败。

In the end, they recommend using the 64-bit version of MSYS2, as that one doesn't have any of these problems.最后,他们建议使用 64 位版本的 MSYS2,因为它没有任何这些问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM