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

Re: [Xen-devel] [PATCH v7 1/2] OSSTEST: introduce a raisin build test

Ian Campbell writes ("Re: [PATCH v7 1/2] OSSTEST: introduce a raisin build 
> Unfortunately ts-xen-build-prep will not have access to the repo, since
> it won't be cloned. Also when reusing a host (which happens for builds)
> I think this step is skipped (Ian J: can you confirm or deny that?)

Indeed.  It is ts-xen-build-prep which marks a shared build host as
`ready', when it is done.  Near the top of ts-xen-build-prep (and
ts-host-install) you can see
    exit 0 if $ho->{SharedReady};

> I think there are two problems, one is that install-builddep will take
> the apt/dpkg lock, which will be shared by any other invocations --
> making the timeout hard to decide upon (since it will pipeline things).

Worse, unless we took special measures (like target_install_packages
does) we would be relying on the underlying apt/dpkg lock, which apt
and dpkg try to lock in a non-waiting mode: that is, if the lock is
already held they simply fail.

> Second if install-builddep did install something extra due to some
> change in raisin.git, for example, then some jobs would see new build
> deps arrive half way through, or subsequent tests of older branches
> might see something installed which wouldn't have been before.

Indeed, that would be bad.

> Is there a check-builddep? That's the thing I would suggest we run here,
> so we get an explicit failure.

That would be best.

> > Otherwise is there a way to guarantee that only one raisin build happen
> > simultaneously?
> Ian?

It would be possible to completely avoid sharing the build host.  That
would be quite wasteful - particularly as the raisin build is likely
to be able to otherwise share not just the effort of installing the
host, but also a ccache.

> > Given that the series is already at v7, I would prefer to remove the
> > call to install-builddep, even though I think it is important, rather
> > than make substantial modifications. However, if I do remove the call to
> > install-builddep from ts-raisin-build, I would have to install any
> > missing build dependencies somewhere else. Where would that be? In
> > ts-xen-build-prep? Is that script even called for non-xen build jobs?
> In ts-xen-build-prep, I think.

ts-xen-build-prep is slightly misnamed.  It is run for all build
jobs.  (Or, relied on as having been run, for a shared host.)


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.