Problem
Recently our company migrated to phabricator and all went good, BUT for some reason a command to git submodule update --init infrequently gets stuck on our build slaves.
Our environment
- Latest phabricator master running on a four core Ubuntu 14.04 server (nginx, php5).
- Some big Git repos with submodules hosted in diffusion.
- Jenkins build server with four build slaves.
How to reproduce
I've written a minimal C# command line app which concurrently execute the following two commands locally:
- git clone <big_repo
- git submodule update --init
Client side
After the second iteration "ssh.exe" gets stuck with the following command line args (from ProcessHacker):
ssh git@<our_server> "git-upload-pack 'repo.git'"
Server side
The php script "ssh-exec" hangs forever:
I'm no php guru so I hope this strace can help you a bit:
Process 28854 attached 11:21:11.326317 select(6, [5], [], [5], {0, 258527}) = 0 (Timeout) 11:21:11.586045 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:11.586648 select(6, [5], [], [5], {1, 0}) = 0 (Timeout) 11:21:12.588346 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:12.588962 select(6, [5], [], [5], {1, 0}) = 0 (Timeout) 11:21:13.590614 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:13.591170 select(6, [5], [], [5], {1, 0}) = 0 (Timeout) 11:21:14.592899 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:14.593405 select(6, [5], [], [5], {1, 0}) = 0 (Timeout) 11:21:15.594946 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:15.595386 select(6, [5], [], [5], {1, 0}) = 0 (Timeout) 11:21:16.597088 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:16.597549 select(6, [5], [], [5], {1, 0}) = 0 (Timeout) 11:21:17.599138 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:17.599624 select(6, [5], [], [5], {1, 0}) = 0 (Timeout) 11:21:18.601216 read(5, 0x1ecc9e0, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11:21:18.601686 select(6, [5], [], [5], {1, 0}^C
If I simply kill this php process on the server, then I get the following message locally:
Terminated fatal: early EOF fatal: The remote end hung up unexpectedly fatal: index-pack failed
I've also checked that my sshd deamon is working correctly by simply cloning over port 222 (normal sshd port) and everything is working fine.
Any ideas?
Thank you very much for your effort in advance!