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

Re: unexpected NMUs || buildd queue



On Sun, Jul 18, 2004 at 08:51:30AM +0200, Goswin von Brederlow wrote:
> Wouter Verhelst <wouter@grep.be> writes:
> > On Sat, Jul 17, 2004 at 08:35:18PM +0200, Goswin von Brederlow wrote:
> >> That depends on what method of chroot cleaning / regeneration is being
> >> configured.
> >> 
> >> One option is to have a template chroot (as tar.gz for example) and to
> >> untar that for every build anew. Cleaning is a simple rm.
> >> 
> >> Another option is to have an LVM volume and make a new snapshot of it
> >> for every build. Cleaning removes the snapshot.
> >
> > When and how are those template chroots or volumes updated? What steps
> > are taken to ensure those updates don't take away too many resources
> > whilst still ensuring the chroots are (reasonably) up-to-date?
> 
> The template is normaly managed by the buildd admin. At some time he
> goes into maintainance mode (which would mosly stop any new builds
> from being started but doesn't always need to wait for a build to
> finish) and does his thing. It is still his job to keep the template
> working.

That's reasonable.

> The current behaviour of just having one chroot that always just
> installs/purges packages without getting refreshed is reflected in one
> possible configuration. If the buildd admin thinks any of the other
> methods waste resources he can keep the old way.

Aha. Okay :-)

> The buildd will update build-essential and a buildd-essential package
> when cloneing the template to ensure builds are always done with
> current core packages. The multibuild buildd could compare the version
> of buildd-essential from the template and the updated one and notifiy
> the buildd admin if they differ to much (e.g. debian revision differs
> is fine but major version gives a notification).

I would recommend against doing this, because it introduces another
potential problem (and you don't need that). Usually, slightly outdated
toolchains don't really matter; and when they do, buildd admins usually
know about this and should update the toolchain anyway.

[...]
> > In case of the tar.gz template, what happens when - say - a bug exists
> > in a postrm script of one of the GNOME packages, resulting in a number
> > of multi-gigabyte chroots laying around on the disk?
> 
> A failure in purging the Build-Depends doesn't mean the build has
> failed.

No, obviously not, but then that was only an example :-)

> Normaly if a build succeeds you don't keep a copy of the chroot and a
> cleanup failure will recreate the chroot form the template. On the
> other hand you might want to keep the chroot on build failures but
> then that is before the cleanup and postrm won't be caled. You get
> those multi-gigabyte chroots laying around even with working postrm,
> if you so choose.
> 
> A normal configuration (what I consider normal) would not keep the
> chroots around. Only on build failure the source build tree is kept
> with a log of what was used in the chroot. A tool to recreate a chroot
> by looking at a buildd log and using snapshots.debian.net is on my
> todo list and in my opinion that is a better solution than keeping
> broken chroots around.

OIC. Of course, theoretically the build could fail because it started
modifying loads of stuff in the chroot, resulting in the new chroot to
behave differently, but I understand why you wouldn't want to even
consider that issue :-)

> Another thing is that multibuild plans include giving packages with
> simmilar build-depends preferably to one buildd. That should optimize
> (minimize) downloading Build-Depends. Multibuild is also ment to give
> packages with build-depends chains to one buildd which can use the
> local debs (probably only post signing) instead of having to wait for
> a dinstall run.

Hm. It makes sense to give them to the same buildd, but it doesn't make
sense to wait 'till one of the packages has been signed; dinstall runs
every 15 minutes, and the buildd machines have instant access, so then
it might end up faster on a different machine.

> The multibuild client could implement purging of only those packages
> that are not needed for the next build. After each build the purge
> function for the chroot type is called and gets a list of future
> builds as parameter. Currently that is complety ignored (I always wipe
> the chroot and untar a new one in my test config) but I had exactly
> that feature in mind designing the buildd <-> chroot interface.

Cool.

> Think about the time saved for m68k by not purging and reinstalling
> gnome between two gnome package builds.
> 
> But back to your question again: Say you do keep a copy (tar.gz) of
> the chroots around after a failure. Hopefully gnome packages will be
> build in a bunch and the postrm will only be called once.

Oh. Have a look at that.

[...]

Hmm. You've cleared a lot up with this mail, and taken away some of my
scepticism. That doesn't mean I'll immediately start using it once it's
ready, but that's a different matter.

-- 
         EARTH
     smog  |   bricks
 AIR  --  mud  -- FIRE
soda water |   tequila
         WATER
 -- with thanks to fortune

Attachment: signature.asc
Description: Digital signature


Reply to: