Why do I get error: RPC failed; result=52, HTTP co

2019-03-12 05:14发布

问题:

I created a new repository on github and wanted to push some files. So I initialize the repository like normal and do git add . to add the current directory (which is my java project folder with bin and src folder inside). Then I added the remote directory using:

git remote add https://github.com/username/project.git

Then I made my first commit git commit -m "First Commit"

then I type git push -u origin master and I get this error:

Counting objects: 63, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (60/60), done.
Writing objects: 100% (62/62), 16.98 KiB, done.
Total 62 (delta 15), reused 0 (delta 0)
error: RPC failed; result=52, HTTP code = 0
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

But if I add just one file and try to commit just a single file, it works.

What is going on? Why can I not commit my whole Java project? Its a pretty small project only 214k. Please help! Thanks!

回答1:

Bitbucket has the same error message. Often it is related to degraded server performance. Before you start doing anything else, check:

  • https://bitbucket.status.atlassian.com/

  • https://www.githubstatus.com/



回答2:

This error also happens if your HTTP post buffer is too small for the changes you want to push.

In this case, the solution is to increase it, for example using

git config http.postBuffer 524288000


回答3:

Now it is working! I didn't even change a thing.

This kind of an error ' result=52 ' is an error with github itself. Github.com was going down and when I tried uploading I got the error. Now the site is back up and I can commit like normal.



回答4:

I ran into this problem when trying to clone/fetch from a Bitbucket repository over http. It turns out the repository is too big (+1gb) and Bitbucket replies with this error:

error: RPC failed; result=52, HTTP code = 0
fatal: The remote end hung up unexpectedly

I switched to the SSH protocol and now it works fine. Afterwards, you can set the remote back to the http version if you need to, and it will keep working.



回答5:

This could happen if you have a faulty internet connection too, Yeah I am experiencing one at this time.. :).



回答6:

This can be also due to the following

Reason

Prescence of large files (45MB in our case)

Why

Large files cause HTTPS Timeout

Solution

Use SSH or Remove large files



回答7:

I tried this:

$ git config --global --add core.compression -1
$ git clone https://....

and it worked.

(Found here)



回答8:

It took me hours. I had the same problem using https. Plus: I could not connect to bitbucket via ssh.

I'm using Linux Mint 17.x and this solution worked like a charm for ssh:

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1254085 (answer from bs – bentzy-sagiv)

This solved the issue:

Append to /etc/sysctl.conf the following: net.ipv4.tcp_mtu_probing = 1

after restart you should see at /proc/sys/net/ipv4/tcp_mtu_probing the value "1"

A temporary solution is: echo 1 > /proc/sys/net/ipv4/tcp_mtu_probing caveat: this will be reset at boot.

You can try also with value "2" if still not working.

(see explanation at:https://thesimplecomputer.info/pages/adventures-in-linux-tcp-tuning-page2)



回答9:

For Bitbucket, I resolve this with switch to ssh instead of http.

  1. Configure SECURITY > SSH keys in Avatar > Bitbucket settings :
  2. Change remote url from https://... to git@...
    • Edit .git/config file OR launch git remote set-url origin git@...
  3. git push -u origin --all (NB: git add . follow by git commit -m "intial commit" before)

based on wintersolider's answer