diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-19 18:57:37 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-19 18:57:37 +0200 |
commit | 1b1b2a16514014b246760636623d273d74116754 (patch) | |
tree | f73dd5842c8d6f20898d3d58145bbc5b6c09a591 /action.c | |
parent | 80fb1eb77a0fd6eee3ec1628ea0a3a5ff51bef42 (diff) | |
parent | a85784a480304d213af33d3f3ade7d98635c85dd (diff) | |
download | rsyslog-1b1b2a16514014b246760636623d273d74116754.tar.gz rsyslog-1b1b2a16514014b246760636623d273d74116754.tar.xz rsyslog-1b1b2a16514014b246760636623d273d74116754.zip |
Merge branch 'v6-devel'
Diffstat (limited to 'action.c')
-rw-r--r-- | action.c | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -1379,12 +1379,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; } @@ -1589,9 +1595,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 */ |