new: ci: Add Debian "trixie" (386)
Some checks failed
CodeQL / Analyze (push) Has been cancelled
SonarCloud / Build and analyze (push) Has been cancelled

Merge branch 'mnowak/add-debian-trixie-386' into 'main'

See merge request isc-projects/bind9!12079
This commit is contained in:
Michal Nowak 2026-05-22 18:30:49 +02:00
commit 0226bddae4
4 changed files with 48 additions and 5 deletions

View file

@ -231,6 +231,10 @@ stages:
image: "$CI_REGISTRY_IMAGE:debian-trixie-amd64cross32"
<<: *linux_amd64
.debian-trixie-386: &debian_trixie_386_image
image: "$CI_REGISTRY_IMAGE:debian-trixie-386"
<<: *linux_amd64
.debian-sid-amd64: &debian_sid_amd64_image
image: "$CI_REGISTRY_IMAGE:debian-sid-amd64"
<<: *linux_amd64
@ -1423,6 +1427,30 @@ gcc:trixie:amd64cross32:
<<: *debian_trixie_amd64cross32_image
<<: *build_job
# Jobs for regular GCC builds on Debian 13 "trixie" (386)
gcc:trixie:386:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON}"
EXTRA_CONFIGURE: "-Didn=enabled"
<<: *debian_trixie_386_image
<<: *build_job
system:gcc:trixie:386:
<<: *debian_trixie_386_image
<<: *system_test_job
needs:
- job: gcc:trixie:386
artifacts: true
unit:gcc:trixie:386:
<<: *debian_trixie_386_image
<<: *unit_test_job
needs:
- job: gcc:trixie:386
artifacts: true
# Run with pkcs11-provider tests
gcc:ossl3:trixie:amd64:
<<: *debian_trixie_amd64_image

View file

@ -1375,8 +1375,12 @@ class AsyncDnsServer(AsyncServer):
qctx.socket,
qctx.protocol.name,
)
try:
response_text = str(response)
except OverflowError:
response_text = "<response not representable as text>"
logging.debug(
"\n".join([f"[OUT] {l}" for l in [""] + str(response).splitlines()])
"\n".join([f"[OUT] {l}" for l in [""] + response_text.splitlines()])
)
return

View file

@ -44,6 +44,17 @@ def generic_query(
log_response: bool = True,
) -> Any:
def _safe_to_text(msg: dns.message.Message) -> str:
"""
Convert a DNS message to text, tolerating dnspython's failure to render
RRSIG inception/expiration timestamps that overflow the platform's
time_t (e.g. post-2038 values on 32-bit systems).
"""
try:
return msg.to_text()
except OverflowError:
return "<message not representable as text>"
def log_querymsg(exception: Exception | None = None) -> None:
"""
Helper for logging query message. Call this *after* query_func() has
@ -54,7 +65,7 @@ def generic_query(
nonlocal log_query
if log_query:
isctest.log.debug(
f"isc.query.{query_func.__name__}(): query\n{message.to_text()}"
f"isc.query.{query_func.__name__}(): query\n{_safe_to_text(message)}"
)
log_query = False # only log query once
@ -99,7 +110,7 @@ def generic_query(
if res:
if log_response:
isctest.log.debug(
f"isc.query.{query_func.__name__}(): response\n{res.to_text()}"
f"isc.query.{query_func.__name__}(): response\n{_safe_to_text(res)}"
)
if res.rcode() == expected_rcode or expected_rcode is None:
return res

View file

@ -1109,12 +1109,12 @@ static isc_result_t
copy_initfile(dns_zone_t *zone) {
isc_result_t result;
FILE *input = NULL, *output = NULL;
size_t len;
off_t len;
CHECK(isc_stdio_open(zone->initfile, "r", &input));
CHECK(isc_stdio_open(zone->masterfile, "w", &output));
CHECK(isc_file_getsizefd(fileno(input), (off_t *)&len));
CHECK(isc_file_getsizefd(fileno(input), &len));
do {
char buf[BUFSIZ];