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

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

 



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.

John

> -Greg
> --
> 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
--
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