[Top][All Lists]

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

Re: [Gnu-arch-users] Announce: library-relink

From: Aaron Bentley
Subject: Re: [Gnu-arch-users] Announce: library-relink
Date: Wed, 13 Apr 2005 08:08:13 -0400
User-agent: Debian Thunderbird 1.0 (X11/20050116)

John A Meinel wrote:

Your archive as of patch-24 is corrupted.
If I do:
baz register-archive
baz get address@hidden/library-relink--devel library-relink

Patch-24 seems to be an add of the entire file, where the old version was empty.

Yes, I know about that.

Did your library-relink code actually corrupt your revlib?

Yes. g.a.u seems to be down, but I've discussed this with Robin Farine, and hopefully you'll see those mails when the list comes back.

What seems to have happened is that I did a library add in the middle of relinking. This caused an inode number to be used that the script had already associated with another file.

The bug is fixed in address@hidden/library-relink--devel--1--patch-5

Basically, I went from using (st_dev and st_ino) as identity, to using (st_dev, st_ino, st_mtime, st_size, st_mode). It's virtually impossible to trick it now.

Say you stopped it mid-way through

If you ^C in the middle, it will finish writing the inode sig, then exit. Even if it stopped abruptly, tla/baz would detect it as a corrupt revision.

so it would not finish relinking a file, or some such thing.

If it's interrupted in the middle of relinking, you'll just get a harmless temporary file in that revision.

Or maybe something else was accessing the file while you tried to change the link.

Well, readonly access is fine.  Write access is totally against the rules.

The best thing (I think) is to tag devel--0 into devel--1 and cachrev the new base-0.

I've already tagged the last good revision into devel--1, and applied the latest changes to it. So no need to cacherev.

However, people who already have patch-23 or less, will probably prefer to try to build through patch-24. But this can be avoided by removing the pristine and doing another get.

Since I tagged from the last good revision, this isn't a problem.


reply via email to

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