Intermittent v9.18 build fails on Fedora COPR buildsys, always in `netmgr_test` ?

PGNet Dev pgnet.dev at gmail.com
Tue Aug 30 16:41:23 UTC 2022


> The netmgr unit tests are not meant to run fully in the CI as some of it are time sensitive.

a COPR dev managed to provide the FAIL'd test log from a manual COPR build,

	cat ./var/lib/mock/fedora-36-x86_64-1661812240.003689/root/builddir/build/BUILD/bind-9.18.5/build/tests/isc/netmgr_test.log
		[==========] Running 83 test(s).
		[ RUN      ] mock_listenudp_uv_udp_open
		[       OK ] mock_listenudp_uv_udp_open
		[ RUN      ] mock_listenudp_uv_udp_bind
		[       OK ] mock_listenudp_uv_udp_bind
		[ RUN      ] mock_listenudp_uv_udp_recv_start
		[       OK ] mock_listenudp_uv_udp_recv_start
		[ RUN      ] mock_udpconnect_uv_udp_open
		[       OK ] mock_udpconnect_uv_udp_open
		[ RUN      ] mock_udpconnect_uv_udp_bind
		[       OK ] mock_udpconnect_uv_udp_bind
		[ RUN      ] mock_udpconnect_uv_udp_connect
		[       OK ] mock_udpconnect_uv_udp_connect
		[ RUN      ] mock_udpconnect_uv_recv_buffer_size
		[       OK ] mock_udpconnect_uv_recv_buffer_size
		[ RUN      ] mock_udpconnect_uv_send_buffer_size
		[       OK ] mock_udpconnect_uv_send_buffer_size
		[ RUN      ] udp_noop
		[       OK ] udp_noop
		[ RUN      ] udp_noresponse
		[       OK ] udp_noresponse
		[ RUN      ] udp_timeout_recovery
		[       OK ] udp_timeout_recovery
		[ RUN      ] udp_recv_one
		[       OK ] udp_recv_one
		[ RUN      ] udp_recv_two
		[       OK ] udp_recv_two
		[ RUN      ] udp_recv_send
		[       OK ] udp_recv_send
		[ RUN      ] udp_recv_half_send
		[       OK ] udp_recv_half_send
		[ RUN      ] udp_half_recv_send
		[       OK ] udp_half_recv_send
		[ RUN      ] udp_half_recv_half_send
		[       OK ] udp_half_recv_half_send
		[ RUN      ] tcp_noop
		[       OK ] tcp_noop
		[ RUN      ] tcp_noresponse
		[       OK ] tcp_noresponse
		[ RUN      ] tcp_timeout_recovery
		[       OK ] tcp_timeout_recovery
		[ RUN      ] tcp_recv_one
		[       OK ] tcp_recv_one
		[ RUN      ] tcp_recv_two
		[       OK ] tcp_recv_two
		[ RUN      ] tcp_recv_send
		[       OK ] tcp_recv_send
		[ RUN      ] tcp_recv_half_send
		[       OK ] tcp_recv_half_send
		[ RUN      ] tcp_half_recv_send
		[       OK ] tcp_half_recv_send
		[ RUN      ] tcp_half_recv_half_send
		[       OK ] tcp_half_recv_half_send
		[ RUN      ] tcp_recv_send_sendback
		[       OK ] tcp_recv_send_sendback
		[ RUN      ] tcp_recv_half_send_sendback
		[       OK ] tcp_recv_half_send_sendback
		[ RUN      ] tcp_half_recv_send_sendback
		[       OK ] tcp_half_recv_send_sendback
		[ RUN      ] tcp_half_recv_half_send_sendback
		[       OK ] tcp_half_recv_half_send_sendback
		[ RUN      ] tcp_recv_one_quota
		[       OK ] tcp_recv_one_quota
		[ RUN      ] tcp_recv_two_quota
		[       OK ] tcp_recv_two_quota
		[ RUN      ] tcp_recv_send_quota
		[       OK ] tcp_recv_send_quota
		[ RUN      ] tcp_recv_half_send_quota
		[       OK ] tcp_recv_half_send_quota
		[ RUN      ] tcp_half_recv_send_quota
		[       OK ] tcp_half_recv_send_quota
		[ RUN      ] tcp_half_recv_half_send_quota
		[       OK ] tcp_half_recv_half_send_quota
		[ RUN      ] tcp_recv_send_quota_sendback
		[       OK ] tcp_recv_send_quota_sendback
		[ RUN      ] tcp_recv_half_send_quota_sendback
		[       OK ] tcp_recv_half_send_quota_sendback
		[ RUN      ] tcp_half_recv_send_quota_sendback
		[       OK ] tcp_half_recv_send_quota_sendback
		[ RUN      ] tcp_half_recv_half_send_quota_sendback
		[       OK ] tcp_half_recv_half_send_quota_sendback
		[ RUN      ] tcpdns_recv_one
		[       OK ] tcpdns_recv_one
		[ RUN      ] tcpdns_recv_two
		[       OK ] tcpdns_recv_two
		[ RUN      ] tcpdns_noop
		[       OK ] tcpdns_noop
		[ RUN      ] tcpdns_noresponse
		[       OK ] tcpdns_noresponse
		[ RUN      ] tcpdns_timeout_recovery
		[       OK ] tcpdns_timeout_recovery
		[ RUN      ] tcpdns_recv_send
		[       OK ] tcpdns_recv_send
		[ RUN      ] tcpdns_recv_half_send
		[       OK ] tcpdns_recv_half_send
		[ RUN      ] tcpdns_half_recv_send
		[       OK ] tcpdns_half_recv_send
		[ RUN      ] tcpdns_half_recv_half_send
		[       OK ] tcpdns_half_recv_half_send
		[ RUN      ] tls_noop
		[       OK ] tls_noop
		[ RUN      ] tls_noresponse
		[       OK ] tls_noresponse
		[ RUN      ] tls_timeout_recovery
		[       OK ] tls_timeout_recovery
		[ RUN      ] tls_recv_one
		[       OK ] tls_recv_one
		[ RUN      ] tls_recv_two
		[       OK ] tls_recv_two
		[ RUN      ] tls_recv_send
		[       OK ] tls_recv_send
		[ RUN      ] tls_recv_half_send
		[       OK ] tls_recv_half_send
		[ RUN      ] tls_half_recv_send
		[       OK ] tls_half_recv_send
		[ RUN      ] tls_half_recv_half_send
		[       OK ] tls_half_recv_half_send
		[ RUN      ] tls_recv_send_sendback
		[       OK ] tls_recv_send_sendback
		[ RUN      ] tls_recv_half_send_sendback
		[       OK ] tls_recv_half_send_sendback
		[ RUN      ] tls_half_recv_send_sendback
		[       OK ] tls_half_recv_send_sendback
		[ RUN      ] tls_half_recv_half_send_sendback
		[       OK ] tls_half_recv_half_send_sendback
		[ RUN      ] tls_recv_one_quota
		[       OK ] tls_recv_one_quota
		[ RUN      ] tls_recv_two_quota
		[       OK ] tls_recv_two_quota
		[ RUN      ] tls_recv_send_quota
		[       OK ] tls_recv_send_quota
		[ RUN      ] tls_recv_half_send_quota
		../../../lib/isc/netmgr/tlsstream.c:910: REQUIRE(((mgr) != ((void *)0) && ((const isc__magic_t *)(mgr))->magic == ((('N') << 24 | ('E') << 16 | ('T') << 8 | ('M'))))) failed, back trace
		/builddir/build/BUILD/bind-9.18.5/build/lib/isc/.libs/libisc-9.18.5.so(+0x3a734)[0x7f00740fa734]
		/builddir/build/BUILD/bind-9.18.5/build/lib/isc/.libs/libisc-9.18.5.so(isc_assertion_failed+0x10)[0x7f00740f9ed0]
		/builddir/build/BUILD/bind-9.18.5/build/lib/isc/.libs/libisc-9.18.5.so(isc_nm_tlsconnect+0x139)[0x7f007412cf49]
		/builddir/build/BUILD/bind-9.18.5/build/tests/isc/.libs/netmgr_test(+0xcf39)[0x55f50bf7df39]
		/builddir/build/BUILD/bind-9.18.5/build/tests/isc/.libs/netmgr_test(+0x96e9)[0x55f50bf7a6e9]
		/builddir/build/BUILD/bind-9.18.5/build/lib/isc/.libs/libisc-9.18.5.so(isc__trampoline_run+0x19)[0x7f007411ca69]
		/lib64/libc.so.6(+0x8ce2d)[0x7f0073f05e2d]
		/lib64/libc.so.6(+0x1121b0)[0x7f0073f8b1b0]
		../../tests/unit-test-driver.sh: line 36: 36467 Aborted                 (core dumped) "${TEST_PROGRAM}"
		FAIL netmgr_test (exit status: 134)

