Page MenuHomePhabricator

Empty git repositories fail to update cleanly
Closed, ResolvedPublic

Description

I'm thinking this may be a regression introduced with the cluster repository changes (T4292). As a workaround, we just deactivated empty repos until we were ready to push an initial commit to them.

Steps to reproduce on a fresh install (with or without cluster repositories configured):

  • Create and activate a hosted git repository.
  • Do not push any commits to it.

Actual Result:
The PhabricatorRepositoryPullLocalDaemon daemon throws an exception:

Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] [2016-07-11 08:45:17] EXCEPTION: (PhutilProxyException) Error while updating the "rTEST" repository. {>} (CommandException) Command failed with error #255!
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] COMMAND
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] '/vagrant/integrator/phacility/phabricator/bin/repository' update  -- 'rTEST'
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] STDOUT
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] (empty)
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] STDERR
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] [2016-07-11 08:45:17] EXCEPTION: (CommandException) Command failed with error #128!
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] COMMAND
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] git log --format='%H%x01%P%x01%ct' --all --
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] STDOUT
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] (empty)
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] STDERR
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] fatal: bad default revision 'HEAD'
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]  at [<phutil>/src/future/exec/ExecFuture.php:361]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] arcanist(), integrator(head=master, ref.master=165709410f4a), phabricator(), phutil()
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #0 ExecFuture::resolvex() called at [<phutil>/src/filesystem/linesofalarge/LinesOfALargeExecFuture.php:108]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #1 LinesOfALargeExecFuture::readMore() called at [<phutil>/src/filesystem/linesofalarge/LinesOfALarge.php:199]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #2 LinesOfALarge::next() called at [<phutil>/src/filesystem/linesofalarge/LinesOfALarge.php:111]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #3 LinesOfALarge::rewind() called at [<phabricator>/src/applications/repository/daemon/PhabricatorGitGraphStream.php:33]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #4 PhabricatorGitGraphStream::__construct(PhabricatorRepository) called at [<phabricator>/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php:763]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #5 PhabricatorRepositoryDiscoveryEngine::markUnre... (1,108 more bytes) ... at [<phutil>/src/future/exec/ExecFuture.php:361]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400] arcanist(), integrator(head=master, ref.master=165709410f4a), phabricator(), phutil()
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #0 <#3> ExecFuture::resolvex() called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:393]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #1 phlog(PhutilProxyException) called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:400]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #2 PhabricatorRepositoryPullLocalDaemon::resolveUpdateFuture(PhabricatorRepository, ExecFuture, integer) called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:203]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #3 PhabricatorRepositoryPullLocalDaemon::run() called at [<phutil>/src/daemon/PhutilDaemon.php:184]
Daemon 1 STDE [Mon, 11 Jul 2016 08:45:17 -0400]   #4 PhutilDaemon::execute() called at [<phutil>/scripts/daemon/exec/exec_daemon.php:127]

Screen Shot 2016-07-11 at 10.32.06 AM.png (658×1 px, 105 KB)

phabricator cadac75b82bbed18d52c3ee7ba6d396bff69c009 (Fri, Jun 24)
arcanist 18b27b03fa3d9f2439bf998c5fa2e4f5bd93db16 (Sat, Jun 18)
phutil 8aa8612a094b4dafcf5c461b746a613a1e229b86 (Sat, Jun 18)

Expected Result:
Updates succeed. This is the same scenario at an earlier version.

Screen Shot 2016-07-11 at 10.30.29 AM.png (493×727 px, 72 KB)

phabricator fea2389066edf3ad0a7547ae12d8e988428a4f5c (Apr 2 2016)
arcanist f89f3de65805f7f65c8082ed387e8e2572596f7a (Mar 19 2016)
phutil d414e4436e1c8779634458c23ab8880cf613312f (Apr 1 2016)

Event Timeline

epriestley claimed this task.
epriestley added a subscriber: epriestley.

Update past D16234 (July 5).

(This doesn't do anything bad, just spams the logs a bit, so no rush to update.)

Please update Phabricator and re-test. We require bug reports be made at HEAD.

Ahh, yeah D16234 was it. I'll make sure to update to HEAD next time. Thanks guys.