git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* What broke snapshots now?
@ 2005-07-09 11:08 David Woodhouse
  2005-07-09 13:37 ` Jeff Garzik
  2005-07-09 16:15 ` Linus Torvalds
  0 siblings, 2 replies; 9+ messages in thread
From: David Woodhouse @ 2005-07-09 11:08 UTC (permalink / raw
  To: Linus Torvalds; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 293 bytes --]

Does git on master.kernel.org need to be updated to handle packed
objects? See attached. 

Linus, please could you add the snapshot script to your regression
testing? http://david.woodhou.se/git-snapshot.sh

It'd be good to keep that working without too much manual intervention. 

-- 
dwmw2


[-- Attachment #2: Forwarded message - Cron <dwmw2@hera> /home/dwmw2/bin/git-snapshot.sh --]
[-- Type: message/rfc822, Size: 7524 bytes --]

From: root@hera.kernel.org (Cron Daemon)
To: dwmw2@hera.kernel.org
Subject: Cron <dwmw2@hera> /home/dwmw2/bin/git-snapshot.sh
Date: Fri, 8 Jul 2005 02:01:01 -0700
Message-ID: <200507080901.j68911XE005138@hera.kernel.org>

+ case `hostname` in
++ hostname
+ export PATH=/home/dwmw2/cogito:/usr/bin:/bin
+ PATH=/home/dwmw2/cogito:/usr/bin:/bin
+ export BASE_DIRECTORY=/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+ BASE_DIRECTORY=/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+ STAGINGLOCK=/staging/upload.lock
+ FINAL=/pub/linux/kernel/v2.6/snapshots
+ '[' '!' -d /pub/scm/linux/kernel/git/torvalds/linux-2.6.git ']'
+ export WORK_DIRECTORY=/home/dwmw2/snapshots/2.6
+ WORK_DIRECTORY=/home/dwmw2/snapshots/2.6
+ export SNAP_TAG_DIRECTORY=/home/dwmw2/snapshots/2.6/tags
+ SNAP_TAG_DIRECTORY=/home/dwmw2/snapshots/2.6/tags
+ export STAGE=/home/dwmw2/snapshots/2.6/stage
+ STAGE=/home/dwmw2/snapshots/2.6/stage
+ export SHA1_FILE_DIRECTORY=/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects
+ SHA1_FILE_DIRECTORY=/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects
++ ls -rt /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.11 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.11-tree /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.12 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.12-rc2 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.12-rc3 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.12-rc4 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.12-rc5 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.12-rc6 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.13-rc1 /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.13-rc2
++ tail -n1
++ sed s:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v::
+ RELNAME=2.6.13-rc2
++ cat /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/refs/tags/v2.6.13-rc2
+ RELOBJ=c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19
++ tail -n1
++ sed s:/home/dwmw2/snapshots/2.6/tags/v::
++ ls -rt /home/dwmw2/snapshots/2.6/tags/v2.6.13-rc2-git1
+ SNAPNAME=2.6.13-rc2-git1
+ '[' 2.6.13-rc2-git1 == '' ']'
++ cat /home/dwmw2/snapshots/2.6/tags/v2.6.13-rc2-git1
+ LASTOBJ=c101f3136cc98a003d0d16be6fab7d0d950581a6
++ echo 2.6.13-rc2-git1
++ sed 's/^.*-git//'
+ OLDGITNUM=1
++ expr 1 + 1
+ NEWGITNUM=2
+ CURNAME=2.6.13-rc2-git2
++ tree-id c101f3136cc98a003d0d16be6fab7d0d950581a6
/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects/c1/01f3136cc98a003d0d16be6fab7d0d950581a6: No such file or directory
fatal: git-cat-file c101f3136cc98a003d0d16be6fab7d0d950581a6: bad file
Invalid id: c101f3136cc98a003d0d16be6fab7d0d950581a6
usage: git-cat-file [-t | tagname] <sha1>
usage: git-cat-file [-t | tagname] <sha1>
Invalid id: 
+ LASTTREE=
++ cat /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/HEAD
+ CURCOMM=a92b7b80579fe68fe229892815c750f6652eb6a9
++ tree-id a92b7b80579fe68fe229892815c750f6652eb6a9
+ CURTREE=7fd73e9f39bf6003cc3188a10426b62d8c47ab40
++ tree-id c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19
/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects/c5/21cb0f10ef2bf28a18e1cc8adf378ccbbe5a19: No such file or directory
fatal: git-cat-file c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19: bad file
Invalid id: c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19
usage: git-cat-file [-t | tagname] <sha1>
usage: git-cat-file [-t | tagname] <sha1>
Invalid id: 
+ RELTREE=
+ echo release 2.6.13-rc2 commit tree
release 2.6.13-rc2 commit tree
++ git-cat-file -t c101f3136cc98a003d0d16be6fab7d0d950581a6
/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects/c1/01f3136cc98a003d0d16be6fab7d0d950581a6: No such file or directory
fatal: git-cat-file c101f3136cc98a003d0d16be6fab7d0d950581a6: bad file
+ echo last c101f3136cc98a003d0d16be6fab7d0d950581a6 tree
last c101f3136cc98a003d0d16be6fab7d0d950581a6 tree
+ echo head a92b7b80579fe68fe229892815c750f6652eb6a9 tree 7fd73e9f39bf6003cc3188a10426b62d8c47ab40
head a92b7b80579fe68fe229892815c750f6652eb6a9 tree 7fd73e9f39bf6003cc3188a10426b62d8c47ab40
+ '[' '' == 7fd73e9f39bf6003cc3188a10426b62d8c47ab40 ']'
++ echo 2.6.13-rc2-git2
++ cut -f2- -d-
+ EXTRAVERSION=-rc2-git2
+ cd /home/dwmw2/snapshots/2.6/stage
+ rm -rf tmp-empty-tree
+ mkdir -p tmp-empty-tree/.git
+ cd tmp-empty-tree
+ git-read-tree a92b7b80579fe68fe229892815c750f6652eb6a9
/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects/f8/640c306db2d583b9a30f2e52f8fb0a4cf624e0: No such file or directory
fatal: failed to unpack tree object a92b7b80579fe68fe229892815c750f6652eb6a9
+ git-checkout-cache Makefile
checkout-cache: Makefile is not in the cache.
+ perl -pi -e 's/EXTRAVERSION =.*/EXTRAVERSION = -rc2-git2/' Makefile
Can't open Makefile: No such file or directory.
+ git-diff-cache -m -p
+ gzip -9
usage: diff-cache [-r] [-z] [-p] [-i] [--cached] <tree sha1>
+ echo a92b7b80579fe68fe229892815c750f6652eb6a9
+ cg-log c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19:a92b7b80579fe68fe229892815c750f6652eb6a9
mv: cannot stat `.git/heads': No such file or directory
mv: cannot stat `.git/tags': No such file or directory
/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects/c5/21cb0f10ef2bf28a18e1cc8adf378ccbbe5a19: No such file or directory
fatal: git-cat-file c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19: bad file
Invalid id: c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19
+ echo a92b7b80579fe68fe229892815c750f6652eb6a9
+ echo New Snapshot 2.6.13-rc2-git2
New Snapshot 2.6.13-rc2-git2
+ '[' -z /pub/linux/kernel/v2.6/snapshots ']'
+ '[' -r /staging/upload.lock ']'
+ exec
+ flock -s 200
+ mv -v /home/dwmw2/snapshots/2.6/stage/patch-2.6.13-rc2-git2.gz /home/dwmw2/snapshots/2.6/stage/patch-2.6.13-rc2-git2.id /home/dwmw2/snapshots/2.6/stage/patch-2.6.13-rc2-git2.log /pub/linux/kernel/v2.6/snapshots
`/home/dwmw2/snapshots/2.6/stage/patch-2.6.13-rc2-git2.gz' -> `/pub/linux/kernel/v2.6/snapshots/patch-2.6.13-rc2-git2.gz'
`/home/dwmw2/snapshots/2.6/stage/patch-2.6.13-rc2-git2.id' -> `/pub/linux/kernel/v2.6/snapshots/patch-2.6.13-rc2-git2.id'
`/home/dwmw2/snapshots/2.6/stage/patch-2.6.13-rc2-git2.log' -> `/pub/linux/kernel/v2.6/snapshots/patch-2.6.13-rc2-git2.log'

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-09 11:08 What broke snapshots now? David Woodhouse
@ 2005-07-09 13:37 ` Jeff Garzik
  2005-07-09 16:15 ` Linus Torvalds
  1 sibling, 0 replies; 9+ messages in thread
From: Jeff Garzik @ 2005-07-09 13:37 UTC (permalink / raw
  To: David Woodhouse; +Cc: Linus Torvalds, git

David Woodhouse wrote:
> Does git on master.kernel.org need to be updated to handle packed
> objects?

Yes.

It's always fun when the on-disk format of the upstream 2.6.x kernel 
repo changes without notice :/

	Jeff

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-09 11:08 What broke snapshots now? David Woodhouse
  2005-07-09 13:37 ` Jeff Garzik
@ 2005-07-09 16:15 ` Linus Torvalds
  2005-07-09 23:38   ` David Woodhouse
  1 sibling, 1 reply; 9+ messages in thread
From: Linus Torvalds @ 2005-07-09 16:15 UTC (permalink / raw
  To: David Woodhouse; +Cc: git



On Sat, 9 Jul 2005, David Woodhouse wrote:
>
> Does git on master.kernel.org need to be updated to handle packed
> objects? See attached. 

Yes, looks that way. Except it's not "git on master.kernel.org", it's "git 
in your home directory", I suspect. I expressly held off packing the 
kernel repo until git had been updated on kernel.org.

So while the regular git on kernel.org should already be up-to-date, you
have

	PATH=/home/dwmw2/cogito:/usr/bin:/bin

in your script ;)

> Linus, please could you add the snapshot script to your regression
> testing? http://david.woodhou.se/git-snapshot.sh

None of the git-specific parts should have broken - you don't even do
anything strange there, I think we already have regression tests in git
for everything you use. But the fact that you had an old version is not 
something I can do much about ;)

		Linus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-09 16:15 ` Linus Torvalds
@ 2005-07-09 23:38   ` David Woodhouse
  2005-07-10 14:39     ` David Woodhouse
  0 siblings, 1 reply; 9+ messages in thread
From: David Woodhouse @ 2005-07-09 23:38 UTC (permalink / raw
  To: Linus Torvalds; +Cc: git

On Sat, 2005-07-09 at 09:15 -0700, Linus Torvalds wrote:
> Yes, looks that way. Except it's not "git on master.kernel.org", it's "git 
> in your home directory", I suspect. I expressly held off packing the 
> kernel repo until git had been updated on kernel.org.

Doh. I thought I'd already done that, but in fact that was for the
scripts which feed the mailing list, while the snapshot script kept
using my copy. I've moved it out of the way now; sorry for the noise.

-- 
dwmw2

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-09 23:38   ` David Woodhouse
@ 2005-07-10 14:39     ` David Woodhouse
  2005-07-10 17:08       ` Linus Torvalds
  0 siblings, 1 reply; 9+ messages in thread
From: David Woodhouse @ 2005-07-10 14:39 UTC (permalink / raw
  To: Linus Torvalds; +Cc: git

On Sun, 2005-07-10 at 00:38 +0100, David Woodhouse wrote:
> Doh. I thought I'd already done that, but in fact that was for the
> scripts which feed the mailing list, while the snapshot script kept
> using my copy. 

Ok, the snapshot script starts working again if I change a few
environment variables to match what the tools now expect.

Now the mailing list feed isn't happy though -- it stopped being able to
pull from your tree at around 0600 UTC (which I think is then the last
DRM fix was added). I got this when trying to update...

Tree change: 0109fd37046de64e8459f8c4f4706df9ac7cc82c:f179bc77d09b9087bfc559d0368bba350342ac76
error: cannot read sha1_file for ce68a60e5c503aaef0a98f8d754effb6c7d9ee99
fatal: unable to read destination tree (ce68a60e5c503aaef0a98f8d754effb6c7d9ee99)

Applying changes...
Fast-forwarding 0109fd37046de64e8459f8c4f4706df9ac7cc82c -> f179bc77d09b9087bfc559d0368bba350342ac76
        on top of 0109fd37046de64e8459f8c4f4706df9ac7cc82c...
error: cannot read sha1_file for ce68a60e5c503aaef0a98f8d754effb6c7d9ee99
fatal: failed to unpack tree object f179bc77d09b9087bfc559d0368bba350342ac76

Since it's just a fast-forward, I just copied the 'origin' tag into the
'master' to move it forward. But it's still not happy:

hera /home/dwmw2/git/mail-2.6 $ cg-diff -r 0109fd37046de64e8459f8c4f4706df9ac7cc82c:f179bc77d09b9087bfc559d0368bba350342ac76
error: cannot read sha1_file for ce68a60e5c503aaef0a98f8d754effb6c7d9ee99
fatal: unable to read destination tree (ce68a60e5c503aaef0a98f8d754effb6c7d9ee99)

-- 
dwmw2

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-10 14:39     ` David Woodhouse
@ 2005-07-10 17:08       ` Linus Torvalds
  2005-07-10 17:22         ` David Woodhouse
  0 siblings, 1 reply; 9+ messages in thread
From: Linus Torvalds @ 2005-07-10 17:08 UTC (permalink / raw
  To: David Woodhouse; +Cc: git



On Sun, 10 Jul 2005, David Woodhouse wrote:
> 
> Now the mailing list feed isn't happy though -- it stopped being able to
> pull from your tree at around 0600 UTC (which I think is then the last
> DRM fix was added). I got this when trying to update...

Which script is this? I'm looking at your scripts, but
"cg-feedmaillist.sh" is unreadable for me, so I can't see all of it.

Anyway, it's possible that this is a temporary problem: one of the issues 
is that since you seem to be using the "rsync:" protocol for updating 
things, what happens is that if the mirroring is off a bit, you may have 
gotten a new head, but not all the objects. Then you'd get exactly this.

I don't know how to solve that, really. It's fundamental to any mirroring
that doesn't guarantee some kind of ordering, ie the dumb kind.

All the "native git" pack-file synchronization protocols should be
strictly ordered, ie they will unpack and write the new objects _before_
they write the new refs that point to them..

But you can just imagine what happens if the mirror script is busy
mirroring at the same time, and has already mirrored the object
directories before we wrote all of them, but then gets to the refs/
directory by the time we have written the new refs (and all the new object
- but it didn't notice that because it had already mirrored the object
dirs). 

See what I'm saying? The thing fixes itself after a while when you try 
again and the next round of mirroring has gotten the objects it missed the 
last time, but there fundamentally isn't anything to be done about the 
fact that the mirroring wasn't "atomic". Only a git-aware mirror could do 
an atomic snapshot.

I'm actually surprised that people haven't complained more about this than 
they have. I know it's happened a couple of times: it bit Dave Jones' 
scripts once, and it's caused webgit to sometimes report "permission 
denied" problems (or whatever) and then showing empty logs.

The fact that my upload scripts _do_ upload in the right order, together
with the fact that rsync normally syncs alphabetically (ie "objects"  
before "refs") means that we _normally_ don't see this, but it's
occasionally unavoidable when I happen to do a new push while a previous
mirror sweep is going on.

Of course, in this case it may also be just some cogito thing that doesn't
like pack-files. The fact that it complains about an object that is not
actually either of the "heads" of the diff makes me suspect it's really a
missing object, though, which in turn makes me suspect the above mirror
mis-feature.

			Linus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-10 17:08       ` Linus Torvalds
@ 2005-07-10 17:22         ` David Woodhouse
  2005-07-10 17:31           ` Linus Torvalds
  0 siblings, 1 reply; 9+ messages in thread
From: David Woodhouse @ 2005-07-10 17:22 UTC (permalink / raw
  To: Linus Torvalds; +Cc: git

On Sun, 2005-07-10 at 10:08 -0700, Linus Torvalds wrote:
> Which script is this? I'm looking at your scripts, but
> "cg-feedmaillist.sh" is unreadable for me, so I can't see all of it.

Hm. Dunno why that happened -- it's readable now, and also at
http://david.woodhou.se/cg-feedmaillist.sh

> Anyway, it's possible that this is a temporary problem: one of the issues 
> is that since you seem to be using the "rsync:" protocol for updating 
> things, what happens is that if the mirroring is off a bit, you may have 
> gotten a new head, but not all the objects. Then you'd get exactly this.

It's done locally on hera though -- so the mirroring shouldn't be a
problem. IIRC the reason it uses rsync is because I wasn't getting tags
when it was using whatever other method was the default for a local
'parent repository'.

That was actually more relevant for the snapshots than the mailing list
feed, though -- so even if it isn't fixed now, I could live without
tags.

More usefully though, if ordering really isn't a problem on your
repository then I should probably rewrite the script to work directly
from that instead of from a copy.

-- 
dwmw2

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-10 17:22         ` David Woodhouse
@ 2005-07-10 17:31           ` Linus Torvalds
  2005-07-11  8:09             ` David Woodhouse
  0 siblings, 1 reply; 9+ messages in thread
From: Linus Torvalds @ 2005-07-10 17:31 UTC (permalink / raw
  To: David Woodhouse; +Cc: git



On Sun, 10 Jul 2005, David Woodhouse wrote:
> 
> > Anyway, it's possible that this is a temporary problem: one of the issues 
> > is that since you seem to be using the "rsync:" protocol for updating 
> > things, what happens is that if the mirroring is off a bit, you may have 
> > gotten a new head, but not all the objects. Then you'd get exactly this.
> 
> It's done locally on hera though -- so the mirroring shouldn't be a
> problem.

No it's not, as far as I can tell:

	torvalds@hera:/home/dwmw2/git/mail-2.6(0)$ cat .git/branches/origin
	rsync://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

so your scripts will go out to rsync with www.kernel.org to get the data, 
when you use "cg-update origin".

> More usefully though, if ordering really isn't a problem on your
> repository then I should probably rewrite the script to work directly
> from that instead of from a copy.

It should not be a problem, but you obviously have to be careful about 
ordering, ie you should fetch the references first, and act on them later. 

		Linus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: What broke snapshots now?
  2005-07-10 17:31           ` Linus Torvalds
@ 2005-07-11  8:09             ` David Woodhouse
  0 siblings, 0 replies; 9+ messages in thread
From: David Woodhouse @ 2005-07-11  8:09 UTC (permalink / raw
  To: Linus Torvalds; +Cc: git

On Sun, 2005-07-10 at 10:31 -0700, Linus Torvalds wrote:
> No it's not, as far as I can tell:
> 
>         torvalds@hera:/home/dwmw2/git/mail-2.6(0)$ cat .git/branches/origin
>         rsync://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
> 
> so your scripts will go out to rsync with www.kernel.org to get the data, 
> when you use "cg-update origin".

Hm, OK. So I have absolutely no recollection of what my own scripts are
actually doing. I could have sworn I made sure it was local. If it was
using that URL for the master I might as well have run it elsewhere...

It does seem to be working again now. I'll probably rewrite it next time
it misbehaves.
> 
-- 
dwmw2

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-07-11  8:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-09 11:08 What broke snapshots now? David Woodhouse
2005-07-09 13:37 ` Jeff Garzik
2005-07-09 16:15 ` Linus Torvalds
2005-07-09 23:38   ` David Woodhouse
2005-07-10 14:39     ` David Woodhouse
2005-07-10 17:08       ` Linus Torvalds
2005-07-10 17:22         ` David Woodhouse
2005-07-10 17:31           ` Linus Torvalds
2005-07-11  8:09             ` David Woodhouse

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).