From 77358e12ab9c8a52c81673e24239d7878e7848c9 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Thu, 31 Jan 2008 11:32:25 +0000 Subject: - fixed bug in sample rsyslog.conf - fixed wrong action suspend/resume handling - we have some issue with the mutx in dbgoprint, but that is acceptable for the time being, I just removed the deadlock codition (debug system only) --- action.c | 12 ++++++------ debug.c | 6 +++++- rsyslog.conf | 5 +++-- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/action.c b/action.c index d2eedbb7..7ce90fb2 100644 --- a/action.c +++ b/action.c @@ -223,8 +223,9 @@ actionConstructFinalize(action_t *pThis) # undef setQPROP # undef setQPROPstr - dbgoprint((obj_t*) pThis->pQueue, "save on shutdown %d, max disk space allowed %ld\n", + /*dbgoprint((obj_t*) pThis->pQueue, "save on shutdown %d, max disk space allowed %ld\n", bActionQSaveOnShutdown, iActionQueMaxDiskSpace); + */ CHKiRet(queueStart(pThis->pQueue)); dbgprintf("Action %p: queue %p created\n", pThis, pThis->pQueue); @@ -397,6 +398,10 @@ actionCallDoAction(action_t *pAction, msg_t *pMsg) if(bCallAction) { /* call configured action */ iRet = pAction->pMod->mod.om.doAction(ppMsgs, pMsg->msgFlags, pAction->pModData); + if(iRet == RS_RET_SUSPENDED) { + dbgprintf("Action requested to be suspended, done that.\n"); + actionSuspend(pAction); + } } } while(iRet == RS_RET_SUSPENDED && (pAction->iResumeRetryCount == -1 || iRetries < pAction->iResumeRetryCount)); /* do...while! */ @@ -407,11 +412,6 @@ RUNLOG_STR("out of retry loop"); pAction->bEnabled = 0; /* that's it... */ } - if(iRet == RS_RET_SUSPENDED) { - dbgprintf("Action requested to be suspended, done that.\n"); - actionSuspend(pAction); - } - pthread_cleanup_pop(1); /* unlock mutex */ finalize_it: diff --git a/debug.c b/debug.c index 82ed2442..d0751aa9 100644 --- a/debug.c +++ b/debug.c @@ -57,7 +57,7 @@ static dbgThrdInfo_t *dbgGetThrdInfo(void); /* static data (some time to be replaced) */ int Debug; /* debug flag - read-only after startup */ int debugging_on = 0; /* read-only, except on sig USR1 */ -static int bLogFuncFlow = 0; /* shall the function entry and exit be logged to the debug log? */ +static int bLogFuncFlow = 1; /* shall the function entry and exit be logged to the debug log? */ static int bPrintFuncDBOnExit = 0; /* shall the function entry and exit be logged to the debug log? */ static int bPrintMutexAction = 0; /* shall mutex calls be printed to the debug log? */ static int bPrintTime = 1; /* print a timestamp together with debug message */ @@ -705,8 +705,10 @@ dbgoprint(obj_t *pObj, char *fmt, ...) if(!(Debug && debugging_on)) return; +#if 0 pthread_mutex_lock(&mutdbgprintf); pthread_cleanup_push(dbgMutexCancelCleanupHdlr, &mutdbgprintf); +#endif /* The bWasNL handler does not really work. It works if no thread * switching occurs during non-NL messages. Else, things are messed @@ -763,7 +765,9 @@ dbgoprint(obj_t *pObj, char *fmt, ...) fflush(stddbg); if(altdbg != NULL) fflush(altdbg); +#if 0 pthread_cleanup_pop(1); +#endif } diff --git a/rsyslog.conf b/rsyslog.conf index 2740c794..2ff7d271 100644 --- a/rsyslog.conf +++ b/rsyslog.conf @@ -38,11 +38,12 @@ local7.* /var/log/boot.log # down, messages are spooled to disk and sent when it is up again. #$WorkDirectory /rsyslog/spool # where to place spool files #$ActionQueueFileName uniqName # unique name prefix for spool files -#$ActionQueueMaxDiskSpace 2g # 2gb space limit (use as much as possible) +#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) #$ActionQueueSaveOnShutdown on # save messages to disk on shutdown #$ActionQueueType LinkedList # run asynchronously #$ActionResumeRetryCount -1 # infinety retries if host is down -#*.* @@remote-host # remote host is: name/ip:port +# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional +#*.* @@remote-host # ######### Receiving Messages from Remote Hosts ########## -- cgit v1.2.3