OK, after building and installing from the master branch we are still getting 
segfaults. Running under Valgrind keeps it alive. The Valgrind errors and debug 
output look the same as with the binaries built from the master/elasticsearch 
branch.

Is it possible we broke something by adding the new plugin? We see the same 
behavior when not loading the plugin and just using the omfile actions with the 
expression-based filters.

Another observation: no segfaults when using property-based filtering.

Are we running into some limitation on the number of messages that can be 
processed when using the expression-based filters? Like I said earlier, it runs 
fine if its idle (by blocking the incoming  remote UDP messages). We're 
receiving around 20,000 msgs/minute.

Thanks

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Lars Peterson
Sent: Friday, June 08, 2012 11:11 AM
To: rsyslog-users
Subject: Re: [rsyslog] rsyslog 6.3.8 - expression-based filters causing 
Segmentation fault

Interesting...rsyslogd does not segfault when running under valgrind. Is this 
expected?

The output I see from stderr is a bit lengthy to post, but here's what's at the 
top:

==8994== Memcheck, a memory error detector ==8994== Copyright (C) 2002-2010, 
and GNU GPL'd, by Julian Seward et al.
==8994== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info 
==8994== Command: /opt/rsyslog_TEST/sbin/rsyslogd -f /etc/rsyslog.conf -c 6 -x 
-n -d ==8994==
rsyslogd: warning: selector line without actions will be discarded ==8994== 
Thread 11:
==8994== Conditional jump or move depends on uninitialised value(s)
==8994==    at 0x418315: cnfexprEval (rainerscript.c:1179)
==8994==    by 0x4190DE: cnfexprEvalBool (rainerscript.c:1208)
==8994==    by 0x43A82B: processBatch (rule.c:181)
==8994==    by 0x4398AD: processBatchDoRules (ruleset.c:147)
==8994==    by 0x428D0E: llExecFunc (linkedlist.c:389)
==8994==    by 0x439C55: processBatch (ruleset.c:229)
==8994==    by 0x40CBC0: msgConsumer (syslogd.c:608)
==8994==    by 0x43936D: ConsumerReg (queue.c:1791)
==8994==    by 0x4344B0: wtiWorker (wti.c:313)
==8994==    by 0x433FF9: wtpWorker (wtp.c:387)
==8994==    by 0x504A7F0: start_thread (in /lib64/libpthread-2.12.so)
==8994==    by 0x116646FF: ???
==8994==
==8994== Conditional jump or move depends on uninitialised value(s)
==8994==    at 0x418315: cnfexprEval (rainerscript.c:1179)
==8994==    by 0x4182E5: cnfexprEval (rainerscript.c:1121)
==8994==    by 0x4189D0: cnfexprEval (rainerscript.c:1149)
==8994==    by 0x4190DE: cnfexprEvalBool (rainerscript.c:1208)
==8994==    by 0x43A82B: processBatch (rule.c:181)
==8994==    by 0x4398AD: processBatchDoRules (ruleset.c:147)
==8994==    by 0x428D0E: llExecFunc (linkedlist.c:389)
==8994==    by 0x439C55: processBatch (ruleset.c:229)
==8994==    by 0x40CBC0: msgConsumer (syslogd.c:608)
==8994==    by 0x43936D: ConsumerReg (queue.c:1791)
==8994==    by 0x4344B0: wtiWorker (wti.c:313)
==8994==    by 0x433FF9: wtpWorker (wtp.c:387)
==8994==
...

We'll be trying out the master head branch shortly.

Thanks

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Rainer Gerhards
Sent: Friday, June 08, 2012 10:46 AM
To: rsyslog-users
Subject: Re: [rsyslog] rsyslog 6.3.8 - expression-based filters causing 
Segmentation fault

> -----Original Message-----
> From: [email protected] [mailto:rsyslog- 
> [email protected]] On Behalf Of Lars Peterson
> Sent: Friday, June 08, 2012 5:19 PM
> To: [email protected]
> Subject: [rsyslog] rsyslog 6.3.8 - expression-based filters causing 
> Segmentation fault
> 
> Hello,
> 
> My team is currently working on a new plugin off of the master- 
> elasticsearch branch. There very well could be something faulty in our 
> config but for some reason whenever we define expression-based filters 
> rsyslogd segfaults.
> 
> The rules do work for the brief period of time rsyslog runs. When we 
> block inbound syslog traffic (via iptables rules) it stays running.
> When we run rsyslog with the rules commented out it stays running as 
> well.
> 
> Here are a few rules we have defined in rsyslog.conf:
> 
> # Linux Tomcat logs
> if ( ( $programname == 'local4' ) and ( $hostname contains_i '-int' or 
> $hostname contains_i '-uat' ) ) then { action(type="omfile" file="/v
> ar/log/preprod/log4j") }
> & ~
> if ( ( $programname == 'local4' ) and not ( $hostname contains_i '-int'
> or $hostname contains_i '-uat' or $hostname contains_i 'logstore1'
> ) ) then { action(type="omfile" file="/var/log/prod/log4j") }
> 
> We're running CentOS 6.2 with 4 cpus & 4 GB of ram.

Could you run it under valgrind control? If it is mis-adressing, valgrind is 
usually extremely helpful.

Also, can you try git master branch head? Or is there anything specific in the 
elasticsearch branch that you need for your plugin?

Rainer
> 
> We have debug output too if that'd be useful.
> 
> Thanks!
> 
> -Lars
> _______________________________________________
> 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
_______________________________________________
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 
_______________________________________________
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
_______________________________________________
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

Reply via email to