diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2010-06-10 10:17:04 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2010-06-10 10:17:04 +0200 |
commit | 559cb84a79a9848ce1415569158928478991108c (patch) | |
tree | 65534ac2ef41595a1bdd04bbf9f692feea5408c5 | |
parent | 3e49a1075ab6750135e1a38cf0c213579fa30b4a (diff) | |
download | rsyslog-559cb84a79a9848ce1415569158928478991108c.tar.gz rsyslog-559cb84a79a9848ce1415569158928478991108c.tar.xz rsyslog-559cb84a79a9848ce1415569158928478991108c.zip |
fixing msg duplication & loss regression, causes slowdown
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.
-rw-r--r-- | action.c | 12 | ||||
-rw-r--r-- | runtime/parser.c | 2 | ||||
-rw-r--r-- | tools/omfile.c | 2 |
3 files changed, 8 insertions, 8 deletions
@@ -765,10 +765,10 @@ actionCallDoAction(action_t *pThis, msg_t *pMsg) pThis->bHadAutoCommit = 0; #if 1 -d_pthread_mutex_lock(&pThis->mutActExec); -pthread_cleanup_push(mutexCancelCleanup, &pThis->mutActExec); +//d_pthread_mutex_lock(&pThis->mutActExec); +//pthread_cleanup_push(mutexCancelCleanup, &pThis->mutActExec); iRet = pThis->pMod->mod.om.doAction(ppMsgs, pMsg->msgFlags, pThis->pModData); -pthread_cleanup_pop(1); /* unlock mutex */ +//pthread_cleanup_pop(1); /* unlock mutex */ //iRet = pThis->pMod->mod.om.doAction(pThis->ppMsgs, pMsg->msgFlags, pThis->pModData); #else iRet = RS_RET_OK; @@ -1051,12 +1051,12 @@ processBatchMain(action_t *pAction, batch_t *pBatch, int *pbShutdownImmediate) * if they notify us they are - functionality not yet implemented...). * rgerhards, 2008-01-30 */ -// d_pthread_mutex_lock(&pAction->mutActExec); -// pthread_cleanup_push(mutexCancelCleanup, &pAction->mutActExec); + d_pthread_mutex_lock(&pAction->mutActExec); + pthread_cleanup_push(mutexCancelCleanup, &pAction->mutActExec); iRet = processAction(pAction, pBatch, pbShutdownImmediate); -// pthread_cleanup_pop(1); /* unlock mutex */ + pthread_cleanup_pop(1); /* unlock mutex */ RETiRet; } diff --git a/runtime/parser.c b/runtime/parser.c index bd0bf8e9..40374ae1 100644 --- a/runtime/parser.c +++ b/runtime/parser.c @@ -489,7 +489,7 @@ ParseMsg(msg_t *pMsg) /* we take the risk to print a non-sanitized string, because this is the best we can get * (and that functionality is too important for debugging to drop it...). */ - DBGPRINTF("msg parser: flags %x, from '%s', msg '%.50s'\n", pMsg->msgFlags, + DBGPRINTF("msg parser: flags %x, from '%s', msg '%.60s'\n", pMsg->msgFlags, (pMsg->msgFlags & NEEDS_DNSRESOL) ? UCHAR_CONSTANT("~NOTRESOLVED~") : getRcvFrom(pMsg), pMsg->pszRawMsg); diff --git a/tools/omfile.c b/tools/omfile.c index 92089a59..188b651b 100644 --- a/tools/omfile.c +++ b/tools/omfile.c @@ -614,7 +614,7 @@ doWrite(instanceData *pData, uchar *pszBuf, int lenBuf) ASSERT(pData != NULL); ASSERT(pszBuf != NULL); -dbgprintf("doWrite, pData->pStrm %p, lenBuf %d\n", pData->pStrm, lenBuf); +dbgprintf("write to stream, pData->pStrm %p, lenBuf %d\n", pData->pStrm, lenBuf); if(pData->pStrm != NULL){ CHKiRet(strm.Write(pData->pStrm, pszBuf, lenBuf)); FINALIZE; |