On Sun, Oct 14, 2012 at 1:55 PM, Chuck Lever <chuck.lever@xxxxxxxxxx> wrote: > > I think range-check assertions in the XDR code are valuable. Whether they are done via BUG_ON or WARN_ON_ONCE is a matter of priority: Bullshit. > BUG_ON forces you to notice the problem and address it, while WARN_ON allows the system to continue operating with the bug, but the bug can be ignored (or the WARN_ON simply removed because it is annoying). Bullshit again. I don't think you've ever even *seen* a BUG_ON() fire in critical code, have you? It's not pretty. It doesn't "force you to notice the problem". Rather the reverse. It often causes a totally silent death of the machine, and/or scrolled-off messages that you never see, exactly because the thing you *do* see is the fallout from the developer having done something incredibly stupid. Really. There's a reason I say that BUG_ON() is only for those cases where the machine is already totally unrecoverable. It *will* screw the machine up, usually in ways that makes it totally undebuggable. So please stop making excuses for it. It's bad. It isn't some kind of "this forces you to notice". Really. The fact that you think it is just shows that you probably never saw them actually trigger, or you only saw them trigger in code that happened to not hold any locks etc. So shove those BUG_ON()'s where the sun don't shine. They make things *worse*, not better. They are valid for some very core code where a major internal data structure is totally scrogged, but they are *never* valid for some kind of random assert(). Exactly because BUG_ON() is such a big hammer that using it is more likely to *destroy* the data you want to assert and show the user, rather than actually showing the user anything at all. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html