30

I have the following call structure:

  1. Jenkins runs fab -Huser@host set_repository_commit_hash:123abc.
  2. set_repository_commit_hash runs git fetch with pty = False.
  3. The child process ssh git@github.com git-upload-pack 'user/repository.git' never finishes.

I've tried running git fetch in a local clone and that succeeds, but running ssh git@github.com git-upload-pack 'user/repository.git' just returns the following and hangs:

00ab84249d3bb20930c185c08848c60b71f7b28990d6 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed agent=git/1.8.4
0041cb34b1c8ca75d478df38c794fc15c5f01cc6377e refs/heads/branch_name
004012577068adf47015001bfa0cff9386d6cdf497ce refs/heads/[...]
003f84249d3bb20930c185c08848c60b71f7b28990d6 refs/heads/master
[a couple more lines like the ones above, then:]
0000

Is this a known SSH/Git/Fabric/Jenkins problem?

I did strace it, but I haven't recorded the session. I believe it was stuck on a read.

Possibly relevant links:

  1. Jenkins issue 14752: SCM Polling / Max # of concurrent polling = 1 hangs github polling
  2. Why would git-upload-pack (during git clone) hang?
  3. tortoisegit issue 1880: tortoisegit fetch hangs due to running/never-exiting tortoisegitplink (especially comment #7)
  4. What is this random never-ending 'git-upload-pack' process?
  • 1
    Have tried any of the suggestions in the SO Q&A? Also what does strace -p <pid of hung git daemon> say it's blocking on? – slm Jul 7 '14 at 22:44
  • @slm Do you have any specific suggestions in mind? – l0b0 Jul 8 '14 at 10:13
  • 1
    What fixed for me was making sure Jenkins was running as the user with proper credentials to the GIT repos – MauricioOtta Jul 23 '15 at 20:46
  • 1
    That's what git-upload-pack is supposed to do, AFAICT. It's waiting for you to speak the git fetch-pack protocol and tell it which things to send (try running it on a local repository, you'll get the same output). – derobert Jun 3 '16 at 17:34
  • 2
    (Presuming this question isn't obsolete, as it's from 2013) Does a fresh git clone (from github) work on the host that Jenkins is trying to fetch on? I suspect it won't, and you probably have a Path MTU discovery issue caused by a broken firewall (which might be anywhere on the path—not just your side.) – derobert Jun 3 '16 at 17:36
0

This problem appears to have gone away on its own, as can be expected by a rapidly evolving piece of software. Since I have not observed this issue for probably a couple years now I'd like to extend my thanks to whoever fixed it and consider this question obsolete.

If you are experiencing this issue with recent Git versions please consider asking a separate question, since it is likely not the exact same issue.

protected by Community Jul 21 '18 at 7:07

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.