diff --git a/lib/isc/netmgr/tcp.c b/lib/isc/netmgr/tcp.c index d0ce958278..ab2651522a 100644 --- a/lib/isc/netmgr/tcp.c +++ b/lib/isc/netmgr/tcp.c @@ -431,8 +431,16 @@ isc_nm_listentcp(isc_nm_t *mgr, uint32_t workers, isc_sockaddr_t *iface, isc__nm_closesocket(fd); } + /* + * If any of the child sockets have failed then isc_nm_listentcp + * fails. + */ for (size_t i = 1; i < sock->nchildren; i++) { - INSIST(result == sock->children[i].result); + if (result == ISC_R_SUCCESS && + sock->children[i].result != ISC_R_SUCCESS) + { + result = sock->children[i].result; + } } atomic_store(&sock->active, true);