From nobody Wed Apr 8 22:42:41 2026 X-Original-To: dev-commits-ports-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 4frdPG0k13z6YvFX for ; Wed, 08 Apr 2026 22:42:42 +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" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4frdPF5lNjz3p8d for ; Wed, 08 Apr 2026 22:42:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775688161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dQtOxtauLczSsJjr37yryWVgGK4qRsLkMcGMKEFVWuc=; b=y3gJY9ZHWs/t9i+aPg5joVLVRrKhSJ0+zMEAlS6MrgTUHoXIDGKO8N8nFtSPVEBHIxLBUa VshOG6mxHtdgXOsL6S55vSL2M+Nh2ziR+2iwYaWacttkKf2PjEP4qrnaxzS/JRL/pJG/M/ 8X2HiMcEXAT0c8GFk4Pj/OOMVnu0hjvQAT5PS9OS0zxM6BXqWvOI4wHxuP3cj39IX+ojYb GXiyyK2D37xFHqNxhq1sualdRrGSadPlQT2h5yyi1RcEbgRLqB8E0/ujd6GG2KA6oDHFAT U6eTf+thjnHT8urJUQJ2kJozcl4OqoDx7nrtX3o8uW7uDY5TT7aYkvzh1zbMJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1775688161; a=rsa-sha256; cv=none; b=lnZCRqxPo3bvrITa4drkdP1SsU+t4eN42HBFDyC2Jfmh+vectkHBPaSuUPEx70+pkp9/Si A63WpazRsCY7oaSpYlpgekkpx3pZmtcsEA1mjtZKw+sTBKaXmCkzdMZqKMut0MMo3jJx7j v3ukfvjbgzWJ8GNgoP5nZZ5Iv9p+dM0u9FxMBpS7VNsydeZh+dv72s1JVMD5UgUVOMJuR+ 0mmpEMty1VwT//AhjdBCdymbbo4sxzswdveCt91atVKmJjLTGAnY9WNODSUE47dozlciIl DwGsve8qUh/GubcQPHXOjVd3sYrkVOATDxkiF+FTM9uydIEheEYGPSosZ7x7Sw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775688161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dQtOxtauLczSsJjr37yryWVgGK4qRsLkMcGMKEFVWuc=; b=Kt6Gb8MK8XwRT68OvJumVt1SxnD/v3WhM6jJRcR1itge4JN8P/P8FUOmaR8+OdGMeozRVr WazmdcPIen/6PKUblkBFJVjyySGUcYHlUpuzqsI08BNGw7gkeF6+TE2akmAMB2+o3746ch 41b3xY61K7anTqGopbw22tDCEZmKt5WfGK6nXGlCP1BgrV+MTuKzlkmeRy0Lna4p35FgNZ 79U4x/pU2edGJqGIKQGF7qPc82r3V+rBezu1THa1Yr4LEZZzvGziiQDBJ9slHUv9AB8jY/ nPO+lAjQhLWgKeOd6HRjjpk1MAEuX8hfebRqHA9vlBOe4+CeDc2vcCIl1kmuZw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4frdPF4z1hzmsb for ; Wed, 08 Apr 2026 22:42:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 215e8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 08 Apr 2026 22:42:41 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Generic Rikka From: Vladimir Druzenko Subject: git: db6d744b6034 - main - net/ucx: Fix mm signal socket binding on FreeBSD List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vvd X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: db6d744b60348636c7a87c3c7fc181afd9b71994 Auto-Submitted: auto-generated Date: Wed, 08 Apr 2026 22:42:41 +0000 Message-Id: <69d6d9e1.215e8.1b444ca0@gitrepo.freebsd.org> The branch main has been updated by vvd: URL: https://cgit.FreeBSD.org/ports/commit/?id=db6d744b60348636c7a87c3c7fc181afd9b71994 commit db6d744b60348636c7a87c3c7fc181afd9b71994 Author: Generic Rikka AuthorDate: 2026-04-08 22:37:32 +0000 Commit: Vladimir Druzenko CommitDate: 2026-04-08 22:42:19 +0000 net/ucx: Fix mm signal socket binding on FreeBSD Replace Linux-style UNIX domain socket autobind logic in the mm signaling path with explicit pathname-based binding on FreeBSD and remove the socket path during cleanup. This fixes FreeBSD runtime failures in the mm shared-memory signaling path. PR: 293867 Sponsored by: UNIS Labs MFH: 2026Q2 : Update => Changelog: PR: Sponsored by: UNIS Labs --- net/ucx/Makefile | 1 + net/ucx/files/patch-src_uct_sm_mm_base_mm__iface.c | 87 ++++++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/net/ucx/Makefile b/net/ucx/Makefile index f7cdf5e1385b..0df5bef86db1 100644 --- a/net/ucx/Makefile +++ b/net/ucx/Makefile @@ -1,5 +1,6 @@ PORTNAME= ucx DISTVERSION= 1.20.0 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://github.com/openucx/ucx/releases/download/v${DISTVERSION}/ diff --git a/net/ucx/files/patch-src_uct_sm_mm_base_mm__iface.c b/net/ucx/files/patch-src_uct_sm_mm_base_mm__iface.c new file mode 100644 index 000000000000..000376248199 --- /dev/null +++ b/net/ucx/files/patch-src_uct_sm_mm_base_mm__iface.c @@ -0,0 +1,87 @@ +--- src/uct/sm/mm/base/mm_iface.c.orig 2026-03-14 22:02:10 UTC ++++ src/uct/sm/mm/base/mm_iface.c +@@ -19,6 +19,9 @@ + #include + #include + #include ++#include ++#include ++#include + + + /* Maximal number of events to clear from the signaling pipe in single call */ +@@ -681,6 +684,10 @@ static ucs_status_t uct_mm_iface_create_signal_fd(uct_ + ucs_status_t status; + socklen_t addrlen; + struct sockaddr_un bind_addr; ++#if defined(__FreeBSD__) ++ const char *tmpdir; ++ int path_len; ++#endif + int ret; + + /* Create a UNIX domain socket to send and receive wakeup signal from remote processes */ +@@ -700,10 +707,33 @@ static ucs_status_t uct_mm_iface_create_signal_fd(uct_ + /* Bind the signal socket to automatic address */ + bind_addr.sun_family = AF_UNIX; + memset(bind_addr.sun_path, 0, sizeof(bind_addr.sun_path)); ++#if defined(__FreeBSD__) ++ tmpdir = ucs_get_tmpdir(); ++ path_len = snprintf(bind_addr.sun_path, sizeof(bind_addr.sun_path), ++ "%s/ucx_mm.%ld.%p", ++ tmpdir, (long)getpid(), (void*)iface); ++ if ((path_len < 0) || ((size_t)path_len >= sizeof(bind_addr.sun_path))) { ++ ucs_error("Failed to generate unix domain socket path"); ++ status = UCS_ERR_IO_ERROR; ++ goto err_close; ++ } ++ ++ unlink(bind_addr.sun_path); ++ ++ addrlen = offsetof(struct sockaddr_un, sun_path) + path_len + 1; ++ ret = bind(iface->signal_fd, (struct sockaddr*)&bind_addr, addrlen); ++#else ++ /* Linux autobind behavior */ + ret = bind(iface->signal_fd, (struct sockaddr*)&bind_addr, sizeof(sa_family_t)); ++#endif + if (ret < 0) { + ucs_error("Failed to auto-bind unix domain socket: %m"); + status = UCS_ERR_IO_ERROR; ++#if defined(__FreeBSD__) ++ if (bind_addr.sun_path[0] != '\0') { ++ unlink(bind_addr.sun_path); ++ } ++#endif + goto err_close; + } + +@@ -718,6 +748,11 @@ static ucs_status_t uct_mm_iface_create_signal_fd(uct_ + if (ret < 0) { + ucs_error("Failed to retrieve unix domain socket address: %m"); + status = UCS_ERR_IO_ERROR; ++#if defined(__FreeBSD__) ++ if (bind_addr.sun_path[0] != '\0') { ++ unlink(bind_addr.sun_path); ++ } ++#endif + goto err_close; + } + +@@ -904,6 +939,17 @@ static UCS_CLASS_CLEANUP_FUNC(uct_mm_iface_t) + + ucs_mpool_put(self->last_recv_desc); + ucs_mpool_cleanup(&self->recv_desc_mp, 1); ++ ++#if defined(__FreeBSD__) ++ { ++ const struct sockaddr_un *sun = ++ (const struct sockaddr_un *)ucs_unaligned_ptr(&self->recv_fifo_ctl->signal_sockaddr); ++ if ((self->recv_fifo_ctl->signal_addrlen > offsetof(struct sockaddr_un, sun_path)) && ++ (sun->sun_path[0] != '\0')) { ++ unlink(sun->sun_path); ++ } ++ } ++#endif + close(self->signal_fd); + uct_iface_mem_free(&self->recv_fifo_mem); + ucs_arbiter_cleanup(&self->arbiter);