Source: dovecot
Version: 1:2.4.2+dfsg1-3
Severity: important
User: [email protected]
Usertags: arm64
X-Debbugs-Cc: [email protected]
Hi,
dovecot fails to build from source on arm64 when using glibc 2.43,
currently in experimental.
The build gets stuck in a endless loop. The failed assert below was
logged several million times on the system where I was building the
package when I noticed the multi-GB build log and killed the build:
make[4]: Entering directory
'/build/reproducible-path/dovecot-2.4.2+dfsg1/src/lib-ssl-iostream'
for bin in test-iostream-ssl; do \
if ! ./$bin; then exit 1; fi; \
done
ssl: handshake ....................................................... : ok
test-iostream-ssl.c:448: Assert failed: o_stream_send(client->output, buf,
avail) == (ssize_t)avail
test-iostream-ssl.c:105: Assert failed: i_stream_read_bytes(ep->input,
&data, &size, 1) > -1 || ep->input->stream_errno == 0
test-iostream-ssl.c:105: Assert failed: i_stream_read_bytes(ep->input,
&data, &size, 1) > -1 || ep->input->stream_errno == 0
test-iostream-ssl.c:105: Assert failed: i_stream_read_bytes(ep->input,
&data, &size, 1) > -1 || ep->input->stream_errno == 0
[EMA: SNIP!]
Logs here:
https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/dovecot_arm64.build
The issue is triggered by glibc 2.43 on arm64 enabling 2MB THP by
default:
https://sourceware.org/git/?p=glibc.git;a=commit;h=321e1fc73f53081d92ba357cdd48c56b79292020
The problem is however not architecture-specific. For example it can be
reproduced with glibc 2.42 on amd64 by building the package with the
GLIBC_TUNABLES environment variable set to glibc.malloc.hugetlb=2.
Cheers,
ema