Blog Content

    티스토리 뷰

    [Git] Git Push Fails - fatal: The remote end hung up unexpectedly

    Git Push 했을 때, 다음처럼 에러가 발생할 때가 있다.

    문제

    $ git push

    Counting objects: 2332669, done.

    Delta compression using up to 16 threads.

    Compressing objects: 100% (360818/360818), done.

    error: RPC failed; result=22, HTTP code = 411

    fatal: The remote end hung up unexpectedly

    Writing objects: 100% (2332669/2332669), 483.30 MiB | 114.26 MiB/s, done.

    Total 2332669 (delta 1949888), reused 2330461 (delta 1949349)

    fatal: The remote end hung up unexpectedly



    원인

    Proxy 설정도 해보고 .git 폴더의 config를 수정해보아도 같은 에러가 여전히 발생했다.

    이유는 한꺼번에 많은 양의 데이터들(파일들)을 push할 때, 

    git에서 제공해주는 buffer size가 작아서 발생할 수 있는 에러이다.

    Git에서 사용하는 HTTP 프로토콜은 크기가 1MB보다 큰 데이터를 푸시할 때, 

    "Transfer-Encoding : chunked" 라는 것을 사용한단다.

    일부 프록시 서버는 기본적으로 이 Transfer-Encoding 을 지원하지 않으며 Request가 Bitbucket Server에 도착하기 전에 거부된다.

    아마 회사에서 사용하는 프록시 서버에서 Transfer-Encoding을 지원하지 않은 듯 하여 발생한 에러로 추정된다.


    Git의 버퍼 크기를 repo의 가장 큰 파일의 사이즈만큼 늘리면 된다.

    • git config --global http.postBuffer 157286400

    이런 식으로 명령어를 수행하여 버퍼 사이즈를 늘리면 해결된다.

    Comments