Rebase to 8.2412.0
Resolves: RHEL-65177 Fix segfault when $ControlCharacterEscapePrefix is set Resolves: RHEL-38222 Resolves: RHEL-70099 Fix segfault due to processing malform queue message Resolves: RHEL-70100 Fix $ActionQueueDiscardMark default value to 80% queue size Resolves: RHEL-70109 Fix crash on startup when an invalid function is specified Resolves: RHEL-70111
This commit is contained in:
parent
cef70071dc
commit
5b9defb068
2
.gitignore
vendored
2
.gitignore
vendored
@ -84,3 +84,5 @@ rsyslog-4.6.3.tar.gz
|
||||
/qpid-proton-0.39.0.tar.gz
|
||||
/rsyslog-8.2310.0.tar.gz
|
||||
/rsyslog-doc-8.2310.0.tar.gz
|
||||
/rsyslog-8.2412.0.tar.gz
|
||||
/rsyslog-doc-8.2412.0.tar.gz
|
||||
|
28
imfile-deleteStateOnFileMove.patch
Normal file
28
imfile-deleteStateOnFileMove.patch
Normal file
@ -0,0 +1,28 @@
|
||||
diff -up rsyslog-8.2412.0/plugins/imfile/imfile.c.orig rsyslog-8.2412.0/plugins/imfile/imfile.c
|
||||
--- rsyslog-8.2412.0/plugins/imfile/imfile.c.orig 2024-12-06 13:42:53.855126447 +0100
|
||||
+++ rsyslog-8.2412.0/plugins/imfile/imfile.c 2024-12-06 13:44:43.990211090 +0100
|
||||
@@ -264,6 +264,7 @@ struct modConfData_s {
|
||||
Must be manually reset to 0 if desired. Helper for
|
||||
polling mode.
|
||||
*/
|
||||
+ sbool deleteStateOnFileMove;
|
||||
};
|
||||
static modConfData_t *loadModConf = NULL;/* modConf ptr to use for the current load process */
|
||||
static modConfData_t *runModConf = NULL;/* modConf ptr to use for run process */
|
||||
@@ -2094,6 +2095,7 @@ CODESTARTbeginCnfLoad
|
||||
loadModConf->timeoutGranularity = 1000; /* default: 1 second */
|
||||
loadModConf->haveReadTimeouts = 0; /* default: no timeout */
|
||||
loadModConf->normalizePath = 1;
|
||||
+ loadModConf->deleteStateOnFileMove = 0;
|
||||
loadModConf->sortFiles = GLOB_NOSORT;
|
||||
loadModConf->stateFileDirectory = NULL;
|
||||
loadModConf->conf_tree = calloc(1, sizeof(fs_node_t));
|
||||
@@ -2153,6 +2155,8 @@ CODESTARTsetModCnf
|
||||
loadModConf->stateFileDirectory = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
|
||||
} else if(!strcmp(modpblk.descr[i].name, "normalizepath")) {
|
||||
loadModConf->normalizePath = (sbool) pvals[i].val.d.n;
|
||||
+ } else if(!strcmp(modpblk.descr[i].name, "deletestateonfilemove")) {
|
||||
+ loadModConf->deleteStateOnFileMove = (sbool) pvals[i].val.d.n;
|
||||
} else if(!strcmp(modpblk.descr[i].name, "mode")) {
|
||||
if(!es_strconstcmp(pvals[i].val.d.estr, "polling"))
|
||||
loadModConf->opMode = OPMODE_POLLING;
|
@ -1,83 +0,0 @@
|
||||
diff -up rsyslog-8.2310.0/plugins/imjournal/imjournal.c.orig rsyslog-8.2310.0/plugins/imjournal/imjournal.c
|
||||
--- rsyslog-8.2310.0/plugins/imjournal/imjournal.c.orig 2023-10-10 16:42:39.771369418 +0200
|
||||
+++ rsyslog-8.2310.0/plugins/imjournal/imjournal.c 2023-10-10 16:51:39.839133580 +0200
|
||||
@@ -87,6 +87,7 @@ static struct configSettings_s {
|
||||
int bWorkAroundJournalBug; /* deprecated, left for backwards compatibility only */
|
||||
int bFsync;
|
||||
int bRemote;
|
||||
+ char *dfltTag;
|
||||
} cs;
|
||||
|
||||
static rsRetVal facilityHdlr(uchar **pp, void *pVal);
|
||||
@@ -106,7 +107,8 @@ static struct cnfparamdescr modpdescr[]
|
||||
{ "usepid", eCmdHdlrString, 0 },
|
||||
{ "workaroundjournalbug", eCmdHdlrBinary, 0 },
|
||||
{ "fsync", eCmdHdlrBinary, 0 },
|
||||
- { "remote", eCmdHdlrBinary, 0 }
|
||||
+ { "remote", eCmdHdlrBinary, 0 },
|
||||
+ { "defaulttag", eCmdHdlrGetWord, 0 }
|
||||
};
|
||||
static struct cnfparamblk modpblk =
|
||||
{ CNFPARAMBLK_VERSION,
|
||||
@@ -117,6 +119,7 @@ static struct cnfparamblk modpblk =
|
||||
#define DFLT_persiststateinterval 10
|
||||
#define DFLT_SEVERITY pri2sev(LOG_NOTICE)
|
||||
#define DFLT_FACILITY pri2fac(LOG_USER)
|
||||
+#define DFLT_TAG "journal"
|
||||
|
||||
static int bLegacyCnfModGlobalsPermitted = 1;/* are legacy module-global config parameters permitted? */
|
||||
|
||||
@@ -458,7 +461,7 @@ readjournal(void)
|
||||
} else if (journalGetData("_COMM", &get, &length) >= 0) {
|
||||
CHKiRet(sanitizeValue(((const char *)get) + 6, length - 6, &sys_iden));
|
||||
} else {
|
||||
- CHKmalloc(sys_iden = strdup("journal"));
|
||||
+ CHKmalloc(sys_iden = strdup(cs.dfltTag));
|
||||
}
|
||||
|
||||
/* trying to get PID, default is "SYSLOG_PID" property */
|
||||
@@ -826,6 +829,10 @@ CODESTARTrunInput
|
||||
"\"usepidfromsystem\" is deprecated, use \"usepid\" instead");
|
||||
}
|
||||
|
||||
+ if (cs.dfltTag == NULL) {
|
||||
+ cs.dfltTag = strdup(DFLT_TAG);
|
||||
+ }
|
||||
+
|
||||
if (cs.usePid && (strcmp(cs.usePid, "system") == 0)) {
|
||||
pidFieldName = "_PID";
|
||||
bPidFallBack = 0;
|
||||
@@ -914,6 +921,7 @@ CODESTARTbeginCnfLoad
|
||||
cs.bWorkAroundJournalBug = 1;
|
||||
cs.bFsync = 0;
|
||||
cs.bRemote = 0;
|
||||
+ cs.dfltTag = NULL;
|
||||
ENDbeginCnfLoad
|
||||
|
||||
|
||||
@@ -983,6 +991,7 @@ BEGINfreeCnf
|
||||
CODESTARTfreeCnf
|
||||
free(cs.stateFile);
|
||||
free(cs.usePid);
|
||||
+ free(cs.dfltTag);
|
||||
free(journalContext.cursor);
|
||||
statsobj.Destruct(&(statsCounter.stats));
|
||||
ENDfreeCnf
|
||||
@@ -1077,6 +1086,8 @@ CODESTARTsetModCnf
|
||||
cs.bFsync = (int) pvals[i].val.d.n;
|
||||
} else if (!strcmp(modpblk.descr[i].name, "remote")) {
|
||||
cs.bRemote = (int) pvals[i].val.d.n;
|
||||
+ } else if (!strcmp(modpblk.descr[i].name, "defaulttag")) {
|
||||
+ cs.dfltTag = (char *)es_str2cstr(pvals[i].val.d.estr, NULL);
|
||||
} else {
|
||||
dbgprintf("imjournal: program error, non-handled "
|
||||
"param '%s' in beginCnfLoad\n", modpblk.descr[i].name);
|
||||
@@ -1144,6 +1155,8 @@ CODEmodInit_QueryRegCFSLineHdlr
|
||||
facilityHdlr, &cs.iDfltFacility, STD_LOADABLE_MODULE_ID));
|
||||
CHKiRet(omsdRegCFSLineHdlr((uchar *)"imjournalusepidfromsystem", 0, eCmdHdlrBinary,
|
||||
NULL, &cs.bUseJnlPID, STD_LOADABLE_MODULE_ID));
|
||||
+ CHKiRet(omsdRegCFSLineHdlr((uchar *)"imjournaldefaulttag", 0, eCmdHdlrGetWord,
|
||||
+ NULL, &cs.dfltTag, STD_LOADABLE_MODULE_ID));
|
||||
ENDmodInit
|
||||
/* vim:set ai:
|
||||
*/
|
@ -1,21 +0,0 @@
|
||||
diff -up rsyslog-8.2102.0/plugins/omrelp/omrelp.c.orig rsyslog-8.2102.0/plugins/omrelp/omrelp.c
|
||||
--- rsyslog-8.2102.0/plugins/omrelp/omrelp.c.orig 2021-06-15 12:46:14.758589030 +0200
|
||||
+++ rsyslog-8.2102.0/plugins/omrelp/omrelp.c 2021-06-15 12:47:08.130516632 +0200
|
||||
@@ -303,7 +303,7 @@ ENDfreeCnf
|
||||
BEGINcreateInstance
|
||||
CODESTARTcreateInstance
|
||||
pData->sizeWindow = 0;
|
||||
- pData->timeout = 90;
|
||||
+ pData->timeout = 5;
|
||||
pData->connTimeout = 10;
|
||||
pData->rebindInterval = 0;
|
||||
pData->bEnableTLS = DFLT_ENABLE_TLS;
|
||||
@@ -365,7 +365,7 @@ setInstParamDefaults(instanceData *pData
|
||||
pData->target = NULL;
|
||||
pData->port = NULL;
|
||||
pData->tplName = NULL;
|
||||
- pData->timeout = 90;
|
||||
+ pData->timeout = 5;
|
||||
pData->connTimeout = 10;
|
||||
pData->sizeWindow = 0;
|
||||
pData->rebindInterval = 0;
|
@ -1,47 +0,0 @@
|
||||
diff -up rsyslog-8.2102.0/doc/configuration/modules/imfile.html.state-file-leaking-doc rsyslog-8.2102.0/doc/configuration/modules/imfile.html
|
||||
--- rsyslog-8.2102.0/doc/configuration/modules/imfile.html.state-file-leaking-doc 2021-02-15 12:53:31.000000000 +0100
|
||||
+++ rsyslog-8.2102.0/doc/configuration/modules/imfile.html 2022-03-29 10:35:07.187827004 +0200
|
||||
@@ -294,6 +294,28 @@ rsyslog needs write permissions to work
|
||||
also might require SELinux definitions (or similar for other enhanced security
|
||||
systems).</p>
|
||||
</div>
|
||||
+<div class="section" id="deletestateonfilemove">
|
||||
+<h4>deleteStateOnFileMove<a class="headerlink" href="#deletestateonfilemove" title="Permalink to this headline">¶</a></h4>
|
||||
+<table border="1" class="colwidths-auto parameter-table docutils">
|
||||
+<thead valign="bottom">
|
||||
+<tr class="row-odd"><th class="head">type</th>
|
||||
+<th class="head">default</th>
|
||||
+<th class="head">mandatory</th>
|
||||
+<th class="head"><code class="docutils literal notranslate"><span class="pre">obsolete</span> <span class="pre">legacy</span></code> directive</th>
|
||||
+</tr>
|
||||
+</thead>
|
||||
+<tbody valign="top">
|
||||
+<tr class="row-even"><td>binary</td>
|
||||
+<td>off</td>
|
||||
+<td>no</td>
|
||||
+<td>none</td>
|
||||
+</tr>
|
||||
+</tbody>
|
||||
+</table>
|
||||
+<p>This parameter controls if state files are deleted if their associated main file is rotated via move. Usually, this is a good idea, because otherwise state files are not deleted when log rotation occurs.</p>
|
||||
+
|
||||
+<p>However, there is one situation where not deleting associated state file after log rotation makes sense: this is the case if a monitored file is later moved back to the same location as it was before.</p>
|
||||
+</div>
|
||||
</div>
|
||||
<div class="section" id="input-parameters">
|
||||
<h3>Input Parameters<a class="headerlink" href="#input-parameters" title="Permalink to this headline">¶</a></h3>
|
||||
@@ -1214,6 +1236,7 @@ and Others.</p>
|
||||
<li><a class="reference internal" href="#sortfiles">sortFiles</a></li>
|
||||
<li><a class="reference internal" href="#pollinginterval">PollingInterval</a></li>
|
||||
<li><a class="reference internal" href="#statefile-directory">statefile.directory</a></li>
|
||||
+<li><a class="reference internal" href="#deletestateonfilemove">deleteStateOnFileMove</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#input-parameters">Input Parameters</a><ul>
|
||||
@@ -1311,4 +1334,4 @@ and Others.</p>
|
||||
<div class="footer" role="contentinfo">
|
||||
</div>
|
||||
</body>
|
||||
-</html>
|
||||
\ No newline at end of file
|
||||
+</html>
|
@ -1,42 +0,0 @@
|
||||
diff -up rsyslog-8.2310.0/doc/configuration/modules/imfile.html.orig rsyslog-8.2310.0/doc/configuration/modules/imfile.html
|
||||
--- rsyslog-8.2310.0/doc/configuration/modules/imfile.html.orig 2023-11-06 09:34:00.022802039 +0100
|
||||
+++ rsyslog-8.2310.0/doc/configuration/modules/imfile.html 2023-11-06 09:37:02.086613055 +0100
|
||||
@@ -293,6 +293,30 @@ rsyslog needs write permissions to work
|
||||
also might require SELinux definitions (or similar for other enhanced security
|
||||
systems).</p>
|
||||
</div>
|
||||
+
|
||||
+<div class="section" id="deletestateonfilemove">
|
||||
+ <h4>deleteStateOnFileMove<a class="headerlink" href="#deletestateonfilemove" title="Permalink to this headline">¶</a></h4>
|
||||
+ <table border="1" class="colwidths-auto parameter-table docutils">
|
||||
+ <thead valign="bottom">
|
||||
+ <tr class="row-odd"><th class="head">type</th>
|
||||
+ <th class="head">default</th>
|
||||
+ <th class="head">mandatory</th>
|
||||
+ <th class="head"><code class="docutils literal notranslate"><span class="pre">obsolete</span> <span class="pre">legacy</span></code> directive</th>
|
||||
+ </tr>
|
||||
+ </thead>
|
||||
+ <tbody valign="top">
|
||||
+ <tr class="row-even"><td>binary</td>
|
||||
+ <td>off</td>
|
||||
+ <td>no</td>
|
||||
+ <td>none</td>
|
||||
+ </tr>
|
||||
+ </tbody>
|
||||
+ </table>
|
||||
+ <p>This parameter controls if state files are deleted if their associated main file is rotated via move. Usually, this is a good idea, because otherwise state files are not deleted when log rotation occurs.</p>
|
||||
+
|
||||
+<p>However, there is one situation where not deleting associated state file after log rotation makes sense: this is the case if a monitored file is later moved back to the same location as it was before.</p>
|
||||
+</div>
|
||||
+
|
||||
</div>
|
||||
<div class="section" id="input-parameters">
|
||||
<h3>Input Parameters<a class="headerlink" href="#input-parameters" title="Permalink to this headline">¶</a></h3>
|
||||
@@ -1237,6 +1261,7 @@ and Others.</p>
|
||||
<li><a class="reference internal" href="#sortfiles">sortFiles</a></li>
|
||||
<li><a class="reference internal" href="#pollinginterval">PollingInterval</a></li>
|
||||
<li><a class="reference internal" href="#statefile-directory">statefile.directory</a></li>
|
||||
+<li><a class="reference internal" href="#deletestateonfilemove">deleteStateOnFileMove</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#input-parameters">Input Parameters</a><ul>
|
@ -1,115 +0,0 @@
|
||||
From 0de0c4b274e7e33ed4a27b02d6046b62d612e29b Mon Sep 17 00:00:00 2001
|
||||
From: alakatos <alakatos@redhat.com>
|
||||
Date: Tue, 24 Oct 2023 15:43:19 +0200
|
||||
Subject: [PATCH] Do not preserve statefile on file move
|
||||
|
||||
---
|
||||
plugins/imfile/imfile.c | 45 ++++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 33 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/plugins/imfile/imfile.c b/plugins/imfile/imfile.c
|
||||
index 5febd6db6..8769a185f 100644
|
||||
--- a/plugins/imfile/imfile.c
|
||||
+++ b/plugins/imfile/imfile.c
|
||||
@@ -264,6 +264,7 @@ struct modConfData_s {
|
||||
Must be manually reset to 0 if desired. Helper for
|
||||
polling mode.
|
||||
*/
|
||||
+ sbool deleteStateOnFileMove;
|
||||
};
|
||||
static modConfData_t *loadModConf = NULL;/* modConf ptr to use for the current load process */
|
||||
static modConfData_t *runModConf = NULL;/* modConf ptr to use for run process */
|
||||
@@ -310,7 +311,8 @@ static struct cnfparamdescr modpdescr[] = {
|
||||
{ "sortfiles", eCmdHdlrBinary, 0 },
|
||||
{ "statefile.directory", eCmdHdlrString, 0 },
|
||||
{ "normalizepath", eCmdHdlrBinary, 0 },
|
||||
- { "mode", eCmdHdlrGetWord, 0 }
|
||||
+ { "mode", eCmdHdlrGetWord, 0 },
|
||||
+ { "deletestateonfilemove", eCmdHdlrBinary, 0 }
|
||||
};
|
||||
static struct cnfparamblk modpblk =
|
||||
{ CNFPARAMBLK_VERSION,
|
||||
@@ -551,11 +553,18 @@ static int
|
||||
in_setupWatch(act_obj_t *const act, const int is_file)
|
||||
{
|
||||
int wd = -1;
|
||||
+ int flags;
|
||||
if(runModConf->opMode != OPMODE_INOTIFY)
|
||||
goto done;
|
||||
|
||||
- wd = inotify_add_watch(ino_fd, act->name,
|
||||
- (is_file) ? IN_MODIFY|IN_DONT_FOLLOW : IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO);
|
||||
+ if (is_file)
|
||||
+ flags = IN_MODIFY|IN_DONT_FOLLOW;
|
||||
+ else if (runModConf->deleteStateOnFileMove)
|
||||
+ flags = IN_CREATE|IN_DELETE|IN_MOVED_TO;
|
||||
+ else
|
||||
+ flags = IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO;
|
||||
+
|
||||
+ wd = inotify_add_watch(ino_fd, act->name, flags);
|
||||
if(wd < 0) {
|
||||
if (errno == EACCES) { /* There is high probability of selinux denial on top-level paths */
|
||||
DBGPRINTF("imfile: permission denied when adding watch for '%s'\n", act->name);
|
||||
@@ -1059,7 +1068,7 @@ act_obj_destroy(act_obj_t *const act, const int is_deleted)
|
||||
persistStrmState(act);
|
||||
strm.Destruct(&act->pStrm);
|
||||
/* we delete state file after destruct in case strm obj initiated a write */
|
||||
- if(is_deleted && !act->in_move && inst->bRMStateOnDel) {
|
||||
+ if(is_deleted && inst->bRMStateOnDel && (!act->in_move || runModConf->deleteStateOnFileMove)) {
|
||||
DBGPRINTF("act_obj_destroy: deleting state file %s\n", statefn);
|
||||
unlink((char*)statefn);
|
||||
}
|
||||
@@ -2090,6 +2099,7 @@ CODESTARTbeginCnfLoad
|
||||
loadModConf->timeoutGranularity = 1000; /* default: 1 second */
|
||||
loadModConf->haveReadTimeouts = 0; /* default: no timeout */
|
||||
loadModConf->normalizePath = 1;
|
||||
+ loadModConf->deleteStateOnFileMove = 0;
|
||||
loadModConf->sortFiles = GLOB_NOSORT;
|
||||
loadModConf->stateFileDirectory = NULL;
|
||||
loadModConf->conf_tree = calloc(sizeof(fs_node_t), 1);
|
||||
@@ -2149,6 +2159,8 @@ CODESTARTsetModCnf
|
||||
loadModConf->stateFileDirectory = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
|
||||
} else if(!strcmp(modpblk.descr[i].name, "normalizepath")) {
|
||||
loadModConf->normalizePath = (sbool) pvals[i].val.d.n;
|
||||
+ } else if(!strcmp(modpblk.descr[i].name, "deletestateonfilemove")) {
|
||||
+ loadModConf->deleteStateOnFileMove = (sbool) pvals[i].val.d.n;
|
||||
} else if(!strcmp(modpblk.descr[i].name, "mode")) {
|
||||
if(!es_strconstcmp(pvals[i].val.d.estr, "polling"))
|
||||
loadModConf->opMode = OPMODE_POLLING;
|
||||
@@ -2452,16 +2464,25 @@ in_processEvent(struct inotify_event *ev)
|
||||
DBGPRINTF("in_processEvent process Event %x is_file %d, act->name '%s'\n",
|
||||
ev->mask, etry->act->edge->is_file, etry->act->name);
|
||||
|
||||
- if((ev->mask & IN_MOVED_FROM)) {
|
||||
- flag_in_move(etry->act->edge->node->edges, ev->name);
|
||||
- }
|
||||
- if(ev->mask & (IN_MOVED_FROM | IN_MOVED_TO)) {
|
||||
- fs_node_walk(etry->act->edge->node, poll_tree);
|
||||
- } else if(etry->act->edge->is_file && !(etry->act->is_symlink)) {
|
||||
- in_handleFileEvent(ev, etry); // esentially poll_file()!
|
||||
+ if (!runModConf->deleteStateOnFileMove) {
|
||||
+ if((ev->mask & IN_MOVED_FROM)) {
|
||||
+ flag_in_move(etry->act->edge->node->edges, ev->name);
|
||||
+ }
|
||||
+ if(ev->mask & (IN_MOVED_FROM | IN_MOVED_TO)) {
|
||||
+ fs_node_walk(etry->act->edge->node, poll_tree);
|
||||
+ } else if(etry->act->edge->is_file && !(etry->act->is_symlink)) {
|
||||
+ in_handleFileEvent(ev, etry); // esentially poll_file()!
|
||||
+ } else {
|
||||
+ fs_node_walk(etry->act->edge->node, poll_tree);
|
||||
+ }
|
||||
} else {
|
||||
- fs_node_walk(etry->act->edge->node, poll_tree);
|
||||
+ if((ev->mask & IN_MODIFY) && etry->act->edge->is_file && !(etry->act->is_symlink)) {
|
||||
+ in_handleFileEvent(ev, etry); // esentially poll_file()!
|
||||
+ } else {
|
||||
+ fs_node_walk(etry->act->edge->node, poll_tree);
|
||||
+ }
|
||||
}
|
||||
+
|
||||
done: return;
|
||||
}
|
||||
|
||||
--
|
||||
2.41.0
|
||||
|
@ -1,41 +0,0 @@
|
||||
diff -up rsyslog-8.2310.0/doc/configuration/modules/omprog.html.orig rsyslog-8.2310.0/doc/configuration/modules/omprog.html
|
||||
--- rsyslog-8.2310.0/doc/configuration/modules/omprog.html.orig 2024-01-05 13:21:14.474252913 +0100
|
||||
+++ rsyslog-8.2310.0/doc/configuration/modules/omprog.html 2024-01-05 13:25:09.128562192 +0100
|
||||
@@ -144,8 +144,11 @@ passed to the external program.</p>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
-<p>Full path and command line parameters of the external program to execute.</p>
|
||||
-<p>In legacy config, it is <strong>not possible</strong> to specify command line parameters.</p>
|
||||
+<p>Full path and command line parameters of the external program to execute.
|
||||
+ Arbitrary external programs should be placed under the /usr/libexec/rsyslog directory.
|
||||
+ That is, the binaries put in this namespaced directory are meant for the consumption
|
||||
+ of rsyslog, and are not intended to be executed by users.
|
||||
+ In legacy config, it is <strong>not possible</strong> to specify command line parameters.</p>
|
||||
</div>
|
||||
<div class="section" id="confirmmessages">
|
||||
<span id="id1"></span><h4>confirmMessages<a class="headerlink" href="#confirmmessages" title="Permalink to this headline">¶</a></h4>
|
||||
@@ -587,12 +590,12 @@ multiple processes.</p>
|
||||
<div class="section" id="example-command-line-arguments">
|
||||
<h3>Example: command line arguments<a class="headerlink" href="#example-command-line-arguments" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In the following example, logs will be sent to a program <code class="docutils literal notranslate"><span class="pre">log.sh</span></code> located
|
||||
-in <code class="docutils literal notranslate"><span class="pre">/path/to</span></code>. The program will receive the command line arguments
|
||||
+in <code class="docutils literal notranslate"><span class="pre">/usr/libexec/rsyslog</span></code>. The program will receive the command line arguments
|
||||
<code class="docutils literal notranslate"><span class="pre">p1</span></code>, <code class="docutils literal notranslate"><span class="pre">p2</span></code> and <code class="docutils literal notranslate"><span class="pre">--param3="value</span> <span class="pre">3"</span></code>.</p>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>module(load="omprog")
|
||||
|
||||
action(type="omprog"
|
||||
- binary="/path/to/log.sh p1 p2 --param3=\"value 3\""
|
||||
+ binary="/usr/libexec/rsyslog/log.sh p1 p2 --param3=\"value 3\""
|
||||
template="RSYSLOG_TraditionalFileFormat")
|
||||
</pre></div>
|
||||
</div>
|
||||
@@ -618,7 +621,7 @@ rsyslog will kill and restart it.</p>
|
||||
|
||||
action(type="omprog"
|
||||
name="db_forward"
|
||||
- binary="/usr/share/logging/db_forward.py"
|
||||
+ binary="/usr/libexec/rsyslog/db_forward.py"
|
||||
confirmMessages="on"
|
||||
confirmTimeout="30000"
|
||||
queue.type="LinkedList"
|
@ -1,11 +0,0 @@
|
||||
diff -up rsyslog-8.2310.0/plugins/imfile/imfile.c.orig rsyslog-8.2310.0/plugins/imfile/imfile.c
|
||||
--- rsyslog-8.2310.0/plugins/imfile/imfile.c.orig 2023-11-03 12:19:39.179103408 +0100
|
||||
+++ rsyslog-8.2310.0/plugins/imfile/imfile.c 2023-11-03 12:19:54.228237199 +0100
|
||||
@@ -1162,6 +1162,7 @@ fs_node_destroy(fs_node_t *const node)
|
||||
DBGPRINTF("node destroy: %p edges:\n", node);
|
||||
|
||||
for(edge = node->edges ; edge != NULL ; ) {
|
||||
+ detect_updates(edge);
|
||||
fs_node_destroy(edge->node);
|
||||
fs_edge_t *const toDel = edge;
|
||||
edge = edge->next;
|
33
rsyslog.spec
33
rsyslog.spec
@ -4,8 +4,8 @@
|
||||
|
||||
Summary: Enhanced system logging and kernel message trapping daemon
|
||||
Name: rsyslog
|
||||
Version: 8.2310.0
|
||||
Release: 4%{?dist}
|
||||
Version: 8.2412.0
|
||||
Release: 1%{?dist}
|
||||
License: (GPLv3+ and ASL 2.0)
|
||||
URL: http://www.rsyslog.com/
|
||||
Source0: http://www.rsyslog.com/files/download/rsyslog/%{name}-%{version}.tar.gz
|
||||
@ -18,12 +18,7 @@ Source5: rsyslog.service
|
||||
# separatae sub-package with it statically linked(see rhbz#1713427)
|
||||
Source6: qpid-proton-0.39.0.tar.gz
|
||||
|
||||
Patch1: rsyslog-8.1911.0-rhbz1659898-imjournal-default-tag-v2.patch
|
||||
Patch2: rsyslog-8.2102.0-rhbz1886400-reduce-default-timeout.patch
|
||||
Patch3: rsyslog-8.2310.0-do-not-preserve-statefile-on-file-move.patch
|
||||
Patch4: rsyslog-8.2310.0-do-not-preserve-statefile-on-file-move-doc.patch
|
||||
Patch5: rsyslog-8.2310.0-remove-state-on-file-delete.patch
|
||||
Patch6: rsyslog-8.2310.0-omprog-binary-path.patch
|
||||
Patch0: imfile-deleteStateOnFileMove.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc
|
||||
@ -257,16 +252,11 @@ rm -r LICENSE README.md source build/objects.inv
|
||||
mv build doc
|
||||
# set up rsyslog sources
|
||||
%setup -q -D
|
||||
%patch -P 0 -p1
|
||||
|
||||
# Unpack qpid-proton for rhel
|
||||
%setup -q -D -T -b 6
|
||||
|
||||
%patch -P 1 -p1
|
||||
%patch -P 2 -p1
|
||||
%patch -P 3 -p1
|
||||
%patch -P 4 -p1
|
||||
%patch -P 5 -p1
|
||||
%patch -P 6 -p1
|
||||
|
||||
%build
|
||||
# Add additional flags as per https://one.redhat.com/rhel-developer-guide/#_what_are_the_required_flags
|
||||
%ifarch aarch64
|
||||
@ -529,6 +519,19 @@ done
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Dec 06 2024 Attila Lakatos <alakatos@redhat.com> - 8.2412.0-1
|
||||
- Rebase to 8.2412.0
|
||||
Resolves: RHEL-65177
|
||||
- Fix segfault when $ControlCharacterEscapePrefix is set
|
||||
Resolves: RHEL-38222
|
||||
Resolves: RHEL-70099
|
||||
- Fix segfault due to processing malform queue message
|
||||
Resolves: RHEL-70100
|
||||
- Fix $ActionQueueDiscardMark default value to 80% queue size
|
||||
Resolves: RHEL-70109
|
||||
- Fix crash on startup when an invalid function is specified
|
||||
Resolves: RHEL-70111
|
||||
|
||||
* Tue Dec 12 2023 Attila Lakatos <alakatos@redhat.com> - 8.2310.0-4
|
||||
- new directory for arbitrary external programs needed by omprog module
|
||||
Resolves: RHEL-8676
|
||||
|
6
sources
6
sources
@ -1,3 +1,3 @@
|
||||
SHA512 (qpid-proton-0.39.0.tar.gz) = 38659682cc86bf0c910e2a707a5b166b3a7d0fb70fd83d6c5ebcaca53b2cd5a478adf36958d2c4c55a2ea6afcb9b457a12006a7967efae6ca2d0663c0febbc58
|
||||
SHA512 (rsyslog-8.2310.0.tar.gz) = f04e14ede8c35e1799eadc711a6e99dbe56d312c7909c7ebed4d4bd489d310a44a5c2d3ed23968fbf3ccff5b580870d0f3ceeb690deb1d1424420fc9d3220696
|
||||
SHA512 (rsyslog-doc-8.2310.0.tar.gz) = cf452f3705680fc81495e940ea7d5ae705a6dbfe0e2ce5a87865c3043f79daaec243df20e8aadd9fac6144a3df8f19d7c56fdf19ec68df78e2fdaffa45096143
|
||||
SHA512 (qpid-proton-0.39.0.tar.gz) = df5c5469ee82ba02de62dce15b73b81aab2aae07c7db668182df690cea4ff7584111bd12143fe5e3569469a9ddf4950ac68d60b53d1a7815da4748052948cd1b
|
||||
SHA512 (rsyslog-8.2412.0.tar.gz) = fdd8bb096c9578fe2c4ed8cdb13179d7b3333d0f9be1b2c921b5b040f1e1414c3f9f8106e44444aaefba22f235a44d17c0c5b80cd114fe540a2aebb30e3eba72
|
||||
SHA512 (rsyslog-doc-8.2412.0.tar.gz) = 9b5d453b5774b027a6a4ba232133953d8a8058df4bfff31f835504656d7b01008cec5c0d28667bed0052799cf7389c0bafea7c76c3190bdcdf3d8a2eedf19b4e
|
||||
|
Loading…
Reference in New Issue
Block a user