NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Issue in bio_dgram_test in OpenSSL 3.2+
On Wed, 22 Jul 2026, Akira Kato wrote:
While this may not be an issue just for openssl [...]
I think it is, actually :(
It is possible to compile openssl (3.6.3) in pkgsrc, in either 9.4,
10.1, or even 11.0RC6. But when you run "make test", it stops in
"04-test_bio_dgram.t ......................". Actually bio_dgram_test
(in test directory) consists of 2 tests. The first test hungs while
the second test completes without any issue.
This is the large (2 * BIO_CMSG_ALLOC_LEN = 128) recvmmsg() test that's
blocking, and it's caused by
1) small UDP receive buffers on NetBSD:
```
$ sysctl -a | f udp
net.inet.udp.checksum = 1
net.inet.udp.sendspace = 9216
net.inet.udp.recvspace = 41600 <---
net.inet.udp.do_loopback_cksum = 0
net.inet6.udp6.sendspace = 9216
net.inet6.udp6.recvspace = 42080 <---
net.inet6.udp6.do_loopback_cksum = 0
```
so not all the messages the program wants to read will be available (some'll
be lost, so you'll _have_ to supply a timeout if you don't want the reader to
block--which OpenSSL doesn't do); and,
2) OpenSSL _not_ adding a timeout for recvmmsg(2) internally in BIO_recvmmsg(3).
Note that on OpenBSD 7.9 and FreeBSD 14.4, bio_dgram_test successfully
completed without any error.
They probably have larger UDP buffer sizes.
Can you try tripling the buffer sizes?
```
$ sudo sysctl -w net.inet.udp.recvspace=$((41600 * 3))
net.inet.udp.recvspace: 41600 -> 124800
$ sudo sysctl -w net.inet6.udp6.recvspace=$((42080 * 3))
net.inet6.udp6.recvspace: 42080 -> 126240
$
```
-RVP
Home |
Main Index |
Thread Index |
Old Index