WSL2 git push/pull 안 되는 오류 해결법

este·2023년 5월 15일
0

주의

해당 포스트는 다음 에러 케이스에 대해 작성되었습니다.

  • 환경: WSL2 Ubuntu 22.04, git 2.40.0/1
  • WSL2 환경에서 변경 사항 commit 후 github에 push 시 무한 로딩
  • 원격 repository pull 시 무한 로딩
  • 위 두 오류의 경고창(Git fatal: unable to access ...: gnutls_handshake() failed: Error in the pull function)이 3분 뒤에 떴거나 아예 안 뜬 경우(테스트 해보니 약 180,000ms 뒤에 에러 메시지가 뜹니다)
  • npm install을 통한 패키지 설치, git clone을 통한 원격 저장소 클론은 정상적으로 됨

위와 다른 에러가 발생하셨다면 다른 솔루션을 찾아보시는 것을 권장합니다.
틀린 내용, 보완할 내용 등 지적해주시면 감사히 받겠습니다.

개요

대략 이틀~사흘 전, git pull/push 무한 로딩 현상이 발생했다. 에러 로그도 경고창도 안 뜨니 난감했다. github에 무슨 문제가 있는 건지도 확인해봤는데 확실히 아니었다.

해결하기 위해 git push 안 됨, git push infinite loading, ...과 같은 키워드로 검색해 여러 글들을 참고해봤는데, 결국 해결하지 못 해 수정 사항을 다른 환경에서 commit하여 push했다. 그러던 중 오늘 드디어 첫 오류 창이 떴다.

gnutls 오류?

gnutls는 분명 TLS, SSL, DTLS 프로토콜 구현체일 텐데 왜 handshake에 실패하는 거지?하는 생각으로 서칭을 해봤다. 대부분의 포스트나 SO 답변들은 git을 재설치하거나 git 관련 패키지들을 설치해보라고 권장하거나 SSH key를 등록하고 실제로 해결됐다는 분들도 계셨다. 무슨 오류인지 정확히 파악도 안 됐는데 재설치로 해결하는 것은 뭔가 꺼려진다

하지만 나의 경우는, 테스트해보니 clone은 정상적으로 동작했고 push/pull만 안 되는게 직감적으로 이상하다고 느껴 다른 솔루션을 찾아보게 되었다. 결국 github의 microsoft/WSL의 Issues에서 같은 문제를 찾게 되었다.

MTU 크기가 다르기 때문이라는 답변이었는데, 체크해보니 나 또한 같은 상황이었다.

WSL의 MTU 크기를 1404로 수정해 sync를 맞추니 생각보다 간단히 해결되었다.

sudo ip link set dev eth0 mtu 1404

WSL을 사이드 프로젝트로 처음 접한 후 쭉 사용하게 됐는데, 관련 오류가 은근 잦아서 평소에 그냥 ubuntu로 개발하는 게 편하긴 한 것 같다. 바이오스 진입하려고 F2 누르기가 귀찮아서 WSL을 사용하게 될 뿐이다.


05/17 추가

해결 및 포스트 작성 이후에도 매번 WSL 환경에 connect 할 때마다 같은 오류가 발생한다. 즉 MTU 크기를 1404로 맞춰도 매번 1500으로 자동 설정된다. 이를 막기 위해 어떻게 해야할 지 고민을 해보았다.

git version?

기존에 사용하던 git의 version은 2.40.0이었다. 2.40.1로 업데이트 해봤지만 같은 오류가 발생했다.

MTU 크기 고정?

Windows의 subinterface 중 WSL의 MTU를 1500으로 수정하였다.

이후 해당 변경사항과 관련된 문제가 발생하면 다시 1404로 수정할 예정이다. 1500으로 수정한 뒤 문제가 해결된 것을 확인하였다.

WSL의 MTU size를 1404로 줄여 sync를 맞추고자 하면 해당 링크의 답변대로 해볼 예정이다


참고한 링크들

나와는 다른 상황("A TLS fatal alert has been received")
나와는 다른 상황("A TLS fatal alert has been received")
되는 줄 알았는데 안 됐음
패키지 설치를 권장한 스택오버플로우 답변
WSL github issues

profile
조금 이상한 사람

0개의 댓글