git-upload-pack висит бесконечно

30

У меня есть следующая структура звонка:

  1. Дженкинс бежит fab -Huser@host set_repository_commit_hash:123abc.
  2. set_repository_commit_hashработает git fetchс pty = False.
  3. Дочерний процесс ssh git@github.com git-upload-pack 'user/repository.git'никогда не заканчивается.

Я попытался запустить git fetchв локальном клоне, и это успешно, но запуск ssh git@github.com git-upload-pack 'user/repository.git'только возвращает следующее и зависает:

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

Это известная проблема SSH / Git / Fabric / Jenkins?

Я сделал straceэто, но я не записал сессию. Я считаю, что это застряло на read.

Возможно соответствующие ссылки:

  1. Выпуск Jenkins 14752: опрос SCM / максимальное число одновременных опросов = 1 зависает опрос github
  2. Почему git-upload-pack (во время git clone) зависает?
  3. выпуск tortoisegit 1880: сборка tortoisegit зависает из-за работающей / никогда не исчезающей tortoisegitplink (особенно комментарий № 7 )
  4. Что это за случайный бесконечный процесс git-upload-pack?
l0b0
источник
1
Пробовали какие-либо предложения в SO Q & A? Кроме того, что говорит, strace -p <pid of hung git daemon>что это блокирует?
slm
@slm Есть ли у вас какие-либо конкретные предложения?
10
1
Что исправило для меня, так это то, что Дженкинс работал как пользователь с надлежащими учетными данными в репозиториях GIT
MauricioOtta
1
Это то, что git-upload-packдолжно делать, AFAICT. Он ждет, когда вы поговорите по протоколу git fetch-pack и сообщите ему, что отправлять (попробуйте запустить его в локальном репозитории, вы получите тот же вывод).
Дероберт
2
(Предполагается, что этот вопрос не устарел, так как это было в 2013 году) Работает ли свежая git clone(от github) работа на хосте, который пытается получить Jenkins? Я подозреваю, что это не так, и у вас, вероятно, есть проблема с обнаружением Path MTU, вызванная сломанным брандмауэром (который может быть где угодно на пути - не только на вашей стороне)
derobert

Ответы:

0

Эта проблема, похоже, исчезла сама по себе, как можно ожидать от быстро развивающегося программного обеспечения. Поскольку я не наблюдал эту проблему в течение, вероятно, пары лет, я хотел бы поблагодарить того, кто бы это ни исправил, и посчитал этот вопрос устаревшим.

Если вы столкнулись с этой проблемой в последних версиях Git, пожалуйста, подумайте над тем, чтобы задать отдельный вопрос , так как это, вероятно, не та же проблема.

l0b0
источник