I spent a lot of time debugging this but have yet to determine exactly what the underlying issue is..
Basically, we have a fairly complex git pre-push hook, that attempts to ensure that all our unit tests have run prior to continuing with the push. One of the pre-requisites for getting through the unit tests successfully is a clean build, which involves running a cleanup script we have which kill off various local daemons and restarts them.
What I've found is that this all works when using 'git push origin' directly, but when attempting 'arc land', everything hangs at the end of the arc command. Arc appears to be waiting for 'ssh <our fabricator instance> git-receive-pack' to terminate, but all operations have finished.
Meanwhile, if I kill the ssh git-receive-pack instance explicitly, arc wakes up and finishes.
This is all on OS X Yosemite 10.10.4. arc version reports:
arcanist 18a01dcf1fbd65e97a281e260cea422f85b99227 (8 Aug 2015)
libphutil f0d26839031c93c8bff5f208e1bedf0c3be40baa (31 Jul 2015)
If I run dtruss -p on the ssh process it seems to have been terminated already, and I believe the problem is perhaps that arc is confused about which child PIDs it should be waiting for, but I'm not sure. Moreover, it only happens when these new long-lived daemonized processes are created as part of the git pre-push hook.