haproxy/reg-tests/lua/bad_http_clt_req_duration.vtc
Frédéric Lécaille b894f9230c REGTEST: adapt some reg tests after renaming.
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.
2019-04-23 15:37:11 +02:00

85 lines
2.2 KiB
Plaintext

# commit 7b6cc52784526c32efda44b873a4258d3ae0b8c7
# BUG/MINOR: lua: Bad HTTP client request duration.
#
# HTTP LUA applet callback should not update the date on which the HTTP client requests
# arrive. This was done just after the LUA applet has completed its job.
#
# This patch simply removes the affected statement. The same fixe has been applied
# to TCP LUA applet callback.
#
# To reproduce this issue, as reported by Patrick Hemmer, implement an HTTP LUA applet
# which sleeps a bit before replying:
#
# core.register_service("foo", "http", function(applet)
# core.msleep(100)
# applet:set_status(200)
# applet:start_response()
# end)
#
# This had as a consequence to log %TR field with approximatively the same value as
# the LUA sleep time.
varnishtest "LUA bug"
#REQUIRE_OPTIONS=LUA
#REGTEST_TYPE=bug
feature ignore_unknown_macro
syslog Slog {
recv notice
expect ~ "[^:\\[ ]*\\[[0-9]*\\]: Proxy f1 started"
recv notice
expect ~ "[^:\\[ ]\\[[0-9]*\\]: Proxy f2 started"
recv info
expect ~ "[^:\\[ ]\\[[0-9]*\\]: 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]*$"
recv info
expect ~ "[^:\\[ ]\\[[0-9]*\\]: Tc=[0-9]* Td=[0-9]* Th=[0-9]* Tt=[0-9]* Tw=[0-9]*$"
} -start
haproxy h1 -conf {
global
lua-load ${testdir}/bad_http_clt_req_duration.lua
defaults
timeout client 1s
timeout server 1s
timeout connect 1s
frontend f1
mode http
${no-htx} option http-use-htx
bind "fd@${f1}"
log ${Slog_addr}:${Slog_port} daemon
log-format Ta=%Ta\ Tc=%Tc\ Td=%Td\ Th=%Th\ Ti=%Ti\ Tq=%Tq\ TR=%TR\ Tr=%Tr\ Tt=%Tt\ Tw=%Tw
default_backend b1
backend b1
mode http
${no-htx} option http-use-htx
http-request use-service lua.foo.http
frontend f2
mode tcp
bind "fd@${f2}"
log ${Slog_addr}:${Slog_port} daemon
log-format Tc=%Tc\ Td=%Td\ Th=%Th\ Tt=%Tt\ Tw=%Tw
tcp-request inspect-delay 1s
tcp-request content use-service lua.foo.tcp
} -start
client c1 -connect "${h1_f1_sock}" {
txreq
rxresp
} -run
client c2 -connect "${h1_f2_sock}" {
txreq
rxresp
} -run
syslog Slog -wait