summaryrefslogtreecommitdiffstats
path: root/action.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-09-19 18:57:24 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-09-19 18:57:24 +0200
commita85784a480304d213af33d3f3ade7d98635c85dd (patch)
tree5a0830d9b393ead5ca220d398e94457c1a0f24a4 /action.c
parent0a331d59cabba8294bb755597d664b8e2bd780bc (diff)
parentb40c83090e7146a0709657b3ad15f806c51f5f83 (diff)
downloadrsyslog-a85784a480304d213af33d3f3ade7d98635c85dd.tar.gz
rsyslog-a85784a480304d213af33d3f3ade7d98635c85dd.tar.xz
rsyslog-a85784a480304d213af33d3f3ade7d98635c85dd.zip
Merge branch 'v6-stable' into v6-devel
Diffstat (limited to 'action.c')
-rw-r--r--action.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/action.c b/action.c
index 8f8371f7..4b5c9f30 100644
--- a/action.c
+++ b/action.c
@@ -1344,12 +1344,18 @@ doSubmitToActionQ(action_t *pAction, msg_t *pMsg)
{
DEFiRet;
+ if(pAction->eState == ACT_STATE_DIED) {
+ DBGPRINTF("action %p died, do NOT execute\n", pAction);
+ FINALIZE;
+ }
+
STATSCOUNTER_INC(pAction->ctrProcessed, pAction->mutCtrProcessed);
if(pAction->pQueue->qType == QUEUETYPE_DIRECT)
iRet = qqueueEnqObjDirect(pAction->pQueue, (void*) MsgAddRef(pMsg));
else
iRet = qqueueEnqObj(pAction->pQueue, eFLOWCTL_NO_DELAY, (void*) MsgAddRef(pMsg));
+finalize_it:
RETiRet;
}
@@ -1554,9 +1560,18 @@ finalize_it:
*/
DEFFUNC_llExecFunc(doActivateActions)
{
+ rsRetVal localRet;
action_t *pThis = (action_t*) pData;
BEGINfunc
- qqueueStart(pThis->pQueue);
+ localRet = qqueueStart(pThis->pQueue);
+ if(localRet != RS_RET_OK) {
+ errmsg.LogError(0, localRet, "error starting up action queue");
+ if(localRet == RS_RET_FILE_PREFIX_MISSING) {
+ errmsg.LogError(0, localRet, "file prefix (work directory?) "
+ "is missing");
+ }
+ actionDisable(pThis);
+ }
DBGPRINTF("Action %p: queue %p started\n", pThis, pThis->pQueue);
ENDfunc
return RS_RET_OK; /* we ignore errors, we can not do anything either way */