programing

오류: RPC 실패, 미결 읽기 데이터가 남아 있는 상태에서 컬 전송이 닫혔습니다.

muds 2023. 7. 5. 21:05
반응형

오류: RPC 실패, 미결 읽기 데이터가 남아 있는 상태에서 컬 전송이 닫혔습니다.

GitLab(GitLab 6.6.24ef8369)에서 리포지토리를 복제하려고 하면 다음 오류가 발생합니다.

remote: Counting objects: 66352, done.
remote: Compressing objects: 100% (10417/10417), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

그런 다음 복제본이 중단됩니다.어떻게 하면 피할 수 있을까요?

인터넷 연결 속도가 느려서 상당히 큰 깃 저장소를 복제해야 하는 경우가 많습니다.가장 일반적인 문제는 연결이 닫히고 전체 복제본이 취소된다는 것입니다.

Cloning into 'large-repository'...
remote: Counting objects: 20248, done.
remote: Compressing objects: 100% (10204/10204), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining 
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

수많은 시행착오와 "원격 종료가 예기치 않게 중단"된 후에 저는 제게 맞는 방법을 찾았습니다.먼저 얕은 복제를 수행한 다음 저장소를 기록으로 업데이트하는 것입니다.

$ git clone http://github.com/large-repository --depth 1
$ cd large-repository
$ git fetch --unshallow

며칠 후, 저는 오늘 이 문제를 해결했습니다.ssh 키 생성, 다음 문서를 따릅니다.

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

선언 대상

  1. Git 제공자(GitLab 내가 사용하고 있는 GitHub).
  2. 로컬 ID에 추가합니다.

그런 다음 명령으로 복제:

git clone username@mydomain.com:my_group/my_repository.git

오류가 발생하지 않습니다.

위의 문제

오류: RPC 실패, curl 18 전송이 닫히고 미결 읽기 데이터가 남음

HTTP 프로토콜로 할 때 오류가 발생하기 때문입니다.curl명령).

그리고 버퍼 크기를 늘려야 합니다.

git config --global http.postBuffer 524288000

압축을 꺼야 합니다.

git config --global core.compression 0

그런 다음 얕은 클론을 사용해야 합니다.

git clone --depth=1 <url>

그리고 가장 중요한 단계는 복제된 프로젝트에 CD를 넣는 것입니다.

cd <shallow cloned project dir>

이제 클론의 열기를 단계적으로 해제합니다.

git fetch --depth=N, with increasing N

예를 들면

git fetch --depth=4

그리고나서,

git fetch --depth=100

그리고나서,

git fetch --depth=500

이 N을 대체하여 원하는 단계 수를 선택할 수 있습니다.

그리고 마지막으로 다음을 사용하여 나머지 수정본을 모두 다운로드합니다.

git fetch --unshallow 

도움이 된다면 투표하세요 :)

원격에서 복제를 시도했을 때 동일한 문제가 반복적으로 발생했습니다.

remote: Counting objects: 182, done.
remote: Compressing objects: 100% (149/149), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

마침내 이것이 저에게 효과가 있었습니다.

git clone https://username@bitbucket.org/repositoryName.git --depth 1

간단한 솔루션:https를 통해 복제하는 대신 ssh를 통해 복제합니다.

예:

git clone https://github.com/vaibhavjain2/xxx.git - Avoid
git clone git@github.com:vaibhavjain2/xxx.git - Correct

네트워크 연결 문제입니다.
지속적인 연결 시간 초과 때문일 수 있습니다.
가장 좋은 방법은 다른 네트워크로 변경하는 것입니다.

언급한 와 같이 를 실행하고합니다.GIT_TRACE=1 GIT_CURL_VERBOSE=1 git ...

GIT_CURL_VERBOSE=1 GIT_TRACE=1 git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin자세한 오류 정보가 표시됩니다.

이 단계들은 나에게 효과가 있었습니다:사용git://https://

