hydra-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs builds failing to pull changes


From: Glenn Morris
Subject: Re: Emacs builds failing to pull changes
Date: Tue, 25 Jun 2013 17:41:26 -0400
User-agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/)

I tried to look at this. IIUC:

You're using bzr 2.5.1
  
(https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/version-management/bazaar)

If /home/hydra/data/scm/bzr/756... doesn't exist, you run:
  
(https://github.com/NixOS/hydra/blob/master/src/lib/Hydra/Plugin/BazaarInput.pm)

bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk \
  /home/hydra/data/scm/bzr/756...

(That should fetch ~ 285MB, it could take ~ 15 mins+.)
That returns status 0.
(Actually, do we know that it did return 0?
Are evaluation errors logged anywhere? I can only see the last one.
If it returns non-zero, you abort that run, but then IIUC on the next
run, the directory will exist with partial contents, and you go on to
run bzr pull, which could fail with precisely the error we are seeing.
See suggested patch at end of this mail.)

Then you run:

cd /home/hydra/data/scm/bzr/756...
bzr pull
This exits with an error:
bzr: ERROR: Not a branch: "/home/hydra/data/scm/bzr/756.../.bzr/branch":
  location is a repository.

AFAIK, that error means that the directory 
/home/hydra/data/scm/bzr/756.../.bzr/branch
does not exist. Does it?

And you tried deleting /home/hydra/data/scm/bzr/756...?

And the last day it worked was 2013-06-02, and nothing relevant has
changed since then AFAICS.

I just can't see how a _successful_ "bzr branch" followed by "bzr pull" can
give that error. :(


Unless I misunderstood how it works, my only suggestions are:

1. Examine the contents of /home/hydra/data/scm/bzr/756.../.bzr/
Does it contain a "branch" directory?

2. If not, rm -rf /home/hydra/data/scm/bzr/756...

3. On the next run, log the output of the "bzr branch" command to a file.
The .bzr/branch directory isn't created until the very end after the
download phase finishes.


diff --git a/src/lib/Hydra/Plugin/BazaarInput.pm 
b/src/lib/Hydra/Plugin/BazaarInput.pm
index 5aa4b7a..c9d49f5 100644
--- a/src/lib/Hydra/Plugin/BazaarInput.pm
+++ b/src/lib/Hydra/Plugin/BazaarInput.pm
@@ -33,6 +33,9 @@ sub fetchInput {
         (my $res, $stdout, $stderr) = captureStdoutStderr(600, "bzr", 
"branch", $uri, $clonePath);
         die "error cloning bazaar branch at `$uri':\n$stderr" if $res;
     }
+    elsif (! -d $clonePath/.bzr/branch) {
+        die "error in $clonePath:\nNo .bzr/branch directory";
+    }
 
     chdir $clonePath or die $!;
     (my $res, $stdout, $stderr) = captureStdoutStderr(600, "bzr", "pull");



reply via email to

[Prev in Thread] Current Thread [Next in Thread]