opnsense-src/libexec
Mark Johnston 79c342aaf8 tftpd: Address flaky tests
The tftpd tests all follow the same pattern:
1. open a UDP socket,
2. fork a child to exec tftpd, which subsequently handles requests on
   the socket,
3. use a client socket to send some message to the tftpd daemon.

However, tftpd's first action is to mark its socket as non-blocking and
then read a request from it.  If no data is present in the socket, tftpd
exits immediately with an error.  So, there is a race; we often see
tftpd test timeouts when running tests in parallel.  These timeouts also
arise periodically in CI runs.

One solution is to restructure each test to create the server socket,
then write the request to the client socket, then fork tftpd.  This
closes the race.  However, this involves a lot of churn.

This patch fixes the problem a different way, by adding a new -b flag to
tftpd which makes it block to read the initial request.  Each test is
modified to use -b, closing the race.

Reviewed by:	imp, asomers
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D47404
2024-11-03 16:47:38 +00:00
..
atf Update Makefile.depend files 2024-10-14 10:26:17 -07:00
atrun Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
blacklistd-helper Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
bootpd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
comsat Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
dma Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
fingerd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
flua flua: lposix: add fnmatch function 2024-10-28 16:31:08 +01:00
ftpd Remove "All Rights Reserved" from FreeBSD Foundation copyrights 2024-07-30 12:16:36 -04:00
getty Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
hyperv Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
kgdb crashinfo: Print stack traces for all on-CPU threads 2024-01-15 16:36:40 -05:00
mail.local Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
makewhatis.local Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mknetid Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
nuageinit Update Makefile.depend files 2024-10-14 10:26:17 -07:00
phttpget Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pppoed Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rbootd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rc ipfilter: Set ipf -T optionlist at boot 2024-11-01 11:08:14 -07:00
revnetgroup Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.rquotad Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.rstatd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.rusersd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.rwalld Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.sprayd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rtld-elf manuals: Fix dates 2024-10-28 12:26:03 -03:00
rtld-elf32 Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
save-entropy Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
smrsh Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
talkd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tcpd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tests Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tftp-proxy Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tftpd tftpd: Address flaky tests 2024-11-03 16:47:38 +00:00
ulog-helper Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ypxfr Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
Makefile nuageinit: add basic support for cloudinit. 2024-03-15 09:22:16 +01:00
Makefile.inc Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00