일반적으로 다음 이유 중 하나 때문에 발생합니다.

  1. 느린 인터넷.
  • 안정적인 네트워크 연결이 가능한 LAN 케이블로 전환하는 것이 많은 경우에 도움이 됩니다.가져오는 동안 병렬 네트워크 집약적인 작업을 수행하지 마십시오.
  1. 가져오려는 서버 측에서 TCP/IP 연결 시간이 조금 초과되었습니다.
  • 당신이 할 수 있는 일은 많지 않습니다.시스템 관리자 또는 CI/CD 담당 팀에게 증가를 요청하기만 하면 됩니다.TCP/IP 시간 초과 및 대기.
  1. 서버에 많은 부하가 걸립니다.
  • 업무 시간 중 서버 부하가 심하기 때문에 대용량 파일 다운로드가 지속적으로 실패할 수 있습니다.야간 다운로드를 시작한 후에는 기기를 종료합니다.
  1. 클라이언트 시스템에 작은 HTTPS 버퍼가 있습니다.
  • 게시 및 요청에 대한 버퍼 크기를 늘리는 것이 도움이 될 수 있지만 보장되지는 않습니다.

git config --global http.postBuffer 524288000

git config --global http.maxRequestBuffer 524288000

git config --global core.compression 0

저는 프록시 구성 때문에 이 문제가 발생했습니다.프록시 예외에 ipgit 서버를 추가했습니다.git 서버가 로컬이지만 no_proxy 환경 변수가 올바르게 설정되지 않았습니다.

이 명령을 사용하여 문제를 식별했습니다.

#Linux:
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1

#Windows
set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1

Git 서버가 프록시를 통과해서는 안 되기 때문에 "프록시 인증"이 있었습니다.그러나 실제 문제는 프록시 규칙에 의해 정의된 파일의 크기였습니다.

문제는 전체 클론이 완료되기 전에 연결이 닫히는 것이었습니다.저는 와이파이 연결 대신 이더넷을 사용했습니다.그럼 나는 해결이 되겠군요.

이 오류는 인터넷 연결이 느리거나 연결에 문제가 있을 때 더 자주 발생하는 것 같습니다.인터넷 속도가 좋아서 연결이 잘 되었습니다.

나에게 효과가 있었던 것은 git의 메모리 요구량에 대해 이 오류가 발생할 수 있기 때문입니다.$ $에 있는 . 행을 추가했습니다.C:\Users\<USER_NAME>\.gitconfig

[core] 
packedGitLimit = 512m 
packedGitWindowSize = 512m 
[pack] 
deltaCacheSize = 2047m 
packSizeLimit = 2047m 
windowMemory = 2047m

프록시 문제가 있거나 네트워크 속도가 느릴 때 이 문제가 발생합니다.깊이 솔루션을 사용할 수 있습니다.

git fetch --all  or git clone 

    

curl 56 Recv 오류가 발생하면 zip을 통해 파일을 다운로드하거나 --all 대신 branch 이름을 지정합니다.

git fetch origin BranchName 

여기서 모든 답을 시도했습니다.저는 제 기계에 코코팟을 추가하려고 했습니다.

SSH 키가 없어서 @Do Nhu Vy 감사합니다.

https://stackoverflow.com/a/38703069/2481602

그리고 최종적으로 사용되었습니다.

git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

마침내 문제를 해결하기 위해 https://stackoverflow.com/a/50959034/2481602 을 찾았습니다.

저도 이 문제에 직면해 있습니다.그것을 해결합니다.문제는 느린 인터넷 연결입니다.다른 것은 인터넷 연결을 확인하십시오.인터넷 속도가 좋아서 연결이 잘 되었습니다.도움이 되었기를 바랍니다.

이 문제는 일반적으로 대용량 저장소를 복제하는 동안 발생합니다.한다면git clone http://github.com/large-repository --depth 1윈도우즈 cmd에서는 작동하지 않습니다.윈도우즈 powershell에서 이 명령을 실행해 보십시오.