where,

	cat lib/isc/netmgr/tlsstream.c
		...
		void
		isc_nm_tlsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
		          isc_nm_cb_t cb, void *cbarg, isc_tlsctx_t *ctx,
		          isc_tlsctx_client_session_cache_t *client_sess_cache,
		          unsigned int timeout, size_t extrahandlesize) {
		    isc_nmsocket_t *nsock = NULL;
		#if defined(NETMGR_TRACE) && defined(NETMGR_TRACE_VERBOSE)
		    fprintf(stderr, "TLS: isc_nm_tlsconnect(): in net thread: %s\n",
		        isc__nm_in_netthread() ? "yes" : "no");
		#endif /* NETMGR_TRACE */

910		    REQUIRE(VALID_NM(mgr));

		    nsock = isc_mem_get(mgr->mctx, sizeof(*nsock));
		    isc__nmsocket_init(nsock, mgr, isc_nm_tlssocket, local);
		    nsock->extrahandlesize = extrahandlesize;
		    nsock->result = ISC_R_UNSET;
		    nsock->connect_cb = cb;
		    nsock->connect_cbarg = cbarg;
		    nsock->connect_timeout = timeout;
		    isc_tlsctx_attach(ctx, &nsock->tlsstream.ctx);
		    atomic_init(&nsock->client, true);
		    if (client_sess_cache != NULL) {
		        INSIST(isc_tlsctx_client_session_cache_getctx(
		                   client_sess_cache) == ctx);
		        isc_tlsctx_client_session_cache_attach(
		            client_sess_cache, &nsock->tlsstream.client_sess_cache);
		    }

		    isc_nm_tcpconnect(mgr, local, peer, tcp_connected, nsock,
		              nsock->connect_timeout, 0);
		}
		...


At first glance, that looks (?) like DOH/DOT code ...


More information about the bind-users mailing list