buf in do_recv() in core.c is too small in case of TLS. TLS record size can be up to 16kB but buf is only 8kB. This leads to data not to be delivered at the end of a reply. At least not in a timely fashion, as it is eventually deliver when the connection is closed many seconds later. buf needs to be at least 16kB.
Maintainer feedback!
A commit references this bug: Author: danfe Date: Sat Dec 7 11:39:36 UTC 2019 New revision: 519200 URL: https://svnweb.freebsd.org/changeset/ports/519200 Log: - Update to the latest GitHub commit: current version is from 2015 and is not compatible with modern OpenSSL implementations - Set PORTVERSION to the version number as reported by `httperf -V' - Increase buffer size in do_recv() to match TLS record size which can be up to 16kB [1] - When using TLS 1.1 or TLS 1.2, the first SSL_connect() may often return error, while subsequent requests work fine -- to mitigate this, try to SSL_connect() a little harder [2] Approved by: maintainer timeout PR: 230680 [1], 230681 [2] Changes: head/benchmarks/httperf/Makefile head/benchmarks/httperf/distinfo head/benchmarks/httperf/files/patch-nossl23 head/benchmarks/httperf/files/patch-src_core.c
Should be fixed per ports r519200, thanks!