summaryrefslogtreecommitdiffstats
path: root/action.c
Commit message (Collapse)AuthorAgeFilesLines
* break potential infinite loop in actionDoRetrySteffen Sledz2010-08-051-0/+1
| | | | | | | | If a module always returns RS_RET_OK (like ompipe does) the actionDoRetry loop may not have leaved faked ACT_STATE_SUSP state in case iResumeOKinRow had ever reached a count of 1000. Signed-off-by: Rainer Gerhards <rgerhards@adiscon.com>
* added missing support for systems without atomic instructionsRainer Gerhards2010-06-241-1/+3
|
* bugfix: "$ActionExecOnlyWhenPreviousIsSuspended on" was brokenRainer Gerhards2010-06-241-5/+12
| | | | | | | | | Note that, as it looks, the directive was already broken in previous v5 versions. So while I solved what looked like a (intentional) regression from the performance tuning, I actually solved a previous regression as well ;) I have also added new test cases to the testbench in order to capture such problems in the future. This version does now look pretty good in shape.
* fixed a couple of regressionsRainer Gerhards2010-06-231-74/+101
| | | | | | | | by implementing some code that was missing so far ;) as well as finding some real bugs. I also did some general cleanup, removing debug strings and such. This code should be fairly OK to use, except when "exec only when previous action was suspended" is used -- this is NOT yet re-implemented in the tuned engine.
* fixed problem in action message induced failure handlingRainer Gerhards2010-06-211-2/+2
|
* minor cleanupRainer Gerhards2010-06-211-3/+0
|
* fixed a problem with ACT_MESSAGE_PASSING type of doAction interfaceRainer Gerhards2010-06-151-25/+12
|
* milestone(BUGGY): batch now pushed down to actionRainer Gerhards2010-06-151-46/+140
| | | | | | | at least in important cases (not for non-direct action queues and some other minor things). This version is definitely buggy, but may be tried with success on a non-production system. I will continue to work on the correctness, but needed to commit now to get a baseline.
* some cleanupRainer Gerhards2010-06-101-57/+17
| | | | | as well as some work in preparation of storing doAction params inside the batch
* fixed regression for omruleset use caseRainer Gerhards2010-06-101-5/+15
| | | | | I did not revert to using the action ppMsg data element, as one of the next steps is to remove it by an overall much better solution.
* Merge branch 'concurrent-output' into tmpRainer Gerhards2010-06-101-52/+65
|\
| * main msg q consumer now preprocesses messages before doing rule processingRainer Gerhards2010-06-091-14/+2
| | | | | | | | | | | | | | things like ACL check and message parsing. This leads to a greater level of concurrent processing. Beware, though, that this commit duplicates some messages. May be a regression from this or an earlier commit. I will soon sort out.
| * added support for high-performance action queue submission if not all mark ↵Rainer Gerhards2010-06-081-38/+63
| | | | | | | | | | | | | | | | | | | | messages should be logged this was previously not properly handeld. This is also the first occurence of a (real) CAS loop inside rsyslog. Note that the performance is now very well in the default configuration, and mark message directives are still correctly being handled. So this code looks close to final, but needs to have some bug cleanup as the testsuite shows.
* | fixing msg duplication & loss regression, causes slowdownRainer Gerhards2010-06-101-6/+6
|/ | | | | | | | messages could get lost or be duplicated due to non-proper sync of transactions. This is a notable slowdown again, but we know how to get back concurrency, it just takes "some" more programming. It is important now to come back to correct code, so that we can base further improvements on that.
* performance enhancement: implemented stage 1 firehose mode for actionsRainer Gerhards2010-06-081-12/+89
| | | | | | | | | | | ... plus some other tests, namely string generation in parallel to action processing. The code is not yet solid and not fully compatible to older versions. But it is good enough for an early commit and some early testing/gaining of experience. The optimization was done based on the fine-grained partitioning paradigm worked on the past couple of weeks -- seems to work out really great :)
* bugfix: regression caused more locking action in msg.c than necessaryRainer Gerhards2010-06-081-1/+0
| | | | also: bugfix: mutexes used to similate atomic instructions were not destructed
* added new cancel-reduced action thread termination methodRainer Gerhards2010-05-171-3/+9
| | | | | | | | We now manage to cancel threads that block inside a retry loop to terminate without the need to cancel the thread. Avoiding cancellation helps keep the system complexity minimal and thus provides for better stability. This also solves some issues with improper shutdown when inside an action retry loop.
* Merge branch 'v5-stable'Rainer Gerhards2010-04-261-4/+23
|\
| * cosmetic: removed left-over debug messageRainer Gerhards2010-04-261-1/+0
| |
| * bugfix(kind of): output plugin retry behaviour could cause engine to loopRainer Gerhards2010-04-261-4/+24
| | | | | | | | | | | | | | | | | | The rsyslog engine did not guard itself against output modules that do not properly convey back the tryResume() behaviour. This then leads to what looks like an endless loop. I consider this to be a bug of the engine not only because it should be hardened against plugin misbehaviour, but also because plugins may not be totally able to avoid this situation (depending on the type of and processing done by the plugin).
* | Merge branch 'v4-devel' into masterRainer Gerhards2010-04-231-11/+11
|\ \ | | | | | | | | | | | | | | | Conflicts: runtime/rsyslog.h runtime/wtp.c
| * | solved alignment errors on Solaris SparcRainer Gerhards2010-04-221-10/+10
| | |
* | | Merge branch 'beta' into masterRainer Gerhards2010-04-091-1/+1
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog configure.ac plugins/imudp/imudp.c runtime/stream.h tests/Makefile.am tests/diag.sh tools/omfile.c
| * | Merge branch 'v4-stable' into v5-stableRainer Gerhards2010-03-291-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog configure.ac doc/manual.html runtime/debug.c runtime/stream.c tests/Makefile.am tests/diskqueue.sh tests/nettester.c tools/omfile.c
| | * bugfix: potential re-use of free()ed file stream object in omfileRainer Gerhards2010-03-231-1/+1
| | | | | | | | | | | | | | | | | | | | | when dynaCache is enabled, the cache is full, a new entry needs to be allocated, thus the LRU discarded, then a new entry is opend and that fails. In that case, it looks like the discarded stream may be reused improperly (based on code analysis, test case and confirmation pending)
| * | backporting bugfixes from 5.2.2Rainer Gerhards2010-01-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - bugfix: queues in direct mode could case a segfault, especially if an action failed for action queues. The issue was an invalid increment of a stack-based pointer which lead to destruction of the stack frame and thus a segfault on function return. Thanks to Michael Biebl for alerting us on this problem. [backport from 5.5.2] - bugfix: wrong memory assignment for a config variable (probably without causing any harm) [backport from 5.2.2]
* | | bugfix: queues in direct mode could case a segfault,...Rainer Gerhards2010-01-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | especially if an action failed for action queues. The issue was an invalid increment of a stack-based pointer which lead to destruction of the stack frame and thus a segfault on function return. Thanks to Michael Biebl for alerting us on this problem.
* | | Merge branch 'beta'Rainer Gerhards2010-01-121-3/+13
|\| |
| * | bugfix: ompgsql did not properly check the server connection in tryResume()Rainer Gerhards2009-12-161-8/+0
| | | | | | | | | | | | | | | what could lead to rsyslog running in a thight loop. Also did some code cleanup of previous patch.
| * | bugfix: error during beginTransaction() was not properly handledRainer Gerhards2009-12-161-2/+20
| | | | | | | | | | | | | | | Suspension during beginTransaction() did not properly cause the action to be suspended, thus we entered an endless loop.
* | | Merge branch 'beta' into masterRainer Gerhards2009-11-261-6/+11
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog action.c configure.ac doc/manual.html doc/rsyslog_conf_modules.html tests/sndrcv_drvr.sh
| * | bugfix: commit transaction was not properly conveyed to message layer,Rainer Gerhards2009-11-261-4/+11
| | | | | | | | | | | | potentially resulting in non-message destruction and thus hangs
* | | enhanced module debug outputRainer Gerhards2009-11-251-0/+3
|/ / | | | | | | | | ... and addes some (later-to-be-removed) debug code to support finding a problem in transaction handling.
* | some light performance enhancementRainer Gerhards2009-11-121-6/+6
| | | | | | | | | | ...by replacing time() call with much faster (at least under linux) gettimeofday() calls.
* | Merge branch 'v4-devel'Rainer Gerhards2009-11-121-1/+2
|\| | | | | | | | | Conflicts: tests/Makefile.am
| * Merge branch 'v4-stable' into v4-betaRainer Gerhards2009-11-121-1/+2
| |\ | | | | | | | | | | | | Conflicts: tests/Makefile.am
| | * bugfix: $ActionExecOnlyOnceEveryInterval did not work.Rainer Gerhards2009-11-121-1/+2
| | | | | | | | | | | | | | | | | | This was a regression from the time() optimizations done in v4. Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=143 Thanks to Klaus Tachtler for reporting this bug.
| * | minor: optimized dbgprintf() useRainer Gerhards2009-09-101-17/+17
| | |
* | | some module cleanupRainer Gerhards2009-11-121-0/+14
| | |
* | | moved rfc3164/5424 code to new parser modulesRainer Gerhards2009-11-041-1/+0
| | | | | | | | | | | | | | | | | | another milestone commit: the program works, the new interface is used, some more cleanup is needed and the per-ruleset config options are still missing. But we are getting closer...
* | | added omruleset output module, which provides great flexibility in action ↵Rainer Gerhards2009-11-021-4/+15
| | | | | | | | | | | | | | | | | | processing. THIS IS A VERY IMPORTANT ADDITION, see its doc for why.
* | | some more cleanup - action config line handlers are now defined in action.cRainer Gerhards2009-10-271-41/+28
| | | | | | | | | | | | As an artifact of early development, they were registered in syslogd.c
* | | action processing optimized for queue shutdownRainer Gerhards2009-10-271-23/+15
| | |
* | | Begun to work on partial batch deletes...Rainer Gerhards2009-10-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | ... but this brings a lot of problems with it. The issue is that we still have a sequential store and we do not know how we could delete the one entry right in the middle of processing. I keep this branch if we intend to move on with it - but for now I look into a different solution...
* | | bugfix: message processing states were not set correctly in all casesRainer Gerhards2009-10-191-2/+4
| | | | | | | | | | | | | | | | | | however, this had no negative effect, as the message processing state was not evaluated when a batch was deleted, and that was the only case where the state could be wrong.
* | | new queue engine - initial commit (probably not 100% working!)Rainer Gerhards2009-10-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | simplified and thus speeded up the queue engine, also fixed some potential race conditions (in very unusual shutdown conditions) along the way. The threading model has seriously changes, so there may be some regressions. NOTE: the code passed basic tests, but there is still more work and testing to be done. This commit should be treated with care.
* | | added some debug settings plus improved shutdown sequenceRainer Gerhards2009-10-131-6/+6
| | | | | | | | | | | | ... non-working version!
* | | minor: optimized dbgprintf() calling sequenceRainer Gerhards2009-09-101-17/+17
| | |
* | | reduced number of debug messages a bit againRainer Gerhards2009-08-261-9/+0
| | |
* | | added new config option $ActionWriteAllMarkMessagesRainer Gerhards2009-08-201-2/+7
| | | | | | | | | | | | | | | | | | this option permites to process mark messages under all circumstances, even if an action was recently called. This can be useful to use mark messages as a kind of heartbeat.