mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-15 10:30:40 +01:00
There was a rare possibility that the E_AGAIN/E_INTERRUPT handling could cause an infinite loop (100% CPU Usage), for example when a TLS handshake is interrupted at a certain stage. - After gnutls_record_recv is called, and E_AGAIN/E_INTERRUPT error occurs, we need to do additional read/write direction handling with gnutls_record_get_direction. - After the second call of gnutls_record_recv (Expand buffer) we needed to also check the eror codes for E_AGAIN/E_INTERRUPT to do propper errorhandling. - Add extra debug output based on ossl driver. - Potential fix for 100% CPU Loop Receiveloop after gtlsRecordRecv in doRetry call. see also: https://github.com/rsyslog/rsyslog/issues/4818
33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# added 2011-02-28 by Rgerhards
|
|
# This file is part of the rsyslog project, released under ASL 2.0
|
|
. ${srcdir:=.}/diag.sh init
|
|
export NUMMESSAGES=50000
|
|
export TB_TEST_MAX_RUNTIME=1500
|
|
export QUEUE_EMPTY_CHECK_FUNC=wait_seq_check
|
|
# uncomment for debugging support:
|
|
#export RSYSLOG_DEBUG="debug nostdout noprintmutexaction"
|
|
#export RSYSLOG_DEBUGLOG="$RSYSLOG_DYNNAME.debuglog"
|
|
generate_conf
|
|
add_conf '
|
|
global( defaultNetstreamDriverCAFile="'$srcdir'/tls-certs/ca.pem"
|
|
defaultNetstreamDriverCertFile="'$srcdir'/tls-certs/cert.pem"
|
|
defaultNetstreamDriverKeyFile="'$srcdir'/tls-certs/key.pem")
|
|
|
|
module(load="../plugins/imtcp/.libs/imtcp"
|
|
StreamDriver.Name="gtls"
|
|
StreamDriver.Mode="1"
|
|
StreamDriver.AuthMode="anon" )
|
|
|
|
input(type="imtcp" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port")
|
|
|
|
template(name="outfmt" type="string" string="%msg:F,58:2%\n")
|
|
:msg, contains, "msgnum:" action(type="omfile" file="'$RSYSLOG_OUT_LOG'" template="outfmt")
|
|
'
|
|
startup
|
|
tcpflood -p$TCPFLOOD_PORT -m$NUMMESSAGES -Ttls -x$srcdir/tls-certs/ca.pem -Z$srcdir/tls-certs/cert.pem -z$srcdir/tls-certs/key.pem
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
seq_check
|
|
exit_test
|