Re: Some gitbuilders not working

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

 



On Wed, 14 Jan 2015, Ken Dreyer wrote:
> On 01/09/2015 08:16 AM, Sage Weil wrote:
> > On Fri, 9 Jan 2015, Ken Dreyer wrote:
> >> On 01/09/2015 03:33 AM, Loic Dachary wrote:
> >>> On 09/01/2015 07:55, David Zafman wrote:
> >>>>
> >>>> We are seeing gitbuilder failures.  This is what I saw on one.
> >>>>
> >>>> error: Failed build dependencies:
> >>>> xmlstarlet is needed by ceph-1:0.90-821.g680fe3c.el7.x86_64
> >>>
> >>> This is because https://github.com/ceph/ceph/pull/3036 was recently merged.
> >>> However, https://github.com/ceph/autobuild-ceph/pull/19 added xmlstarlet
> >>> about a month ago. Maybe some gitbuilder machines were not updated
> >>> accordingly. If I'm not mistaken this is a manual process but I'm not sure
> >>> exactly how to do it myself.
> >>
> >> I'm not entirely sure of the SOP to apply fabfile changes across our
> >> infrastructure, either. Is there a simple "push this fabfile change
> >> everywhere" command for gitbuilder?
> > 
> > Not really, but it is high time we established one.
> > 
> > At the top of the fabfile all of the targets are defined, so that if you 
> > run bin/fab w/o arguments it should run on *all* of them. Unfortunately 
> > IIRC it's a bit disruptive as it restarts the autobuild service which will 
> > interrupt and restart the current build.
> > 
> > But, that list isn't well-maintained, so it doesn't map to the current set 
> > of gitbuilders.  That's probably pretty easy to fix.  Even if we 
> > do, though, I think fab isn't super great about skipping targets that are 
> > down?  Not sure.
> > 
> > In any case, the way I've run it in practice is on specific targets taht 
> > need updating, like so
> > 
> >  bin/fab gitbuilder_auto:host=user@foo
> > 
> > (or something like that, I forget the exact syntax).  Often on a 
> > host that isn't in the master list.
> > 
> > More frequently the procedure has been:
> > 
> >  - add a dependency to the fabfile for future builders
> >  - manually install the package on the existing ones to avoid the above 
> > pain
> > 
> > which mostly works but doesn't regularly verify that the fabfile is 
> > sufficient and correct.
> >  
> >> In the long term we'll want to get to a point where we're building
> >> Ceph's RPM packages using mock [1] instead of rpmbuild so that mock can
> >> resolve these sort of things automatically without having to deal with
> >> installing new BuildRequires by hand.
> > 
> > That sounds great, although I wonder if it is slow?  We used to do 
> > all of our debian builds with pbuilder which does a similar thing, 
> > but it is way slow because it reinstalls deps on every run.  We moved 
> > to doing native dpkg builds because time is of the essence for test 
> > builds and use pbuilder only for releases...
> 
> It sounds like we should research exactly how much time mock and
> pbuilder would add. Mock implements caching at a lot of levels, though
> it's true that it won't be as fast as just running plain rpmbuild. We
> should get some hard numbers so we know how painful the speed hit would be.
> 
> I'm weighing the time that mock would slow down the builds against the
> time and energy that it takes to
>  - Duplicate the BuildRequires in autobuild-ceph.git
>  - Review the change for correctness and merge the autobuild-ceph.git
>    pull request
>  - Deploy the autobuild-ceph.git changes out to the appropriate
>    gitbuilders
> 
> And then there's the "people stuff", like comprehending that all of the
> above is even necessary, or communicating about this on mailing lists
> like this thread, etc.
> 
> The fact that pbuilders are introduced very late (only during releases)
> means that we encounter errors during a release day when Alfredo or I
> have tried to get a release out the door. The pbuilder stuff isn't
> touched until we try to do a release, and in the mean time, it breaks
> because it's not getting continually tested. We're paying the "slow"
> penalty in other areas down the road.
> 
> I'm not looking to purposefully slow down other people's work, so I'll
> continue to mull over how we can balance speed with correctness.

I agree this woudl vastly simplify things.  Let's see what the performancd 
delta is on the new build boxes (which have lots of modern cores, RAM, and 
SSDs).

Also/alternatively, a step that installs all the BuildRequires on the host 
(even during each run) should be quick in the usual case but similarly 
avoid breakage... Even just making make an install-deps.sh that will Do 
The Right Thing might do the trick?  (Also usefulf or devs checking out 
the source who want to get their environment going quickly.)

sag

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux