!29 backport patches from upstream
From: @wcc_140409 Reviewed-by: @pecs Signed-off-by: @pecs
This commit is contained in:
commit
b7b8562399
@ -0,0 +1,22 @@
|
|||||||
|
From b4a312b6361b7035f161383e3a51c7821958511a Mon Sep 17 00:00:00 2001
|
||||||
|
From: alakatos <alakatos@redhat.com>
|
||||||
|
Date: Thu, 22 Jul 2021 11:19:16 +0200
|
||||||
|
Subject: [PATCH] Close file descriptor when freshStartTail is turned on
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/imfile/imfile.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/plugins/imfile/imfile.c b/plugins/imfile/imfile.c
|
||||||
|
index db161cc491..ddbd286bb4 100644
|
||||||
|
--- a/plugins/imfile/imfile.c
|
||||||
|
+++ b/plugins/imfile/imfile.c
|
||||||
|
@@ -1544,6 +1544,7 @@ openFileWithoutStateFile(act_obj_t *const act)
|
||||||
|
const int fd = open(act->name, O_RDONLY | O_CLOEXEC);
|
||||||
|
if(fd >= 0) {
|
||||||
|
act->pStrm->iCurrOffs = lseek64(fd, 0, SEEK_END);
|
||||||
|
+ close(fd);
|
||||||
|
if(act->pStrm->iCurrOffs < 0) {
|
||||||
|
act->pStrm->iCurrOffs = 0;
|
||||||
|
LogError(errno, RS_RET_ERR, "imfile: could not query current "
|
||||||
78
backport-OMMONGODB-Fixes.patch
Normal file
78
backport-OMMONGODB-Fixes.patch
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
From cf0a6386d33e1311a6f37a887872949d95f1cc16 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kevin Guillemot <kevin.guillemot@advens.fr>
|
||||||
|
Date: Wed, 30 Jun 2021 17:39:13 +0200
|
||||||
|
Subject: [PATCH] OMMONGODB :: Fixes
|
||||||
|
- Fix Segmentation fault when server is down
|
||||||
|
- Add server connexion check while resuming
|
||||||
|
trust merge open source commit:cf0a6386d33e1311a6f37a887872949d95f1cc16
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/ommongodb/ommongodb.c | 23 ++++++++++++++++++++---
|
||||||
|
1 file changed, 20 insertions(+), 3 deletions(-)
|
||||||
|
diff --git a/plugins/ommongodb/ommongodb.c b/plugins/ommongodb/ommongodb.c
|
||||||
|
index fc3153afd..a8b6ac96f 100644
|
||||||
|
--- a/plugins/ommongodb/ommongodb.c
|
||||||
|
+++ b/plugins/ommongodb/ommongodb.c
|
||||||
|
@@ -136,10 +136,12 @@ static void closeMongoDB(instanceData *pData)
|
||||||
|
if(pData->client != NULL) {
|
||||||
|
if (pData->collection != NULL) {
|
||||||
|
mongoc_collection_destroy (pData->collection);
|
||||||
|
+ pData->collection = NULL;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
mongoc_client_destroy (pData->client);
|
||||||
|
+ pData->client = NULL;
|
||||||
|
mongoc_cleanup ();
|
||||||
|
+ DBGPRINTF("ommongodb: Mongodb connexion closed.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -189,6 +191,7 @@ reportMongoError(instanceData *pData)
|
||||||
|
/* The following function is responsible for initializing a
|
||||||
|
* MongoDB connection.
|
||||||
|
* Initially added 2004-10-28 mmeckelein
|
||||||
|
+ * Improved to check if server is available (ping) @kguillemot 2021-06-30
|
||||||
|
*/
|
||||||
|
static rsRetVal initMongoDB(instanceData *pData, int bSilent)
|
||||||
|
{
|
||||||
|
@@ -208,7 +211,7 @@ static rsRetVal initMongoDB(instanceData *pData, int bSilent)
|
||||||
|
dbgprintf("ommongodb: mongo-c-driver was not built with SSL options, ssl directives will not be used.");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
- if(pData->client == NULL) {
|
||||||
|
+ if(!pData->client) {
|
||||||
|
if(!bSilent) {
|
||||||
|
reportMongoError(pData);
|
||||||
|
dbgprintf("ommongodb: can not initialize MongoDB handle");
|
||||||
|
@@ -217,6 +220,20 @@ static rsRetVal initMongoDB(instanceData *pData, int bSilent)
|
||||||
|
}
|
||||||
|
pData->collection = mongoc_client_get_collection (pData->client, pData->db, pData->collection_name);
|
||||||
|
|
||||||
|
+ // Try to contact server
|
||||||
|
+ bson_t *command, reply;
|
||||||
|
+ bson_error_t error;
|
||||||
|
+ command = BCON_NEW ("ping", BCON_INT32 (1));
|
||||||
|
+ unsigned char retval = mongoc_client_command_simple(pData->client, pData->db, command, NULL, &reply, &error);
|
||||||
|
+ bson_destroy(&reply);
|
||||||
|
+ bson_destroy(command);
|
||||||
|
+ if( !retval ) {
|
||||||
|
+ DBGPRINTF("ommongodb: ping server error (%u): %s \n", error.code, error.message);
|
||||||
|
+ closeMongoDB(pData);
|
||||||
|
+ reportMongoError(pData);
|
||||||
|
+ ABORT_FINALIZE(RS_RET_SUSPENDED);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
finalize_it:
|
||||||
|
RETiRet;
|
||||||
|
}
|
||||||
|
@@ -551,7 +568,7 @@ CODESTARTdoAction
|
||||||
|
} else if (is_allowed_error_code(pData, pData->error.code)) {
|
||||||
|
dbgprintf("ommongodb: insert error: allowing error code\n");
|
||||||
|
} else {
|
||||||
|
- dbgprintf("ommongodb: insert error\n");
|
||||||
|
+ dbgprintf("ommongodb: insert error %u : %s \n", pData->error.code, pData->error.message);
|
||||||
|
reportMongoError(pData);
|
||||||
|
/* close on insert error to permit resume */
|
||||||
|
closeMongoDB(pData);
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
From d93c5e9d4830197a36830ba285bc5179312cbfc3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Mon, 9 Aug 2021 12:38:06 +0200
|
||||||
|
Subject: [PATCH] imfile bugfix: hash char invalidly added in readmode != 0
|
||||||
|
|
||||||
|
If imfile is ingesting log files with readMode set to 2 or 1, the resulting
|
||||||
|
messages all have a '#' character at the end. This patch corrects the behaviour.
|
||||||
|
|
||||||
|
Note: if some external script "supported" the bug of extra hash character at
|
||||||
|
the end of line, it may be necessary to update them.
|
||||||
|
|
||||||
|
closes https://github.com/rsyslog/rsyslog/issues/4491
|
||||||
|
|
||||||
|
---
|
||||||
|
runtime/stream.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/runtime/stream.c b/runtime/stream.c
|
||||||
|
index abe4ffb4bd..23cde86a07 100644
|
||||||
|
--- a/runtime/stream.c
|
||||||
|
+++ b/runtime/stream.c
|
||||||
|
@@ -888,7 +888,7 @@ strmReadLine(strm_t *const pThis, cstr_t **ppCStr, uint8_t mode, sbool bEscapeLF
|
||||||
|
{
|
||||||
|
uchar c;
|
||||||
|
uchar finished;
|
||||||
|
- const int escapeLFString_len = (escapeLFString == NULL) ? 3 : strlen((char*) escapeLFString);
|
||||||
|
+ const int escapeLFString_len = (escapeLFString == NULL) ? 4 : strlen((char*) escapeLFString);
|
||||||
|
DEFiRet;
|
||||||
|
|
||||||
|
assert(pThis != NULL);
|
||||||
39
backport-imjournal-flush-buffer-before-fsync.patch
Normal file
39
backport-imjournal-flush-buffer-before-fsync.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From 6a1faa065a60c080915f1abdcfa82bc39b88d895 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Rausch <gerd.rausch@oracle.com>
|
||||||
|
Date: Thu, 15 Apr 2021 11:16:29 -0700
|
||||||
|
Subject: [PATCH] imjournal: flush buffer before fsync
|
||||||
|
Flush the FILE* buffer before rename & fsync in order
|
||||||
|
to not end up syncing an empty file.
|
||||||
|
Also, close WorkDir on fsync in order to prevent
|
||||||
|
file descriptor leakage.
|
||||||
|
Signed-off-by: Gerd Rausch <gerd.rausch@oracle.com>
|
||||||
|
Signed-off-by: Venu Busireddy <venu.busireddy@oracle.com>
|
||||||
|
trust merge open source commit:6a1faa065a60c080915f1abdcfa82bc39b88d895
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/imjournal/imjournal.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
diff --git a/plugins/imjournal/imjournal.c b/plugins/imjournal/imjournal.c
|
||||||
|
index 35c3f8f9b..62a5ab206 100644
|
||||||
|
--- a/plugins/imjournal/imjournal.c
|
||||||
|
+++ b/plugins/imjournal/imjournal.c
|
||||||
|
@@ -562,6 +562,8 @@ persistJournalState(void)
|
||||||
|
ABORT_FINALIZE(RS_RET_IO_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ fflush(sf);
|
||||||
|
+
|
||||||
|
/* change the name of the file to the configured one */
|
||||||
|
if (rename(tmp_sf, cs.stateFile) < 0) {
|
||||||
|
LogError(errno, iRet, "imjournal: rename() failed for new path: '%s'", cs.stateFile);
|
||||||
|
@@ -583,6 +585,8 @@ persistJournalState(void)
|
||||||
|
LogError(errno, RS_RET_IO_ERROR, "imjournal: fsync on '%s' failed", glbl.GetWorkDir());
|
||||||
|
ABORT_FINALIZE(RS_RET_IO_ERROR);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ closedir(wd);
|
||||||
|
}
|
||||||
|
|
||||||
|
DBGPRINTF("Persisted journal to '%s'\n", cs.stateFile);
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
From 9121c4ea5aeaac9b1ee7bd8c308c8fde95bc39b4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Wed, 4 Aug 2021 08:03:46 +0200
|
||||||
|
Subject: [PATCH] imptcp bugfix: keep alive interval was incorrectly set
|
||||||
|
|
||||||
|
The interval was accidentally set to keep alive interval. This has been
|
||||||
|
corrected.
|
||||||
|
|
||||||
|
closes https://github.com/rsyslog/rsyslog/issues/4609
|
||||||
|
4
|
||||||
|
---
|
||||||
|
plugins/imptcp/imptcp.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/imptcp/imptcp.c b/plugins/imptcp/imptcp.c
|
||||||
|
index e89971dbe8..cdd29d4fd5 100644
|
||||||
|
--- a/plugins/imptcp/imptcp.c
|
||||||
|
+++ b/plugins/imptcp/imptcp.c
|
||||||
|
@@ -1721,7 +1721,7 @@ static rsRetVal addInstance(void __attribute__((unused)) *pVal, uchar *const pNe
|
||||||
|
inst->pBindRuleset = NULL;
|
||||||
|
inst->bSuppOctetFram = cs.bSuppOctetFram;
|
||||||
|
inst->bKeepAlive = cs.bKeepAlive;
|
||||||
|
- inst->iKeepAliveIntvl = cs.iKeepAliveTime;
|
||||||
|
+ inst->iKeepAliveIntvl = cs.iKeepAliveIntvl;
|
||||||
|
inst->iKeepAliveProbes = cs.iKeepAliveProbes;
|
||||||
|
inst->iKeepAliveTime = cs.iKeepAliveTime;
|
||||||
|
inst->bEmitMsgOnClose = cs.bEmitMsgOnClose;
|
||||||
|
@@ -1750,7 +1750,7 @@ addListner(modConfData_t __attribute__((unused)) *modConf, instanceConf_t *inst)
|
||||||
|
pSrv->bSuppOctetFram = inst->bSuppOctetFram;
|
||||||
|
pSrv->bSPFramingFix = inst->bSPFramingFix;
|
||||||
|
pSrv->bKeepAlive = inst->bKeepAlive;
|
||||||
|
- pSrv->iKeepAliveIntvl = inst->iKeepAliveTime;
|
||||||
|
+ pSrv->iKeepAliveIntvl = inst->iKeepAliveIntvl;
|
||||||
|
pSrv->iKeepAliveProbes = inst->iKeepAliveProbes;
|
||||||
|
pSrv->iKeepAliveTime = inst->iKeepAliveTime;
|
||||||
|
pSrv->bEmitMsgOnClose = inst->bEmitMsgOnClose;
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
From 389484010fd95d611873e80bdbca898d9671170a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Fri, 29 Jan 2021 09:25:09 +0100
|
||||||
|
Subject: [PATCH] lookup table bugfix: data race on lookup table reload
|
||||||
|
A data race could happen when a lookup table was reloaded. We found
|
||||||
|
this while moving to newer version of TSAN, but have no matching
|
||||||
|
report from practice. However, there is a potential for this to cause
|
||||||
|
a segfault under "bad circumstances".
|
||||||
|
trust merge open source commit:389484010fd95d611873e80bdbca898d9671170a
|
||||||
|
|
||||||
|
---
|
||||||
|
grammar/rainerscript.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c
|
||||||
|
index 2e358353e..c86985962 100644
|
||||||
|
--- a/grammar/rainerscript.c
|
||||||
|
+++ b/grammar/rainerscript.c
|
||||||
|
@@ -2377,6 +2377,8 @@ doFunct_Lookup(struct cnffunc *__restrict__ const func,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cnfexprEval(func->expr[1], &srcVal, usrptr, pWti);
|
||||||
|
+ pthread_rwlock_rdlock(&((lookup_ref_t*)func->funcdata)->rwlock);
|
||||||
|
+ pthread_rwlock_unlock(&((lookup_ref_t*)func->funcdata)->rwlock);
|
||||||
|
lookup_table = ((lookup_ref_t*)func->funcdata)->self;
|
||||||
|
if (lookup_table != NULL) {
|
||||||
|
lookup_key_type = lookup_table->key_type;
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
From 4529fa02b674f689d1cbc6925663824ea6882a15 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Mon, 15 Feb 2021 09:05:05 +0100
|
||||||
|
Subject: [PATCH] omfwd bugfix: segfault or error if port not given
|
||||||
|
If omfwd is configured via RainerScript config format and the "port"
|
||||||
|
parameter is not given, a segfault will most likely happen on
|
||||||
|
connection establishment for TCP connections. For UDP, this is
|
||||||
|
usually not the case.
|
||||||
|
Alternatively, in any case, errors may happen.
|
||||||
|
Note that the segfault will usually happen right on restart so this
|
||||||
|
was easy to detect.
|
||||||
|
We did not receive reports from practice. Instead, we found the bug
|
||||||
|
while conducting other work.
|
||||||
|
trust merge open source commit:4529fa02b674f689d1cbc6925663824ea6882a15
|
||||||
|
|
||||||
|
---
|
||||||
|
tools/omfwd.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
diff --git a/tools/omfwd.c b/tools/omfwd.c
|
||||||
|
index 1304f43f3..5a210444e 100644
|
||||||
|
--- a/tools/omfwd.c
|
||||||
|
+++ b/tools/omfwd.c
|
||||||
|
@@ -1336,6 +1336,11 @@ CODESTARTnewActInst
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* check if no port is set. If so, we use the IANA-assigned port of 514 */
|
||||||
|
+ if(pData->port == NULL) {
|
||||||
|
+ CHKmalloc(pData->port = strdup("514"));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if(complevel != -1) {
|
||||||
|
pData->compressionLevel = complevel;
|
||||||
|
if(pData->compressionMode == COMPRESS_NEVER) {
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
From ad08ed2634fa8be1d07312966803fd156038578d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Thu, 8 Jul 2021 14:30:50 +0200
|
||||||
|
Subject: [PATCH] openssl network driver bugfix: small memory leak
|
||||||
|
Fixes a static, non-growing memory leak which existed when parameter
|
||||||
|
"GnutTLSPriorityString" was used. This was primarily a cosmetic issue,
|
||||||
|
but caused some grief during development in regard to memory leak
|
||||||
|
detectors.
|
||||||
|
Note: yes, this is for openssl -- the parameter name is history ;-)
|
||||||
|
trust merge open source commit:ad08ed2634fa8be1d07312966803fd156038578d
|
||||||
|
|
||||||
|
---
|
||||||
|
runtime/nsd_ossl.c | 6 ++----
|
||||||
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
diff --git a/runtime/nsd_ossl.c b/runtime/nsd_ossl.c
|
||||||
|
index d6188db23..8fff75338 100644
|
||||||
|
--- a/runtime/nsd_ossl.c
|
||||||
|
+++ b/runtime/nsd_ossl.c
|
||||||
|
@@ -1785,11 +1785,8 @@ finalize_it:
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-/* Empty wrapper for GNUTLS helper function
|
||||||
|
- * TODO: implement a similar capability
|
||||||
|
- */
|
||||||
|
static rsRetVal
|
||||||
|
-SetGnutlsPriorityString(__attribute__((unused)) nsd_t *pNsd, __attribute__((unused)) uchar *gnutlsPriorityString)
|
||||||
|
+SetGnutlsPriorityString(nsd_t *const pNsd, uchar *const gnutlsPriorityString)
|
||||||
|
{
|
||||||
|
DEFiRet;
|
||||||
|
nsd_ossl_t* pThis = (nsd_ossl_t*) pNsd;
|
||||||
|
@@ -1869,6 +1866,7 @@ SetGnutlsPriorityString(__attribute__((unused)) nsd_t *pNsd, __attribute__((unus
|
||||||
|
pThis->gnutlsPriorityString);
|
||||||
|
osslLastSSLErrorMsg(0, NULL, LOG_ERR, "SetGnutlsPriorityString");
|
||||||
|
}
|
||||||
|
+ SSL_CONF_CTX_free(cctx);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
dbgprintf("gnutlsPriorityString: set to '%s'\n", gnutlsPriorityString);
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
From c6cdf972e5cf1691a6dadb50ce0402257271bc78 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Thu, 1 Jul 2021 14:24:50 +0200
|
||||||
|
Subject: [PATCH] tcp subsystem: fix cosmetic memory leak on shutdown
|
||||||
|
Memory for config parameter was not free'd on rsyslog shutdown. This had
|
||||||
|
no real consequence, but caused memleak alerts during development.
|
||||||
|
trust merge open source commit:c6cdf972e5cf1691a6dadb50ce0402257271bc78
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/imtcp/imtcp.c | 1 +
|
||||||
|
tools/omfwd.c | 1 +
|
||||||
|
2 files changed, 2 insertions(+)
|
||||||
|
diff --git a/plugins/imtcp/imtcp.c b/plugins/imtcp/imtcp.c
|
||||||
|
index f1478dc15..63d4a0d51 100644
|
||||||
|
--- a/plugins/imtcp/imtcp.c
|
||||||
|
+++ b/plugins/imtcp/imtcp.c
|
||||||
|
@@ -707,6 +707,7 @@ BEGINfreeCnf
|
||||||
|
CODESTARTfreeCnf
|
||||||
|
free(pModConf->pszStrmDrvrName);
|
||||||
|
free(pModConf->pszStrmDrvrAuthMode);
|
||||||
|
+ free(pModConf->gnutlsPriorityString);
|
||||||
|
free(pModConf->pszStrmDrvrPermitExpiredCerts);
|
||||||
|
if(pModConf->permittedPeers != NULL) {
|
||||||
|
cnfarrayContentDestruct(pModConf->permittedPeers);
|
||||||
|
diff --git a/tools/omfwd.c b/tools/omfwd.c
|
||||||
|
index 5a210444e..1131268d4 100644
|
||||||
|
--- a/tools/omfwd.c
|
||||||
|
+++ b/tools/omfwd.c
|
||||||
|
@@ -405,6 +405,7 @@ CODESTARTfreeInstance
|
||||||
|
free(pData->pszStrmDrvr);
|
||||||
|
free(pData->pszStrmDrvrAuthMode);
|
||||||
|
free(pData->pszStrmDrvrPermitExpiredCerts);
|
||||||
|
+ free(pData->gnutlsPriorityString);
|
||||||
|
free(pData->port);
|
||||||
|
free(pData->networkNamespace);
|
||||||
|
free(pData->target);
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
From 3d23c7ac8aea5e1ac0118978d457aa7819531879 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Wed, 7 Jul 2021 13:16:28 +0200
|
||||||
|
Subject: [PATCH] tcpsrv bugfix: abort if no listener could be started
|
||||||
|
Modules (like imtcp and imdiag) which use tcpsrv could abort or
|
||||||
|
otherwise malfunction if no listener for a specific input could
|
||||||
|
be started.
|
||||||
|
Found during implementing a new feature, no report from practice.
|
||||||
|
But could very well happen.
|
||||||
|
trust merge open source commit:3d23c7ac8aea5e1ac0118978d457aa7819531879
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/imdiag/imdiag.c | 1 +
|
||||||
|
plugins/imtcp/imtcp.c | 1 +
|
||||||
|
runtime/tcpsrv.c | 5 +++++
|
||||||
|
3 files changed, 7 insertions(+)
|
||||||
|
diff --git a/plugins/imdiag/imdiag.c b/plugins/imdiag/imdiag.c
|
||||||
|
index 3e27ee4d3..f5662e894 100644
|
||||||
|
--- a/plugins/imdiag/imdiag.c
|
||||||
|
+++ b/plugins/imdiag/imdiag.c
|
||||||
|
@@ -126,6 +126,7 @@ static rsRetVal
|
||||||
|
doOpenLstnSocks(tcpsrv_t *pSrv)
|
||||||
|
{
|
||||||
|
ISOBJ_TYPE_assert(pSrv, tcpsrv);
|
||||||
|
+ dbgprintf("in imdiag doOpenLstnSocks\n");
|
||||||
|
return tcpsrv.create_tcp_socket(pSrv);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/plugins/imtcp/imtcp.c b/plugins/imtcp/imtcp.c
|
||||||
|
index 63d4a0d51..858f70f1f 100644
|
||||||
|
--- a/plugins/imtcp/imtcp.c
|
||||||
|
+++ b/plugins/imtcp/imtcp.c
|
||||||
|
@@ -229,6 +229,7 @@ static rsRetVal
|
||||||
|
doOpenLstnSocks(tcpsrv_t *pSrv)
|
||||||
|
{
|
||||||
|
ISOBJ_TYPE_assert(pSrv, tcpsrv);
|
||||||
|
+ dbgprintf("in imtcp doOpenLstnSocks\n");
|
||||||
|
return tcpsrv.create_tcp_socket(pSrv);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/runtime/tcpsrv.c b/runtime/tcpsrv.c
|
||||||
|
index baa8892d8..2b6bea252 100644
|
||||||
|
--- a/runtime/tcpsrv.c
|
||||||
|
+++ b/runtime/tcpsrv.c
|
||||||
|
@@ -926,6 +926,11 @@ Run(tcpsrv_t *pThis)
|
||||||
|
|
||||||
|
ISOBJ_TYPE_assert(pThis, tcpsrv);
|
||||||
|
|
||||||
|
+ if(pThis->iLstnCurr == 0) {
|
||||||
|
+ dbgprintf("tcpsrv: no listeneres at all (probably init error), terminating\n");
|
||||||
|
+ RETiRet; /* somewhat "dirty" exit to avoid issue with cancel handler */
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* check if we need to start the worker pool. Once it is running, all is
|
||||||
|
* well. Shutdown is done on modExit.
|
||||||
|
*/
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
From b160813f8296397fb971e4aef9faf7f903a3bb7f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Tue, 27 Apr 2021 08:27:34 +0200
|
||||||
|
Subject: [PATCH] tcpsrv bugfix: potential sluggishnes and hang on shutdown
|
||||||
|
tcpsrv is used by multiple other modules (imtcp, imdiag, imgssapi, and,
|
||||||
|
in theory, also others - even ones we do not know about). However, the
|
||||||
|
internal synchornization did not properly take multiple tcpsrv users
|
||||||
|
in consideration.
|
||||||
|
As such, a single user could hang under some circumstances. This was
|
||||||
|
caused by improperly awaking all users from a pthread condition wait.
|
||||||
|
That in turn could lead to some sluggish behaviour and, in rare cases,
|
||||||
|
a hang at shutdown.
|
||||||
|
Note: it was highly unlikely to experience real problems with the
|
||||||
|
officially provided modules.
|
||||||
|
This patch corrects the situation.
|
||||||
|
trust merge open source commit:b160813f8296397fb971e4aef9faf7f903a3bb7f
|
||||||
|
|
||||||
|
---
|
||||||
|
runtime/tcpsrv.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
diff --git a/runtime/tcpsrv.c b/runtime/tcpsrv.c
|
||||||
|
index 2f16677b0..baa8892d8 100644
|
||||||
|
--- a/runtime/tcpsrv.c
|
||||||
|
+++ b/runtime/tcpsrv.c
|
||||||
|
@@ -711,7 +711,7 @@ wrkr(void *const myself)
|
||||||
|
pthread_mutex_lock(&wrkrMut);
|
||||||
|
me->pSrv = NULL; /* indicate we are free again */
|
||||||
|
--wrkrRunning;
|
||||||
|
- pthread_cond_signal(&wrkrIdle);
|
||||||
|
+ pthread_cond_broadcast(&wrkrIdle);
|
||||||
|
}
|
||||||
|
me->enabled = 0; /* indicate we are no longer available */
|
||||||
|
pthread_mutex_unlock(&wrkrMut);
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
25
backport-testbench-simplify-test-ID-generation-a-bit.patch
Normal file
25
backport-testbench-simplify-test-ID-generation-a-bit.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 19e80e9e5c8d5cfee8a455a59d076c9ad60844e6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||||
|
Date: Tue, 1 Sep 2020 14:33:41 +0200
|
||||||
|
Subject: [PATCH] testbench: simplify test ID generation a bit
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/diag.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tests/diag.sh b/tests/diag.sh
|
||||||
|
index bc0e408ce..481be9890 100755
|
||||||
|
--- a/tests/diag.sh
|
||||||
|
+++ b/tests/diag.sh
|
||||||
|
@@ -2491,7 +2491,7 @@ case $1 in
|
||||||
|
echo "hint: was init accidentally called twice?"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
- export RSYSLOG_DYNNAME="rstb_$(./test_id $(basename $0))$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 4 | head -n 1)"
|
||||||
|
+ export RSYSLOG_DYNNAME="rstb_$(./test_id $(basename $0))$(tr -dc 'a-zA-Z0-9' < /dev/urandom | head --bytes 4)"
|
||||||
|
export RSYSLOG_OUT_LOG="${RSYSLOG_DYNNAME}.out.log"
|
||||||
|
export RSYSLOG2_OUT_LOG="${RSYSLOG_DYNNAME}_2.out.log"
|
||||||
|
export RSYSLOG_PIDBASE="${RSYSLOG_DYNNAME}:" # also used by instance 2!
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
||||||
17
rsyslog.spec
17
rsyslog.spec
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Name: rsyslog
|
Name: rsyslog
|
||||||
Version: 8.2006.0
|
Version: 8.2006.0
|
||||||
Release: 6
|
Release: 7
|
||||||
Summary: The rocket-fast system for log processing
|
Summary: The rocket-fast system for log processing
|
||||||
License: (GPLv3+ and ASL 2.0)
|
License: (GPLv3+ and ASL 2.0)
|
||||||
URL: http://www.rsyslog.com/
|
URL: http://www.rsyslog.com/
|
||||||
@ -34,6 +34,18 @@ Patch6012: backport-Do-not-create-empty-objects-when-accessing-non-exist.pa
|
|||||||
Patch6013: backport-gnutls-Added-handshake-error-handling-into-doRetry-h.patch
|
Patch6013: backport-gnutls-Added-handshake-error-handling-into-doRetry-h.patch
|
||||||
Patch6014: backport-msg-segfault-in-jsonPathFindNext-when-root-is-not-an.patch
|
Patch6014: backport-msg-segfault-in-jsonPathFindNext-when-root-is-not-an.patch
|
||||||
Patch6015: backport-msg-memory-leak-in-msgAddJSON-if-jsonPathFindParent-.patch
|
Patch6015: backport-msg-memory-leak-in-msgAddJSON-if-jsonPathFindParent-.patch
|
||||||
|
Patch6016: backport-testbench-simplify-test-ID-generation-a-bit.patch
|
||||||
|
Patch6017: backport-lookup-table-bugfix-data-race-on-lookup-table-reload.patch
|
||||||
|
Patch6018: backport-omfwd-bugfix-segfault-or-error-if-port-not-given.patch
|
||||||
|
Patch6019: backport-imjournal-flush-buffer-before-fsync.patch
|
||||||
|
Patch6020: backport-OMMONGODB-Fixes.patch
|
||||||
|
Patch6021: backport-openssl-network-driver-bugfix-small-memory-leak.patch
|
||||||
|
Patch6022: backport-tcpsrv-bugfix-abort-if-no-listener-could-be-started.patch
|
||||||
|
Patch6023: backport-tcpsrv-bugfix-potential-sluggishnes-and-hang-on-shut.patch
|
||||||
|
Patch6024: backport-tcp-subsystem-fix-cosmetic-memory-leak-on-shutdown.patch
|
||||||
|
Patch6025: backport-imptcp-bugfix-keep-alive-interval-was-incorrectly-set.patch
|
||||||
|
Patch6026: backport-imfile-bugfix-hash-char-invalidly-added-in-readmode-0.patch
|
||||||
|
Patch6027: backport-Close-file-descriptor-when-freshStartTail-is-turned-on.patch
|
||||||
|
|
||||||
Patch9000: rsyslog-8.24.0-ensure-parent-dir-exists-when-writting-log-file.patch
|
Patch9000: rsyslog-8.24.0-ensure-parent-dir-exists-when-writting-log-file.patch
|
||||||
Patch9001: bugfix-rsyslog-7.4.7-imjournal-add-monotonic-timestamp.patch
|
Patch9001: bugfix-rsyslog-7.4.7-imjournal-add-monotonic-timestamp.patch
|
||||||
@ -379,6 +391,9 @@ systemctl daemon-reload >/dev/null 2>&1
|
|||||||
%{_mandir}/man1/rscryutil.1.gz
|
%{_mandir}/man1/rscryutil.1.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Sep 16 2021 wuchaochao <wuchaochao4@huawei.com> - 8.2006.0-7
|
||||||
|
- backport patches from upstream
|
||||||
|
|
||||||
* Mon May 10 2021 shixuantong <shixuantong@huawei.com> - 8.2006.0-6
|
* Mon May 10 2021 shixuantong <shixuantong@huawei.com> - 8.2006.0-6
|
||||||
- Type:NA
|
- Type:NA
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user