Re: Build Warnings: spotting them, and cleaning them up

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

 



On Wed, 16 Nov 2016, John Spray wrote:
> On Wed, Nov 16, 2016 at 10:05 PM, Gregory Farnum <gfarnum@xxxxxxxxxx> wrote:
> > Recently, Patrick noticed an issue with the MDS TrackedOp
> > implementation where we weren't actually dumping out the event lists
> > anywhere. It turned out to be as a result of an incorrect cleanup, and
> > he fixed it by just reverting the commit in
> > https://github.com/ceph/ceph/pull/11985.
> >
> > But we also wanted to clean up the spurious "now" parameter which goes
> > on used, and John did that in https://github.com/ceph/ceph/pull/12007.
> > It was reviewed by Patrick, Kefu, and myself and got merged with green
> > checkboxes (ie, Github and Jenkins agreed it was good).
> >
> > Then Patrick noticed we'd missed the Monitor's use of TrackedOp code
> > and it was spawning warnings because the relevant _dump() functions no
> > longer had matching parameter lists
> > (https://github.com/ceph/ceph/pull/12029). This concerned me since
> > we'd gotten a pass from Jenkins.
> >
> > It turns out, Jenkins assumes the build is good if the build script
> > returns 0 — it doesn't know anything about the actual text output and
> > doesn't scan for warnings.
> > I'm not sure how hard it would be to change things from that end. From
> > the *compilation* end, Casey suggests the "nicest" thing would be to
> > set the -Werr flag, which turns all warnings into errors. Since we
> > like warning-free code, that's definitely appealing to me.
> > Unfortunately, we've got a problem: boost is notorious for build
> > warnings. At the moment, I'm only seeing one (repeated many times
> > over) resulting from use of the "remove_whitespace" iterator
> > functionality in RGW. Does anybody know a good way to handle that?
> >
> > We also have another (seemingly real) warning: the BlueStore
> > BitAllocator says there are missing return statements in
> > BmapEntry::operator new [](size_t). I didn't look at the code; maybe
> > it's failing to detect return statements in an if-else block. But that
> > should be fixed up as well.
> >
> > So, I guess I'll just throw out a few statements and see how people
> > react to them:
> >
> > 1) The Ceph source should build warning-free. If we have warnings from
> > external code we still trust, we need a way to suppress *only* those
> > warnings so that issues we introduce can easily be detected.
> >
> > 2) Patches that generate new warnings should not be merged.
> >
> > 3) We should turn on -Werr just as soon as the existing BlueStore
> > warning is fixed and the boost warnings can be suppressed. That should
> > happen quickly.
> >
> > 4) If we do that, I guess the existing Jenkins is okay?
> 
> Yes to all points.

Yep!

I have a patch fixing the bluestore warning buried in another series; I'll 
separate it out and submit it separately.

sage

[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