mirror of
https://github.com/rsyslog/rsyslog.git
synced 2026-04-23 12:38:12 +02:00
The test results were not deterministic. Sometimes it passed, sometimes it failed. The omhttp-validate-response.py script tried to parse the json input line by line, but sometimes the message and response fields are on separate lines, thus it failed to parse. This is the case for both files used to control the checking. This patch updates the check program so that it reads in complete lines when parsing fails, thus removing this condition for flakiness. HOWEVER, after doing so the test still sometimes fails. This may point into a problem with the contributed omhttp module. Unfortunately, I do not have enough insight into that module (nor time) to try to address the root cause. closes https://github.com/rsyslog/rsyslog/issues/5439
91 lines
2.2 KiB
Bash
Executable File
91 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# This file is part of the rsyslog project, released under ASL 2.0
|
|
|
|
# Starting actual testbench
|
|
. ${srcdir:=.}/diag.sh init
|
|
|
|
export NUMMESSAGES=50000
|
|
|
|
port="$(get_free_port)"
|
|
omhttp_start_server $port --fail-every 100 --fail-with 207
|
|
|
|
generate_conf
|
|
add_conf '
|
|
module(load="../contrib/omhttp/.libs/omhttp")
|
|
|
|
main_queue(queue.dequeueBatchSize="2048")
|
|
|
|
template(name="tpl" type="string"
|
|
string="{\"msgnum\":\"%msg:F,58:2%\"}")
|
|
|
|
# Echo message as-is for retry
|
|
template(name="tpl_echo" type="string" string="%msg%\n")
|
|
|
|
# Echo response as-is for retry
|
|
template(name="tpl_response" type="string" string="{ \"message\": %msg%, \"response\": %$!omhttp!response% }\n")
|
|
|
|
ruleset(name="ruleset_omhttp_retry") {
|
|
#action(type="omfile" file="'$RSYSLOG_DYNNAME/omhttp.message.log'" template="tpl_echo")
|
|
# log the response
|
|
action(type="omfile" file="'$RSYSLOG_DYNNAME/omhttp.response.log'" template="tpl_response")
|
|
action(
|
|
name="action_omhttp"
|
|
type="omhttp"
|
|
errorfile="'$RSYSLOG_DYNNAME/omhttp.error.log'"
|
|
template="tpl_echo"
|
|
|
|
server="localhost"
|
|
serverport="'$port'"
|
|
restpath="my/endpoint"
|
|
batch="on"
|
|
batch.maxsize="100"
|
|
batch.format="kafkarest"
|
|
|
|
httpretrycodes=["207","500"]
|
|
retry="on"
|
|
retry.ruleset="ruleset_omhttp_retry"
|
|
retry.addmetadata="on"
|
|
|
|
# Auth
|
|
usehttps="off"
|
|
) & stop
|
|
}
|
|
|
|
ruleset(name="ruleset_omhttp") {
|
|
action(
|
|
name="action_omhttp"
|
|
type="omhttp"
|
|
errorfile="'$RSYSLOG_DYNNAME/omhttp.error.log'"
|
|
template="tpl"
|
|
|
|
server="localhost"
|
|
serverport="'$port'"
|
|
restpath="my/endpoint"
|
|
batch="on"
|
|
batch.maxsize="100"
|
|
batch.format="kafkarest"
|
|
|
|
httpretrycodes=["207", "500"]
|
|
retry="on"
|
|
retry.ruleset="ruleset_omhttp_retry"
|
|
retry.addmetadata="on"
|
|
|
|
# Auth
|
|
usehttps="off"
|
|
) & stop
|
|
}
|
|
|
|
if $msg contains "msgnum:" then
|
|
call ruleset_omhttp
|
|
'
|
|
startup
|
|
injectmsg
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
omhttp_get_data $port my/endpoint kafkarest
|
|
omhttp_stop_server
|
|
seq_check
|
|
cat -n ${RSYSLOG_DYNNAME}/omhttp.response.log
|
|
omhttp_validate_metadata_response
|
|
exit_test
|