As it looks, this does the trick: https://github.com/rsyslog/rsyslog/commit/4cc10e7434d21f98e5cacd542edb834f894db620
It's currently in master-candidate and will migrate to master when the testruns look good (the manual one did). Totally empty configs are still not tolerated. I'll see if I can add an option for that. Rainer 2014-11-19 20:07 GMT+01:00 Brian Knox <[email protected]>: > Thanks! > > On Wed, Nov 19, 2014 at 1:59 PM, Rainer Gerhards <[email protected] > > > wrote: > > > Ok then I need to see how I can fiddle that into the grammar ;) > > > > Sent from phone, thus brief. > > Am 19.11.2014 19:56 schrieb "David Lang" <[email protected]>: > > > > > On Wed, 19 Nov 2014, Rainer Gerhards wrote: > > > > > > 2014-11-19 16:40 GMT+01:00 Brian Knox <[email protected]>: > > >> > > >> Ok - perhaps we have accidently conflated two problems: > > >>> > > >>> 1) An empty ruleset > > >>> 2) A ruleset with only "stop" > > >>> > > >>> this will pass validation: > > >>> > > >>> ------------------------------------ > > >>> ruleset(name="foo") { > > >>> stop > > >>> } > > >>> *.* /var/log/test > > >>> call foo > > >>> ------------------------------------ > > >>> > > >>> If the ruleset is empty, however, it will not: > > >>> > > >>> ------------------------------------ > > >>> ruleset(name="foo") { > > >>> } > > >>> *.* /var/log/test > > >>> call foo > > >>> ------------------------------------ > > >>> > > >>> rsyslogd: version 8.5.0, config validation run (level 1), master > config > > >>> ./test.conf > > >>> rsyslogd: error during parsing file ./test.conf, on or before line 2: > > >>> syntax error on token '}' [try http://www.rsyslog.com/e/2207 ] > > >>> rsyslogd: CONFIG ERROR: could not interpret master config file > > >>> './test.conf'. [try http://www.rsyslog.com/e/2207 ] > > >>> rsyslogd: run failed with error -2207 (see rsyslog.h or try > > >>> http://www.rsyslog.com/e/2207 to learn what that number means) > > >>> > > >>> > > >>> OK, that's a different question. Is the consensus we need to support > > >> this > > >> as well? > > >> > > > > > > I think so, with a warning reported at startup or something like that. > > > > > > David Lang > > > > > > Rainer > > >> > > >> > > >> Brian > > >>> > > >>> > > >>> > > >>> On Wed, Nov 19, 2014 at 10:35 AM, Brian Knox <[email protected] > > > > >>> wrote: > > >>> > > >>> For verifying the problem I ran rsyslog -N1 -f against just the > subset > > >>>> of > > >>>> the config, if I recall correctly. I believe my coworker had the > same > > >>>> issue with the full config that definitely had actions in it - but > > I'll > > >>>> > > >>> ask > > >>> > > >>>> him to reproduce with the full configuration. Thanks! > > >>>> > > >>>> Brian > > >>>> > > >>>> On Wed, Nov 19, 2014 at 10:13 AM, Rainer Gerhards < > > >>>> [email protected]> wrote: > > >>>> > > >>>> Brian, > > >>>>> > > >>>>> I just revisited this problem report. I have now taken a look at > the > > >>>>> > > >>>> code. > > >>> > > >>>> The error message actually tells you that there is no action inside > > the > > >>>>> *entire config*, not just an empty ruleset. Can you confirm there > was > > >>>>> nothing else in the config? If not, can you send me the config, so > > that > > >>>>> > > >>>> I > > >>> > > >>>> can try to see what's going on. > > >>>>> > > >>>>> I assume we agree that a totally action-less config is an error ;) > > >>>>> > > >>>>> Rainer > > >>>>> > > >>>>> 2014-11-11 22:49 GMT+01:00 Brian Knox <[email protected]>: > > >>>>> > > >>>>> If was able to use an empty ruleset, a warning resulting from that > > >>>>>> > > >>>>> wouldn't > > >>>>> > > >>>>>> bother me at all. > > >>>>>> > > >>>>>> Brian > > >>>>>> > > >>>>>> On Tue, Nov 11, 2014 at 4:25 PM, David Lang <[email protected]> > wrote: > > >>>>>> > > >>>>>> On Tue, 11 Nov 2014, Rainer Gerhards wrote: > > >>>>>>> > > >>>>>>> 2014-11-11 17:22 GMT+01:00 David Lang <[email protected]>: > > >>>>>>> > > >>>>>>>> > > >>>>>>>> On Tue, 11 Nov 2014, Brian Knox wrote: > > >>>>>>>> > > >>>>>>>>> > > >>>>>>>>> Rainer, > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>>>>> I agree that an empty ruleset is an oddity. In our case, the > > >>>>>>>>>> > > >>>>>>>>> short > > >>> > > >>>> answer > > >>>>>>>>>> is that we are generating configurations from templates using > > >>>>>>>>>> > > >>>>>>>>> chef, > > >>> > > >>>> and > > >>>>>> > > >>>>>>> the > > >>>>>>>>>> ability to have a ruleset that simply discards would make part > > of > > >>>>>>>>>> > > >>>>>>>>> that > > >>>>> > > >>>>>> process much simpler for us. > > >>>>>>>>>> > > >>>>>>>>>> It is admittedly an edge case. > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> It's an edge case, but I think it's one that should be > > supported > > >>>>>>>>> > > >>>>>>>> if > > >>> > > >>>> possible. > > >>>>>>>>> > > >>>>>>>>> automated config generation is very useful, and being able to > > >>>>>>>>> > > >>>>>>>> group > > >>> > > >>>> rules > > >>>>>> > > >>>>>>> into rulesets and call them with the calling function not having > > >>>>>>>>> > > >>>>>>>> any > > >>> > > >>>> idea > > >>>>>> > > >>>>>>> of what is going to happen with the logs at that point is very > > >>>>>>>>> > > >>>>>>>> useful, > > >>>>> > > >>>>>> being able to have a high level config split the logs up and call > > >>>>>>>>> different > > >>>>>>>>> rulesets on different logs without having to worry if the > ruleset > > >>>>>>>>> > > >>>>>>>> does > > >>>>> > > >>>>>> something with the logs or just throws them away is _very_ useful. > > >>>>>>>>> > > >>>>>>>>> So it is a corner case, but I think it's a valuable one to > > >>>>>>>>> > > >>>>>>>> support. > > >>> > > >>>> > > >>>>>>>>> > > >>>>>>>>> ack > > >>>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> I would suggest that at config load time, that this is an odd > > >>>>>>>> > > >>>>>>> enough > > >>> > > >>>> corner case that it's worth logging a "ruleset X can't do anything > > >>>>>>>>> > > >>>>>>>> with > > >>>>> > > >>>>>> the > > >>>>>>>>> logs" message, not just for the case where the only action is > to > > >>>>>>>>> > > >>>>>>>> throw > > >>>>> > > >>>>>> it > > >>>>>> > > >>>>>>> away, but also for the cases where the conditions in a ruleset > > >>>>>>>>> > > >>>>>>>> cannot > > >>>>> > > >>>>>> possibly match any log message (if priority = info then *.crit > > >>>>>>>>> > > >>>>>>>> also > > >>> > > >>>> cannot > > >>>>>>>>> match anything for example) > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>>>> Let's start with what we have on the table. I think it is best > > to > > >>>>>>>>> > > >>>>>>>> add > > >>>>> > > >>>>>> a > > >>>>>> > > >>>>>>> ruleset parameter "permitEmpty=on". That way, we don't generate > > >>>>>>>> error/warning messages when the user is aware of what he is > doing. > > >>>>>>>> > > >>>>>>> In > > >>> > > >>>> any > > >>>>>> > > >>>>>>> manual case (without config gen), I'd still say that's an error > > >>>>>>>> indication. > > >>>>>>>> > > >>>>>>>> > > >>>>>>> I think that this is a sufficently corner case that I'm not sure > > >>>>>>> > > >>>>>> it's > > >>> > > >>>> worth the extra complexity to silence the warning. I think that > > >>>>>>> > > >>>>>> people > > >>> > > >>>> who > > >>>>>> > > >>>>>>> do this intentionally can just ignore the log message. > > >>>>>>> > > >>>>>>> On the topic of no filter matches. That's quite complex, as you > > >>>>>>> > > >>>>>> would > > >>> > > >>>> need > > >>>>>> > > >>>>>>> to evaluate all the filters and possible conditions. Not sure if > it > > >>>>>>>> > > >>>>>>> can > > >>>>> > > >>>>>> even reliably done. Am I overlooking something? > > >>>>>>>> > > >>>>>>>> > > >>>>>>> I am not saying that it should try to catch every possible case, > > >>>>>>> > > >>>>>> but I > > >>> > > >>>> was > > >>>>>> > > >>>>>>> thinking that the configuration optimization step would "optomize > > >>>>>>> > > >>>>>> away" > > >>>>> > > >>>>>> some impossible combinations, and that could result in an empty > > >>>>>>> > > >>>>>> ruleset. > > >>>>> > > >>>>>> > > >>>>>>> David Lang > > >>>>>>> > > >>>>>>> _______________________________________________ > > >>>>>>> rsyslog mailing list > > >>>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>>>>> http://www.rsyslog.com/professional-services/ > > >>>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > >>>>>>> > > >>>>>> myriad > > >>>>> > > >>>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > > >>>>>>> > > >>>>>> you > > >>> > > >>>> DON'T LIKE THAT. > > >>>>>>> > > >>>>>>> _______________________________________________ > > >>>>>> rsyslog mailing list > > >>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>>>> http://www.rsyslog.com/professional-services/ > > >>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > >>>>>> > > >>>>> myriad > > >>> > > >>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > you > > >>>>>> DON'T LIKE THAT. > > >>>>>> > > >>>>>> _______________________________________________ > > >>>>> rsyslog mailing list > > >>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>>> http://www.rsyslog.com/professional-services/ > > >>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > >>>>> myriad > > >>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > > you > > >>>>> DON'T LIKE THAT. > > >>>>> > > >>>>> > > >>>> > > >>>> _______________________________________________ > > >>> rsyslog mailing list > > >>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>> http://www.rsyslog.com/professional-services/ > > >>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > myriad > > >>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > you > > >>> DON'T LIKE THAT. > > >>> > > >>> _______________________________________________ > > >> rsyslog mailing list > > >> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >> http://www.rsyslog.com/professional-services/ > > >> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > myriad > > >> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > > >> DON'T LIKE THAT. > > >> > > >> _______________________________________________ > > > rsyslog mailing list > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > http://www.rsyslog.com/professional-services/ > > > What's up with rsyslog? Follow https://twitter.com/rgerhards > > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > myriad > > > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > > > DON'T LIKE THAT. > > > > > _______________________________________________ > > rsyslog mailing list > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > http://www.rsyslog.com/professional-services/ > > What's up with rsyslog? Follow https://twitter.com/rgerhards > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad > > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > > DON'T LIKE THAT. > > > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com/professional-services/ > What's up with rsyslog? Follow https://twitter.com/rgerhards > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > DON'T LIKE THAT. > _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

