본문 바로가기

기초 튼튼/시행착오노트

[git] send-pack: unexpected disconnect while reading sideband packet 에러 해결

 

 

git push를 하다가 아래의 에러를 만났다.

 

 

에러 내용

error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
send-pack: unexpected disconnect while reading sideband packet
Writing objects: 100% (344/344), 2.07 MiB | 2.01 MiB/s, done.
Total 344 (delta 47), reused 0 (delta 0), pack-reused 0
fatal: the remote end hung up unexpectedly

 

- Git이 업로드 도중 패킷을 너무 크게 만들어서 GitHub가 연결을 끊은 경우

 

원인을 알아보니 깃 패킷당 디폴트 전송 크기가 1MB로 되어있어서 제한에 걸려서 연결이 끊겼다고 한다.

 

해결 방법

git config --global http.postBuffer 524288000

 

http.postBuffer를 1MB -> 500MB로 늘리는 설정을 하니 푸시는 된다.

근데 이렇게 늘려도 괜찮은건지? 의문이 들어서 GPT한테 더 물어보니 아래의 답변을 한다.

요약하자면, 1MB → 15년 전의 레거시 기본값이어서 현대 네트워크 성능 고려하면 500MB으로 늘려도 충분하다는 얘기이다.

 

 

---

왜 기본이 1MB인가?

Git의 http.postBuffer는 한 번에 전송할 HTTP 패킷의 최대 크기를 의미합니다.
즉, push 시 Git이 데이터를 패킹(pack)해서 HTTP 요청으로 보낼 때
한 요청당 최대 몇 바이트를 보낼 수 있느냐를 제한하는 값이에요.

  • 초기 Git (2000년대 후반) 시절엔 느린 네트워크 환경을 고려해서
    1MB 정도로 작게 잡아둔 기본값이 남아있습니다.
  • 실제로 이 값은 보안이나 GitHub 정책과는 무관하며,
    네트워크의 안정성을 위한 "전송 크기 단위"일 뿐입니다.

 

 

---

 

좀 찝찝해서 줄이거나 원복하고 싶다면

# 설정값 확인
git config --get http.postBuffer   

# 10MB값으로 변경 
git config --global http.postBuffer 10485760
반응형