mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-18 09:24:31 +00:00
b894f9230c
Some reg tests and their dependencies have been renamed. They may be referenced by the .vtc files. So, this patch modifies also the references to these dependencies.
55 lines
1.6 KiB
Plaintext
55 lines
1.6 KiB
Plaintext
# commit 70d318c
|
|
# BUG/MEDIUM: lua: possible CLOSE-WAIT state with '\n' headers
|
|
#
|
|
# The Lua parser doesn't takes in account end-of-headers containing
|
|
# only '\n'. It expects always '\r\n'. If a '\n' is processes the Lua
|
|
# parser considers it miss 1 byte, and wait indefinitely for new data.
|
|
#
|
|
# When the client reaches their timeout, it closes the connection.
|
|
# This close is not detected and the connection keep in CLOSE-WAIT
|
|
# state.
|
|
#
|
|
# I guess that this patch fix only a visible part of the problem.
|
|
# If the Lua HTTP parser wait for data, the timeout server or the
|
|
# connectio closed by the client may stop the applet.
|
|
|
|
varnishtest "possible CLOSE-WAIT with '\n' headers"
|
|
#REQUIRE_OPTIONS=LUA
|
|
#REGTEST_TYPE=bug
|
|
|
|
feature ignore_unknown_macro
|
|
|
|
syslog Slog -level info -repeat 100 {
|
|
recv info
|
|
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Ta=[0-9]* Tc=[0-9]* Td=[0-9]* Th=[0-9]* Ti=[0-9]* Tq=[0-9]* TR=[0-9]* Tr=[0-9]* Tt=[0-9]* Tw=[0-9]*"
|
|
} -start
|
|
|
|
haproxy h1 -conf {
|
|
defaults
|
|
timeout client 1s
|
|
timeout connect 1s
|
|
|
|
global
|
|
lua-load ${testdir}/close_wait_lf.lua
|
|
|
|
frontend frt
|
|
log ${Slog_addr}:${Slog_port} local0 debug err
|
|
log-format Ta=%Ta\ Tc=%Tc\ Td=%Td\ Th=%Th\ Ti=%Ti\ Tq=%Tq\ TR=%TR\ Tr=%Tr\ Tt=%Tt\ Tw=%Tw
|
|
mode http
|
|
${no-htx} option http-use-htx
|
|
bind "fd@${frt}"
|
|
http-request use-service lua.donothing
|
|
} -start
|
|
|
|
|
|
client c1 -connect ${h1_frt_sock} -repeat 100 {
|
|
send "GET / HTTP/1.1\n\n"
|
|
} -run
|
|
|
|
syslog Slog -wait
|
|
|
|
shell {
|
|
ss -pt | grep CLOSE-WAIT.*haproxy.*pid=${h1_pid}
|
|
exit $((!$?))
|
|
}
|