]> git.kaiwu.me - haproxy.git/commit
REGTESTS: log: serve the transaction state test on a single connection
authorWilly Tarreau <w@1wt.eu>
Tue, 22 Sep 2026 22:16:40 +0000 (22:16 +0000)
committerWilly Tarreau <w@1wt.eu>
Wed, 30 Sep 2026 15:25:37 +0000 (17:25 +0200)
commit4fcbcc4834a6c6b9f781e4e01ea3e30d6dc97f72
tree0419f16b8e7072d7a29b714596cb178d6d64863b
parente81f01771b02802ac31614d3f949523404ff5f01
REGTESTS: log: serve the transaction state test on a single connection

Running the whole suite with "--j 32" caught the client of this test
receiving a close instead of the response to its second request. The
server was answering each of the four requests in its own iteration,
so it closed its connection after every response, and the debug trace
of the failing run shows the close reaching haproxy just as the next
request was sent over the connection it had reused:

    00000000:be.srvrep[003b:003a]: HTTP/1.1 200 OK
    00000000:be.srvcls[003b:003a]
    00000001:fe.clireq[003b:ffffffff]: GET /err HTTP/1.1
    00000001:be.srvcls[003b:003a]
    00000001:be.clicls[003b:003a]

The four requests are now served on a single connection, which is what
a keep-alive server does, so nothing closes in the middle of the
client's series. Twenty-four runs in parallel with the machine loaded
pass where the previous version failed twice out of sixteen.
reg-tests/log/txn_state.vtc