Mam następującą strukturę połączeń:
- Jenkins biegnie
fab -Huser@host set_repository_commit_hash:123abc
. set_repository_commit_hash
działagit fetch
zpty = False
.- Proces potomny
ssh git@github.com git-upload-pack 'user/repository.git'
nigdy się nie kończy.
Próbowałem uruchomić się git fetch
w lokalnym klonie i to się powiedzie, ale uruchomienie ssh git@github.com git-upload-pack 'user/repository.git'
tylko zwraca następujące i zawiesza się:
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
Czy to znany problem SSH / Git / Fabric / Jenkins?
Zrobiłem strace
to, ale nie nagrałem sesji. Wierzę, że utknęło read
.
Ewentualnie odpowiednie linki:
- Problem Jenkinsa 14752: Odpytywanie SCM / Maksymalna liczba jednoczesnych odpytywań = 1 zawiesza odpytywanie github
- Dlaczego pakiet git-upload-pack (podczas klonowania git) miał się zawiesić?
- wydanie żółwia 1880: pobieranie żółwia zawiesza się z powodu uruchomionego / nigdy nie wychodzącego żółwia (szczególnie komentarz nr 7 )
- Co to jest ten losowy, niekończący się proces „git-upload-pack”?
git-upload-pack
powinno zrobić, AFAICT. Czeka na ciebie, abyś wypowiedział protokół git fetch-pack i powiedział, jakie rzeczy wysłać (spróbuj uruchomić go w lokalnym repozytorium, otrzymasz to samo wyjście).
git clone
(z github) działa na hoście, do którego Jenkins próbuje pobrać? Podejrzewam, że tak się nie stanie, a prawdopodobnie masz problem z wykrywaniem MTU ścieżki spowodowany przez zepsuty firewall (który może znajdować się w dowolnym miejscu na ścieżce - nie tylko po twojej stronie).
strace -p <pid of hung git daemon>
mówi, że się blokuje?