On Sat, Nov 2, 2013 at 12:02 PM, Pavel Levshin <[email protected]> wrote:
>
> This is not true for current master. It is here, as I suspect:
>
ok, thx, will put it to the todo list. Note that I remember a fix for this
problem just a couple of weeks ago.
Reminder: right now, I use my free time for refactoring the engine, will
not do anything else except real emergencies -- otherwise I won't get
through with that work.
Rainer
>
> static rsRetVal
> scriptExec(struct cnfstmt *root, batch_t *pBatch, sbool *active)
> {
> DEFiRet;
> struct cnfstmt *stmt;
>
> for(stmt = root ; stmt != NULL ; stmt = stmt->next) {
> ...
> switch(stmt->nodetype) {
> ...
> case S_CALL:
> scriptExec(stmt->d.s_call.**stmt, pBatch, active);
> break;
>
> This simple recursion does not allow for queuing.
>
> Config and debug log below:
>
> Ruleset(name="sub"
> queue.type="FixedArray".
> queue.size="200000".
> queue.workerthreads="2"
> queue.timeoutenqueue="0"
> queue.dequeuebatchsize="1024"
> ) {
> Action(
> type="mmnormalize"
> userawmsg="on"
> rulebase="/usr/local/etc/**rsyslog.d.norm/rules.rb"
> )
>
> Action (
> type="omfile"
> DynaFile="rawFilename2"
> template="rawTemplate"
> )
> }
> Ruleset(name="logd".
> queue.type="FixedArray".
> queue.size="200000".
> queue.workerthreads="2"
> queue.timeoutenqueue="0"
> queue.dequeuebatchsize="1024"
> ){
>
> call sub
>
> set $!test = "999";
> ...
>
> }
>
>
> 9911.174885257:7f9578db8700: imudp: epoll_wait() returned with 1 fds
> 9911.174941973:7f9578db8700: imudp: recvmmsg returned 1
> 9911.174971472:7f9578db8700: recv(3,157),acl:1,msg:<150>**2013-11-01
> 12:08:23 ...
> 9911.174990486:7f9578db8700: imudp: recvmmsg returned -1
> 9911.175002142:7f9578db8700: logd: qqueueAdd: entry added, size now log 1,
> phys 1 entries
> 9911.175011008:7f9578db8700: logd:Reg: high activity - starting 1
> additional worker thread(s).
> 9911.175081055:7f9578db8700: logd:Reg: started with state 0, num workers
> now 1
> 9911.175090848:7f9578db8700: logd: MultiEnqObj advised worker start
> 9911.175104108:7f9577db6700: thread created, tid 28824, name 'rs:logd:Reg'
> 9911.175128571:7f9577db6700: DeleteProcessedBatch: we deleted 0 objects
> and enqueued 0 objects
> 9911.175155708:7f9577db6700: doDeleteBatch: delete batch from store, new
> sizes: log 1, phys 1
> 9911.175167624:7f9577db6700: msg parser: flags 70, from '~NOTRESOLVED~',
> msg '<150>2013-11-01 12:08:23 ...'
> 9911.175176465:7f9577db6700: parse using parser list 0x17bb160 (the
> default list).
> 9911.175186497:7f9577db6700: Parser 'rsyslog.rfc5424' returned -2160
> 9911.175198019:7f9577db6700: Message will now be parsed by the legacy
> syslog parser (one size fits all... ;)).
> 9911.175213361:7f9577db6700: Parser 'rsyslog.rfc3164' returned 0
> 9911.175220455:7f9577db6700: processBatch: batch of 1 elements must be
> processed
> 9911.175228151:7f9577db6700: scriptExec: batch of 1 elements, active
> (nil), active[0]:1
> 9911.175263901:7f9577db6700: CALL [sub]
> 9911.175280548:7f9577db6700: scriptExec: batch of 1 elements, active
> (nil), active[0]:1
> 9911.175287128:7f9577db6700: ACTION 0x17d3090
> [mmnormalize:action(type="**mmnormalize" ...)]
> 9911.175303283:7f9577db6700: RRRR: execAct [mmnormalize]: batch of 1
> elements, active (nil)
> 9911.175316259:7f9577db6700: Called action(NotAllMark), processing
> batch[0] via 'mmnormalize'
> 9911.175323900:7f9577db6700: Called action(Batch), logging to mmnormalize
> 9911.175332786:7f9577db6700: submitBatch: enter, nElem 1
> 9911.175339760:7f9577db6700: tryDoAction 0x17d3090, pnElem 1, nElem 1
> 9911.175347880:7f9577db6700: Action 0x17d3090 transitioned to state: itx
> 9911.175354858:7f9577db6700: entering actionCalldoAction(), state: itx
> 9911.175442747:7f9577db6700: Action 0x17d3090 transitioned to state: rdy
> 9911.175451948:7f9577db6700: action 0x17d3090 call returned 0
> 9911.175460819:7f9577db6700: scriptExec: batch of 1 elements, active
> (nil), active[0]:1
> 9911.175467484:7f9577db6700: ACTION 0x17d9730
> [builtin:omfile:action(type="**builtin:omfile" ...)]
> 9911.175483056:7f9577db6700: RRRR: execAct [builtin:omfile]: batch of 1
> elements, active (nil)
> 9911.175491175:7f9577db6700: Called action(NotAllMark), processing
> batch[0] via 'builtin:omfile'
> 9911.175498109:7f9577db6700: Called action(Batch), logging to
> builtin:omfile
> 9911.175575796:7f9577db6700: submitBatch: enter, nElem 1
> 9911.175585036:7f9577db6700: tryDoAction 0x17d9730, pnElem 1, nElem 1
> 9911.175592618:7f9577db6700: Action 0x17d9730 transitioned to state: itx
> 9911.175599472:7f9577db6700: entering actionCalldoAction(), state: itx
> 9911.175606466:7f9577db6700: file to log to: /srv/Temp/syslog/raw-**
> 201311021458.log2
> 9911.175613230:7f9577db6700: omfile: start of data: '<150>2013-11-01
> 12:08:23 ...'
> 9911.175777103:7f9577db6700: file stream raw-201311021458.log2 params:
> flush interval 0, async write 0
> 9911.175845217:7f9577db6700: Added new entry 0 for file cache, file
> '/srv/Temp/syslog/raw-**201311021458.log2'.
> 9911.175855647:7f9577db6700: write to stream, pData->pStrm 0x7f95680017c0,
> lenBuf 389
> 9911.175864668:7f9577db6700: action 0x17d9730 call returned -2121
> 9911.175878491:7f9577db6700: strm 0x7f95680017c0: file
> -1(raw-201311021458.log2) flush, buflen 389
> 9911.175887358:7f9577db6700: strmPhysWrite, stream 0x7f95680017c0, len 389
> 9911.175908678:7f9577db6700: file '/srv/Temp/syslog/raw-**201311021458.log2'
> opened as #6 with mode 416
> 9911.175933390:7f9577db6700: strm 0x7f95680017c0: opened file
> '/srv/Temp/syslog/raw-**201311021458.log2' for WRITE as 6
> 9911.175967795:7f9577db6700: strm 0x7f95680017c0: file 6 write wrote 389
> bytes
> 9911.175977140:7f9577db6700: Action 0x17d9730 transitioned to state: rdy
> 9911.175987406:7f9577db6700: scriptExec: batch of 1 elements, active
> (nil), active[0]:1
> 9911.175994479:7f9577db6700: SET !test =
> 9911.176007595:7f9577db6700: string '999'
> 9911.176028332:7f9577db6700: END SET
>
>
> 02.11.2013 14:48, Rainer Gerhards:
>
>> On Sat, Nov 2, 2013 at 11:43 AM, Pavel Levshin <[email protected]>
>> wrote:
>>
>> Hello.
>>>
>>> Doc on call statement says:
>>>
>>> The "call" statement can be used to call into any type of rulesets. If
>>> a
>>>
>>>> rule set has a queue assigned, the message will be posted to that queue
>>>> and
>>>> processed asynchronously. Otherwise, the ruleset will be executed
>>>> synchronously and control returns to right after the call when the rule
>>>> set
>>>> has finished execution.
>>>>
>>>> Unfortunately, it is not true.
>>>
>>
>> If it is not true for some versions, that's a bug.
>>
>> Note that the ruleset parameters apply. If the ruleset has no queue (more
>> precisely: queue.type="direct" - the default), the ruleset itself is
>> synchronous.
>>
>> Rainer
>>
>> Called rulesets are executed synchronously, ever. Is it a degradation
>>> over
>>> omruleset?
>>>
>>>
>>> --
>>> Pavel Levshin
>>>
>>>
>>> 31.10.2013 21:22, Rainer Gerhards:
>>>
>>> Hi folks,
>>>>
>>>> a word of warning: this module has been replaced by the "call" statement
>>>> and emits a warning message for quite a while. In some upcoming versions
>>>> (not 7.6) it will no longer by available inside the RPMs, but can still
>>>> be
>>>> built from source.
>>>>
>>>> Note that "call" is much more capable (and notably faster) than
>>>> omruleset,
>>>> so it's probably a good idea to get rid of it if you still use it.
>>>>
>>>> Rainer
>>>> ______________________________****_________________
>>>> rsyslog mailing list
>>>> http://lists.adiscon.net/****mailman/listinfo/rsyslog<http://lists.adiscon.net/**mailman/listinfo/rsyslog>
>>>> <http:**//lists.adiscon.net/mailman/**listinfo/rsyslog<http://lists.adiscon.net/mailman/listinfo/rsyslog>
>>>> >
>>>> http://www.rsyslog.com/****professional-services/<http://www.rsyslog.com/**professional-services/>
>>>> <http://**www.rsyslog.com/professional-**services/<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://lists.adiscon.net/**mailman/listinfo/rsyslog>
>>> <http:**//lists.adiscon.net/mailman/**listinfo/rsyslog<http://lists.adiscon.net/mailman/listinfo/rsyslog>
>>> >
>>> http://www.rsyslog.com/****professional-services/<http://www.rsyslog.com/**professional-services/>
>>> <http://**www.rsyslog.com/professional-**services/<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://lists.adiscon.net/mailman/listinfo/rsyslog>
>> http://www.rsyslog.com/**professional-services/<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://lists.adiscon.net/mailman/listinfo/rsyslog>
> http://www.rsyslog.com/**professional-services/<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.