두 가지 이유가 될 수 있습니다.

  1. 인터넷 속도가 느립니다(이것은 제 경우였습니다).
  2. 버퍼 크기가 작습니다. 이 경우 git config --global http.postBuffer 524288000 명령을 실행할 수 있습니다.

이 문제는 100% 해결되었습니다.저는 이 문제에 직면하고 있었고, 제 프로젝트 매니저는 레포 이름을 바꾸었지만 저는 오래된 레포 이름을 사용하고 있었습니다.

Engineer@-Engi64 /g/xampp/htdocs/hospitality
$ git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repo/cms
Cloning into 'cms'...
remote: Counting objects: 10647, done.
error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

내가 이 문제를 어떻게 해결했는지.리포링크가 유효하지 않아 이 문제에 직면하게 되었습니다.복제하기 전에 보고서 링크를 확인하십시오.

나는 Github에 코드를 푸시하는 동안 같은 문제가 발생했습니다.

나는 노력했다.git config --global http.postBuffer 524288000하지만 저한테는 효과가 없었어요.

이유

커밋 기록/또는 파일 크기가 더 크기 때문입니다.

마이 케이스

저의 경우 package-lock.json이 문제를 일으켰습니다.1500KB 이상의 크기33K 줄의 코드였습니다.

어떻게 풀었나요?

  1. 나는 package-lock.json 없이 모든 을 커밋하고 푸시했습니다.
  2. package-lock.json의 내용을 복사합니다.
  3. GitHub repo 페이지에서 package-lock.json 이름으로 새 파일을 만들었습니다.
  4. package-lock.json의 내용을 붙여넣고 커밋합니다.
  5. 지역적으로 당기기.

그리고 끝.

팁들

  • 각 커밋 크기를 더 작게 유지
  • 자주 누르기
  • 양호한 인터넷 연결 사용

도움이 되셨기를 바랍니다.

git clone --global core.compression 0

그리고나서

git clone --depth=1 <https://your_repo.git>

그리고나서

git fetch --depth=2

그리고나서

git fetch --depth=10

그가 글을 쓸 때까지 등.

remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0

마지막에 당신은 쓸 수 있습니다.

git fetch --unshallow

그리고 당신은 던져질 것입니다.

fatal: --unshallow on a complete repository does not make sense

어떤 단계에서 다시 오류가 발생하면 --depth 속성을 더 작은 값으로 설정하고 점진적으로 더 증가합니다.

GitHub Desktop으로 레포를 복제할 수 있었습니다.

할 때 이 오류가 있었습니다.git pushHTTP/1.1로 변경한 후.

내 다시 실행하기: VPN을 실행합니다.git push.

git 구성

[core]
    autocrlf = input
    compression = 0
[remote "origin"]
    proxy = 127.0.0.1:1086
[http]
    version = HTTP/1.1
[https]
    postBuffer = 524288000

retry.sh

set -x
while true
do
  git clone xxxxx
  if [ $? -eq 0 ]; then
    break
  fi
done

Git 클론 프로토콜을 시도하도록 변경하는 중입니다.

예를 들어, 이 오류는 "git clone https://xxxxxxxxxxxxxxxxxxxxxxxxx"

"git clone git://xxxxxxxxxxxxxxxxxxxxxx"로 시도할 수 있습니다. 그러면 괜찮을 것입니다.

다음 단계가 제게 도움이 됩니다.

cd [dir]
git init
git clone [your Repository Url]

그것이 당신에게도 효과가 있기를 바랍니다.

이것을 먹어보세요.

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup

이것은 나를 위한 일입니다.capture.png

언급URL : https://stackoverflow.com/questions/38618885/error-rpc-failed-curl-transfer-closed-with-outstanding-read-data-remaining

반응형