summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-04-07 15:14:45 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-04-07 15:14:45 +0200
commit4c44b1f2addb9ac6a3f0da2fde1261e8e49fe1d8 (patch)
tree1a36757788ca7394ae7cf257107e0bf1dcf6943b
parent5cf53628ac8ec8f07ee1c4d7f4bd0faeac43ab36 (diff)
parenteef1701be28f8f8b00134e6c20a8a493d0e69f80 (diff)
downloadrsyslog-4c44b1f2addb9ac6a3f0da2fde1261e8e49fe1d8.tar.gz
rsyslog-4c44b1f2addb9ac6a3f0da2fde1261e8e49fe1d8.tar.xz
rsyslog-4c44b1f2addb9ac6a3f0da2fde1261e8e49fe1d8.zip
Merge branch 'v5-stable' into v6-stable
Conflicts: ChangeLog configure.ac doc/manual.html
-rw-r--r--ChangeLog7
-rw-r--r--doc/v5compatibility.html5
-rw-r--r--runtime/queue.c12
3 files changed, 19 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index ec31c170..d9d91e27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -262,7 +262,12 @@ Version 5.9.0 [V5-DEVEL] (rgerhards), 2011-03-??
affected directive was: $ActionExecOnlyWhenPreviousIsSuspended on
closes: http://bugzilla.adiscon.com/show_bug.cgi?id=236
---------------------------------------------------------------------------
-Version 5.8.10 [V5-stable] 2012-??-??
+Version 5.8.10 [V5-stable] 2012-04-05
+- bugfix: segfault on startup if $actionqueuefilename was missing for disk
+ queue config
+ Thanks to Tomas Heinrich for the patch.
+- bugfix: segfault if disk-queue was started up with old queue file
+ Thanks to Tomas Heinrich for the patch.
- bugfix: memory leak in array passing output module mode
---------------------------------------------------------------------------
Version 5.8.9 [V5-stable] 2012-03-15
diff --git a/doc/v5compatibility.html b/doc/v5compatibility.html
index 6d60062f..cc875b7b 100644
--- a/doc/v5compatibility.html
+++ b/doc/v5compatibility.html
@@ -16,6 +16,11 @@ available. This processing was redundant and had a lot a drawbacks.
For details, please see the
<a href="v4compatibility.html">rsyslog v4 compatibility notes</a> which elaborate
on the reasons and the (few) things you may need to change.
+<h2>Queue on-disk format</h2>
+<p>The queue information file format has been changed. When upgrading from v4 to
+v5, make sure that the queue is emptied and no on-disk structure present. We did
+not go great length in understanding the old format, as there was too little demand
+for that (and it being quite some effort if done right).
<h2>Queue Worker Thread Shutdown</h2>
<p>Previous rsyslog versions had the capability to &quot;run&quot; on zero queue worker
if no work was required. This was done to save a very limited number of resources. However,
diff --git a/runtime/queue.c b/runtime/queue.c
index 621a4eed..9f318523 100644
--- a/runtime/queue.c
+++ b/runtime/queue.c
@@ -2018,13 +2018,16 @@ static rsRetVal qqueuePersist(qqueue_t *pThis, int bIsCheckpoint)
CHKiRet(obj.EndSerialize(psQIF));
/* now persist the stream info */
- CHKiRet(strm.Serialize(pThis->tVars.disk.pWrite, psQIF));
- CHKiRet(strm.Serialize(pThis->tVars.disk.pReadDel, psQIF));
+ if(pThis->tVars.disk.pWrite != NULL)
+ CHKiRet(strm.Serialize(pThis->tVars.disk.pWrite, psQIF));
+ if(pThis->tVars.disk.pReadDel != NULL)
+ CHKiRet(strm.Serialize(pThis->tVars.disk.pReadDel, psQIF));
/* tell the input file object that it must not delete the file on close if the queue
* is non-empty - but only if we are not during a simple checkpoint
*/
- if(bIsCheckpoint != QUEUE_CHECKPOINT) {
+ if(bIsCheckpoint != QUEUE_CHECKPOINT
+ && pThis->tVars.disk.pReadDel != NULL) {
CHKiRet(strm.SetbDeleteOnClose(pThis->tVars.disk.pReadDel, 0));
}
@@ -2116,7 +2119,8 @@ CODESTARTobjDestruct(qqueue)
* direct queue - because in both cases we have none... ;)
* with a child! -- rgerhards, 2008-01-28
*/
- if(pThis->qType != QUEUETYPE_DIRECT && !pThis->bEnqOnly && pThis->pqParent == NULL)
+ if(pThis->qType != QUEUETYPE_DIRECT && !pThis->bEnqOnly && pThis->pqParent == NULL
+ && pThis->pWtpReg != NULL)
ShutdownWorkers(pThis);
if(pThis->bIsDA && getPhysicalQueueSize(pThis) > 0 && pThis->bSaveOnShutdown) {