From nobody Sun Sep 28 14:55:08 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cZS6P0vJPz68pqs; Sun, 28 Sep 2025 14:55:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cZS6P0KYVz3nCW; Sun, 28 Sep 2025 14:55:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759071309; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J81RFfIYOlwTZS3Fa2wkAxRCFoF+HjTfkrUD3qsEn8E=; b=i24uQffoV2xBeDhRW/90z034cj+mRtnMfv6JOZmTkGFlNxbHd8HdgjSzFuHZo4xcuqBSt/ paCNdiOiXKgzTcOQCs+gCVTsI9JI+RqVklM1w9ahdg1lpjHBCpPcO+wvHzc8iMC7FXO4HU 90COjhzhRZLPengoPwXoo5ngyjmYf3fvshAPkx6ye/P+fdvGqJ0f/k/JJEPZP+4hdfshzC Ea2wg5mIQYjCeYYWehJKhMkGquLO4Kvb4hDp+CMjux12skzogHHduwJ6c+WC/EeRdDP3DB u2LqgwrHNHa9ZaoJMgHH7qdUSwD8QZwaDU36AMI+k3lqJOtVzwKbqGuNc9UBBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759071309; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J81RFfIYOlwTZS3Fa2wkAxRCFoF+HjTfkrUD3qsEn8E=; b=QwHGRDex1N+FwQYZD+ZQhQThwuOlwYwIDRwfuZKzoI2vVBgB2jDbu1CBCF0hk8UAMji8ol EpiFVlvkzTxqZr7+8eLDXIvELNc6GSgcp1rn7V5x0qFV5sePsaH0FhOCTpPNBylfB0b+zu TVKWGHhTQ4Q2AT9AWOC8qdn7h5h/6DE3i21ly7m74MEV3lg1rYzWcmBjIqZtXL+hpcp4pf jfZW6r8y4zg5masT/krnm4GKB8dXGv2IyOjT6Zpe8rPSt22N0/8Kz7MAphL83cSfBcTDGd 8V8YE14OTVHIciToIJzhbojQlfKibdon3dgakRqkwnSBoFCxkLX94aAcUAunCA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759071309; a=rsa-sha256; cv=none; b=aTCBVgabvyGKlOMfF0hTqEhTPG+aHfEPC3umAgx/6XwN8dKGw+B8O7Kk2DVp1pi5Qb3HvV LhlgMqLbrGTAOUjTuYoHzeTovCJhVahx5ZnLgdRRakp5IPyVj7TB1Kl5F77Uq1+ndzlyKj FxWe6PU582SW7s09arZRkSxtaP1jKMPppwMO6aQmWBGMiak7acUevsUQYvviv1sxgzPTRv afDJF6pJyGG7HqIGSjUBfoXP479BhhSOzL7zyW2gWSnyro9yN/52xFki4R8djm58JHNDtM F54MuMInk031ZFS5EYXhZ1LzQj37Ieu3svv7/MdEnpKwN3Mt71oZwhWEcR15MQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cZS6N71ykz8YW; Sun, 28 Sep 2025 14:55:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58SEt8Sj045143; Sun, 28 Sep 2025 14:55:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58SEt8EN045140; Sun, 28 Sep 2025 14:55:08 GMT (envelope-from git) Date: Sun, 28 Sep 2025 14:55:08 GMT Message-Id: <202509281455.58SEt8EN045140@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: aab45f2aeec8 - main - tests/netlink: fix flaky netlink_sockets:sizes List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: aab45f2aeec803d37514b574010cb5e7cfba8249 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=aab45f2aeec803d37514b574010cb5e7cfba8249 commit aab45f2aeec803d37514b574010cb5e7cfba8249 Author: Gleb Smirnoff AuthorDate: 2025-09-28 14:49:31 +0000 Commit: Gleb Smirnoff CommitDate: 2025-09-28 14:49:31 +0000 tests/netlink: fix flaky netlink_sockets:sizes The problem is that fullsocket() creates a socket that has both send and receive buffers full and as we process messages from the receive buffer we allow the kernel to continue processing of the send buffer and a new message may arrive while the test expects that no new messages arrive. Fix that by creating a socket that has several messages in the receive buffer, but don't have any in the send buffer. --- tests/sys/netlink/netlink_socket.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/sys/netlink/netlink_socket.c b/tests/sys/netlink/netlink_socket.c index 3c2c5f857591..cee864bb9bab 100644 --- a/tests/sys/netlink/netlink_socket.c +++ b/tests/sys/netlink/netlink_socket.c @@ -211,9 +211,22 @@ ATF_TC_BODY(sizes, tc) .msg_controllen = sizeof(cbuf), }; ssize_t ss; - int fd, size, rsize; + int fd, size, msize, rsize; - fd = fullsocket(); + /* + * Create a socket with NMSGS messages in the receive buffer. + */ +#define NMSGS 5 + ATF_REQUIRE((fd = socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE)) != -1); + ATF_REQUIRE(send(fd, &hdr, sizeof(hdr), 0) == sizeof(hdr)); + ATF_REQUIRE(recv(fd, buf, sizeof(hdr), MSG_WAITALL | MSG_PEEK) == + sizeof(hdr)); + ATF_REQUIRE(ioctl(fd, FIONREAD, &msize) != -1); + for (u_int i = 0; i < NMSGS; i++) + ATF_REQUIRE(send(fd, &hdr, sizeof(hdr), 0) == sizeof(hdr)); + do { + ATF_REQUIRE(ioctl(fd, FIONREAD, &rsize) != -1); + } while (rsize < msize * (NMSGS + 1)); /* * Set NETLINK_MSG_INFO, so that later cmsg_check will check that any @@ -264,6 +277,7 @@ ATF_TC_BODY(sizes, tc) .iov_len = sizeof(buf) < rsize ? sizeof(buf) : rsize, }; ss = recvmsg(fd, &msg, 0); + ATF_REQUIRE(ss > hdr.nlmsg_len); ATF_REQUIRE(ss > NLMSG_LARGE * 9 || ss == rsize); cmsg_check(&msg); }