(This page was automatically generated by the tools in the opsboy project on 15:56:37 13-May-2026 GMT.)

Detailed Test Report for lua-resty-upstream-healthcheck in linux x86_64 (hv)

Summary

Commit Testing Time Unexpected
Failures
Expected
Failures
Files Tests Elapsed Time
79614e03 2026-05-13 10:49:21 GMT 0 40 6 137 68 sec

LuaJIT

LuaJIT 2.1.1776221388, commit 7fcf52f5

OpenSSL

OpenSSL 3.5.6 7 Apr 2026

Compilation Errors

Segmentation Faults

Unexpected Failures

(none)

Expected Failures

File Name Details
sanity.t TEST 8: peers version upgrade (make down peers up) - grep_error_log_out (req 0) 'upgrading peers version to 1
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
warn(): healthcheck: peer 127.0.0.1:12354 is turned down after 2 failure(s)
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
publishing peers version 2
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
'
doesn't match '(?^:^upgrading peers version to 1
healthcheck: peer 127\.0\.0\.1:12354 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be not ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12354 is turned down after 2 failure\(s\)
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
publishing peers version 2
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
){3,5}$)'
sanity.t TEST 9: concurrency == 2 (odd number of peers) - grep_error_log_out (req 0) 'spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
'
doesn't match '(?^:^(?:spawn a thread checking primary peers 0 to 2
check primary peers 3 to 4
check backup peer 0
){4,6}$)'
sanity.t TEST 3: health check (bad case), no listening port in a primary peer - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12358 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12359 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12358 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12359 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12358 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12359 was checked to be not ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12358 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12359 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
warn(): healthcheck: peer 127.0.0.1:12355 is turned down after 2 failure(s)
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12355 is turned down after 2 failure\(s\)
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
){2,4}$)'
sanity.t TEST 5: health check (bad case), timed out - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
warn(): healthcheck: peer 127.0.0.1:12354 is turned down after 2 failure(s)
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be not ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12354 is turned down after 2 failure\(s\)
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
){0,2}$)'
sanity.t TEST 16: health check using different port - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
publishing peers version 2
upgrading peers version to 1
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
){3,5}$)'
sanity.t TEST 16: health check using different port - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:33 [debug] 4759#4759: *355 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12354 was checked to be not ok" (req 0) 2026/05/13 14:20:33 [debug] 4759#4759: fetching key "nok:foo.com:p0" in shared dict "healthcheck"
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: *355 lua finalize socket
2026/05/13 14:20:33 [debug] 4759#4759: *355 lua http cleanup free: 0000000007360100
2026/05/13 14:20:33 [debug] 4759#4759: *355 lua close socket connection
2026/05/13 14:20:33 [debug] 4759#4759: *355 reusable connection: 0
'
sanity.t TEST 16: health check using different port - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:33 [debug] 4759#4759: *364 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12354 was checked to be not ok" (req 0) 2026/05/13 14:20:33 [debug] 4759#4759: fetching key "nok:foo.com:p0" in shared dict "healthcheck"
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: *364 lua finalize socket
2026/05/13 14:20:33 [debug] 4759#4759: *364 lua http cleanup free: 0000000007372BA0
2026/05/13 14:20:33 [debug] 4759#4759: *364 lua close socket connection
2026/05/13 14:20:33 [debug] 4759#4759: *364 reusable connection: 0
'
sanity.t TEST 16: health check using different port - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:33 [debug] 4759#4759: *373 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12354 was checked to be not ok" (req 0) 2026/05/13 14:20:33 [debug] 4759#4759: fetching key "nok:foo.com:p0" in shared dict "healthcheck"
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: slab free: 00000000064A0080
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: lua shared dict set: creating a new entry
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 90 slot: 4
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 00000000064A0080
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
'
sanity.t TEST 16: health check using different port - pattern "[error]" should not match any line in error.log but matches line "2026/05/13 14:20:33 [error] 4759#4759: *373 [lua] healthcheck.lua:61: errlog(): healthcheck: failed to receive status line from 127.0.0.1:12355: timeout, context: ngx.timer" (req 0) 2026/05/13 14:20:33 [debug] 4759#4759: *373 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok
2026/05/13 14:20:33 [debug] 4759#4759: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: lua shared dict set: creating a new entry
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 90 slot: 4
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 00000000064A0100
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
'
sanity.t TEST 16: health check using different port - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:33 [debug] 4759#4759: *373 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:33 [debug] 4759#4759: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: lua shared dict set: creating a new entry
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 90 slot: 4
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 00000000064A0100
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: fetching key "ok:foo.com:p1" in shared dict "healthcheck"
'
sanity.t TEST 16: health check using different port - pattern "[error]" should not match any line in error.log but matches line "2026/05/13 14:20:33 [error] 4759#4759: *373 [lua] healthcheck.lua:61: errlog(): healthcheck: failed to receive status line from 127.0.0.1:12356: timeout, context: ngx.timer" (req 0) 2026/05/13 14:20:33 [debug] 4759#4759: *373 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12356 was checked to be not ok
2026/05/13 14:20:33 [debug] 4759#4759: fetching key "nok:foo.com:b0" in shared dict "healthcheck"
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: lua shared dict set: creating a new entry
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 90 slot: 4
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 00000000064A0180
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
'
sanity.t TEST 16: health check using different port - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:33 [debug] 4759#4759: *373 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12356 was checked to be not ok" (req 0) 2026/05/13 14:20:33 [debug] 4759#4759: fetching key "nok:foo.com:b0" in shared dict "healthcheck"
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: shmtx lock
2026/05/13 14:20:33 [debug] 4759#4759: lua shared dict set: creating a new entry
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 90 slot: 4
2026/05/13 14:20:33 [debug] 4759#4759: slab alloc: 00000000064A0180
2026/05/13 14:20:33 [debug] 4759#4759: shmtx unlock
2026/05/13 14:20:33 [debug] 4759#4759: fetching key "ok:foo.com:b0" in shared dict "healthcheck"
'
sanity.t TEST 16: health check using different port - pattern "[error]" should not match any line in error.log but matches line "2026/05/13 14:20:34 [error] 4791#4791: *381 open() \"/home/ec2-user/git/lua-resty-upstream-healthcheck/t/servroot/html/status\" failed (2: No such file or directory), client: 127.0.0.1, server: , request: \"GET /status HTTP/1.0\", host: \"localhost\"" (req 0) 2026/05/13 14:20:34 [debug] 4791#4791: *381 http finalize request: 404, "/status?" a:1, c:1
2026/05/13 14:20:34 [debug] 4791#4791: *381 http special response: 404, "/status?"
2026/05/13 14:20:34 [debug] 4791#4791: *381 http set discard body
2026/05/13 14:20:34 [debug] 4791#4791: *381 lua header filter for user lua code, uri "/status"
2026/05/13 14:20:34 [debug] 4791#4791: *381 lua capture header filter, uri "/status"
2026/05/13 14:20:34 [debug] 4791#4791: *381 malloc: 0000000005FA3870:80
2026/05/13 14:20:34 [debug] 4791#4791: *381 malloc: 0000000005FA3900:16
2026/05/13 14:20:34 [debug] 4791#4791: *381 malloc: 0000000005FA3950:177
2026/05/13 14:20:34 [debug] 4791#4791: *381 malloc: 0000000005FAF550:16
'
sanity.t TEST 2: health check (bad case), no listening port in the backup peer - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
publishing peers version 2
upgrading peers version to 1
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
warn(): healthcheck: peer 127.0.0.1:12356 is turned down after 2 failure(s)
publishing peers version 2
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be not ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12356 is turned down after 2 failure\(s\)
publishing peers version 1
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be not ok
){2,4}$)'
sanity.t TEST 15: peers > concurrency - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12358 was checked to be not ok
healthcheck: failed to receive status line from 127.0.0.1:12354
healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12359 was checked to be not ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12357 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12358 was checked to be not ok
healthcheck: failed to receive status line from 127\.0\.0\.1:12354
healthcheck: peer 127\.0\.0\.1:12354 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12359 was checked to be not ok
$)'
sanity.t TEST 10: concurrency == 3 (odd number of peers) - grep_error_log_out (req 0) 'spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
'
doesn't match '(?^:^(?:spawn a thread checking primary peer 0
spawn a thread checking primary peer 1
check primary peer 2
check backup peer 0
){4,6}$)'
sanity.t TEST 1: health check (good case), status ignored by default - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12359 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12359 was checked to be not ok
publishing peers version 2
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
upgrading peers version to 1
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
){3,5}$)'
sanity.t TEST 1: health check (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:41 [debug] 4890#4890: *672 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12354 was checked to be not ok" (req 0) 2026/05/13 14:20:41 [debug] 4890#4890: fetching key "nok:foo.com:p0" in shared dict "healthcheck"
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: *672 lua resume returned 0
2026/05/13 14:20:41 [debug] 4890#4890: *672 lua light thread ended normally
2026/05/13 14:20:41 [debug] 4890#4890: malloc: 0000000006E5F9C0:16
2026/05/13 14:20:41 [debug] 4890#4890: malloc: 0000000006E73510:16
'
sanity.t TEST 1: health check (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:41 [debug] 4890#4890: *672 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:41 [debug] 4890#4890: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: *672 lua resume returned 0
2026/05/13 14:20:41 [debug] 4890#4890: *672 lua light thread ended normally
2026/05/13 14:20:41 [debug] 4890#4890: malloc: 0000000006E73A90:16
2026/05/13 14:20:41 [debug] 4890#4890: malloc: 0000000006E73AE0:16
'
sanity.t TEST 1: health check (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:41 [debug] 4890#4890: *672 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12356 was checked to be not ok" (req 0) 2026/05/13 14:20:41 [debug] 4890#4890: fetching key "nok:foo.com:p2" in shared dict "healthcheck"
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: *672 lua deleting light thread 0000000006890040 (ref 4)
2026/05/13 14:20:41 [debug] 4890#4890: *672 http lua unref thread 0000000006890040: 4
2026/05/13 14:20:41 [debug] 4890#4890: *672 lua deleting light thread 0000000006E482D0 (ref 1)
2026/05/13 14:20:41 [debug] 4890#4890: *672 http lua unref thread 0000000006E482D0: 1
'
sanity.t TEST 1: health check (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:41 [debug] 4890#4890: *672 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12359 was checked to be not ok" (req 0) 2026/05/13 14:20:41 [debug] 4890#4890: fetching key "nok:foo.com:b0" in shared dict "healthcheck"
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:41 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:41 [debug] 4890#4890: lua ref lua thread 0000000006E80C80 (ref 1)
2026/05/13 14:20:41 [debug] 4890#4890: *672 malloc: 0000000006E80EF0:184
2026/05/13 14:20:41 [debug] 4890#4890: malloc: 0000000006E80FF0:48
2026/05/13 14:20:41 [debug] 4890#4890: event timer add: 115870848: 100:12726871
'
sanity.t TEST 1: health check (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:42 [debug] 4890#4890: *679 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12359 was checked to be not ok" (req 0) 2026/05/13 14:20:42 [debug] 4890#4890: fetching key "nok:foo.com:b0" in shared dict "healthcheck"
2026/05/13 14:20:42 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:42 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:42 [debug] 4890#4890: shmtx lock
2026/05/13 14:20:42 [debug] 4890#4890: lua shared dict set: creating a new entry
2026/05/13 14:20:42 [debug] 4890#4890: slab alloc: 90 slot: 4
2026/05/13 14:20:42 [debug] 4890#4890: slab alloc: 00000000064A0200
2026/05/13 14:20:42 [debug] 4890#4890: shmtx unlock
2026/05/13 14:20:42 [debug] 4890#4890: fetching key "ok:foo.com:b0" in shared dict "healthcheck"
'
sanity.t TEST 4: health check (bad case), bad status - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: bad status code from 127.0.0.1:12355: 404
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: bad status code from 127.0.0.1:12355: 404
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
warn(): healthcheck: peer 127.0.0.1:12355 is turned down after 2 failure(s)
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: bad status code from 127\.0\.0\.1:12355: 404
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: bad status code from 127\.0\.0\.1:12355: 404
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12355 is turned down after 2 failure\(s\)
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
){1,4}$)'
sanity.t TEST 7: peers version upgrade (make up peers down) - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
upgrading peers version to 1
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
warn(): healthcheck: peer 127.0.0.1:12356 is turned up after 2 success(es)
publishing peers version 2
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
warn(): healthcheck: peer 127.0.0.1:12355 is turned up after 2 success(es)
healthcheck: peer 127.0.0.1:12356 was checked to be ok
publishing peers version 3
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
'
doesn't match '(?^:^upgrading peers version to 1
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12355 is turned up after 2 success\(es\)
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12356 is turned up after 2 success\(es\)
publishing peers version 2
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
){2,4}$)'
sanity.t TEST 7: peers version upgrade (make up peers down) - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:45 [debug] 4952#4952: *883 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:45 [debug] 4952#4952: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:45 [debug] 4952#4952: shmtx lock
2026/05/13 14:20:45 [debug] 4952#4952: shmtx unlock
2026/05/13 14:20:45 [debug] 4952#4952: shmtx lock
2026/05/13 14:20:45 [debug] 4952#4952: shmtx unlock
2026/05/13 14:20:45 [debug] 4952#4952: *883 lua finalize socket
2026/05/13 14:20:45 [debug] 4952#4952: *883 lua http cleanup free: 0000000006DA6C00
2026/05/13 14:20:45 [debug] 4952#4952: *883 lua close socket connection
2026/05/13 14:20:45 [debug] 4952#4952: *883 reusable connection: 0
'
sanity.t TEST 7: peers version upgrade (make up peers down) - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:45 [debug] 4952#4952: *893 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:45 [debug] 4952#4952: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:45 [debug] 4952#4952: shmtx lock
2026/05/13 14:20:45 [debug] 4952#4952: shmtx unlock
2026/05/13 14:20:45 [debug] 4952#4952: shmtx lock
2026/05/13 14:20:45 [debug] 4952#4952: lua shared dict set: creating a new entry
2026/05/13 14:20:45 [debug] 4952#4952: slab alloc: 90 slot: 4
2026/05/13 14:20:45 [debug] 4952#4952: slab alloc: 00000000064A0100
2026/05/13 14:20:45 [debug] 4952#4952: shmtx unlock
2026/05/13 14:20:45 [debug] 4952#4952: fetching key "ok:foo.com:p1" in shared dict "healthcheck"
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12357 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be not ok
publishing peers version 2
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer \[::1\]:12355 was checked to be ok
healthcheck: peer \[::1\]:12356 was checked to be ok
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer \[::1\]:12355 was checked to be ok
healthcheck: peer \[::1\]:12356 was checked to be ok
){3,7}$)'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:50 [debug] 5047#5047: *1237 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000636C570:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000637AA10:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 00000000063925C0:56
2026/05/13 14:20:50 [debug] 5047#5047: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:50 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000637AA60:16
2026/05/13 14:20:50 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000005FDB110:11
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000005FDB160:16
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:50 [debug] 5047#5047: *1240 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006863C90:56
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006863D10:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006053030:20
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006053090:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006869F90:56
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 00000000060530E0:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000686A010:22
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000686A0F0:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000686A140:64
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:50 [debug] 5047#5047: *1240 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12357 was checked to be not ok" (req 0) 2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000631E760:136
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000611D230:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000631E830:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000631E880:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 000000000631E8D0:72
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006334A20:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006334A70:72
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006334B00:16
2026/05/13 14:20:50 [debug] 4627#4627: malloc: 0000000006334B50:11
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:51 [debug] 5047#5047: *1254 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: *1254 lua finalize socket
2026/05/13 14:20:51 [debug] 5047#5047: *1254 lua http cleanup free: 0000000006396E60
2026/05/13 14:20:51 [debug] 5047#5047: *1254 lua close socket connection
2026/05/13 14:20:51 [debug] 5047#5047: *1254 reusable connection: 0
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:51 [debug] 5047#5047: *1258 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:bar.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: *1258 lua finalize socket
2026/05/13 14:20:51 [debug] 5047#5047: *1258 lua http cleanup free: 0000000006E86FD0
2026/05/13 14:20:51 [debug] 5047#5047: *1258 lua close socket connection
2026/05/13 14:20:51 [debug] 5047#5047: *1258 reusable connection: 0
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:51 [debug] 5047#5047: *1258 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12357 was checked to be not ok" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:bar.com:p2" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: *1258 lua finalize socket
2026/05/13 14:20:51 [debug] 5047#5047: *1258 lua http cleanup free: 0000000006E86FD0
2026/05/13 14:20:51 [debug] 5047#5047: *1258 lua close socket connection
2026/05/13 14:20:51 [debug] 5047#5047: *1258 reusable connection: 0
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:51 [debug] 5047#5047: *1272 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:foo.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: *1272 lua finalize socket
2026/05/13 14:20:51 [debug] 5047#5047: *1272 lua http cleanup free: 0000000005E780C0
2026/05/13 14:20:51 [debug] 5047#5047: *1272 lua close socket connection
2026/05/13 14:20:51 [debug] 5047#5047: *1272 reusable connection: 0
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:51 [debug] 5047#5047: *1276 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12355 was checked to be not ok" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:bar.com:p1" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: *1276 lua finalize socket
2026/05/13 14:20:51 [debug] 5047#5047: *1276 lua http cleanup free: 0000000006916DE0
2026/05/13 14:20:51 [debug] 5047#5047: *1276 lua close socket connection
2026/05/13 14:20:51 [debug] 5047#5047: *1276 reusable connection: 0
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:51 [debug] 5047#5047: *1276 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12357 was checked to be not ok" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:bar.com:p2" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: malloc: 0000000005D54DE0:10
2026/05/13 14:20:51 [debug] 5047#5047: malloc: 0000000006A66660:16
2026/05/13 14:20:51 [debug] 5047#5047: malloc: 0000000005F77750:32
2026/05/13 14:20:51 [debug] 5047#5047: malloc: 0000000005F77830:16
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "[error]" should not match any line in error.log but matches line "2026/05/13 14:20:51 [error] 5047#5047: *1276 [lua] healthcheck.lua:61: errlog(): healthcheck: failed to connect to 127.0.0.1:12356: connection refused, context: ngx.timer" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: *1276 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12356 was checked to be not ok
2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:bar.com:b0" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: lua shared dict set: creating a new entry
2026/05/13 14:20:51 [debug] 5047#5047: slab alloc: 90 slot: 4
2026/05/13 14:20:51 [debug] 5047#5047: slab alloc: 0000000007DA2780
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "was checked to be not ok" should not match any line in error.log but matches line "2026/05/13 14:20:51 [debug] 5047#5047: *1276 [lua] healthcheck.lua:67: debug(): healthcheck: peer 127.0.0.1:12356 was checked to be not ok" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: fetching key "nok:bar.com:b0" in shared dict "healthcheck"
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: lua shared dict set: creating a new entry
2026/05/13 14:20:51 [debug] 5047#5047: slab alloc: 90 slot: 4
2026/05/13 14:20:51 [debug] 5047#5047: slab alloc: 0000000007DA2780
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: fetching key "ok:bar.com:b0" in shared dict "healthcheck"
'
sanity.t TEST 14: health check with ipv6 backend (good case), status ignored by default - pattern "[warn]" should not match any line in error.log but matches line "2026/05/13 14:20:51 [warn] 5047#5047: *1276 [lua] healthcheck.lua:57: warn(): healthcheck: peer 127.0.0.1:12356 is turned down after 1 failure(s), context: ngx.timer" (req 0) 2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: lua shared dict set: creating a new entry
2026/05/13 14:20:51 [debug] 5047#5047: slab alloc: 81 slot: 4
2026/05/13 14:20:51 [debug] 5047#5047: slab alloc: 0000000007DA2800
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: *1276 [lua] healthcheck.lua:67: debug(): healthcheck: publishing peers version 2
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx unlock
2026/05/13 14:20:51 [debug] 5047#5047: shmtx lock
'
sanity.t TEST 6: health check (bad case), bad status, and then rise again - grep_error_log_out (req 0) 'healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer [::1]:12355 was checked to be ok
healthcheck: peer [::1]:12356 was checked to be not ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: bad status code from 127.0.0.1:12355: 403
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
warn(): healthcheck: peer 127.0.0.1:12355 is turned down after 1 failure(s)
healthcheck: peer 127.0.0.1:12356 was checked to be ok
publishing peers version 1
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be not ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
warn(): healthcheck: peer 127.0.0.1:12355 is turned up after 2 success(es)
healthcheck: peer 127.0.0.1:12356 was checked to be ok
publishing peers version 2
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
healthcheck: peer 127.0.0.1:12355 was checked to be ok
healthcheck: peer 127.0.0.1:12356 was checked to be ok
healthcheck: peer 127.0.0.1:12354 was checked to be ok
'
doesn't match '(?^:^healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: bad status code from 127\.0\.0\.1:12355: 403
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12355 is turned down after 1 failure\(s\)
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
publishing peers version 1
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be not ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
warn\(\): healthcheck: peer 127\.0\.0\.1:12355 is turned up after 2 success\(es\)
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
publishing peers version 2
(?:healthcheck: peer 127\.0\.0\.1:12354 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12355 was checked to be ok
healthcheck: peer 127\.0\.0\.1:12356 was checked to be ok
){1,3}$)'

Warnings

(none)

Go back to the index page.