The following reply was made to PR kern/60637; it has been noted by GNATS.
From: [email protected]
To: [email protected]
Cc:
Subject: Re: kern/60637: destroying a vlan interface with a configured parent
interface hangs
Date: Tue, 25 Aug 2026 12:34:50 +0000
On Mon, Aug 24, 2026 at 08:30:00PM +0000, [email protected] wrote:
> Thank you very much for your problem report.
> It has the internal identification `kern/60637'.
> The individual assigned to look at your
> report is: kern-bug-people.
>
> >Category: kern
> >Responsible: kern-bug-people
> >Synopsis: destroying a vlan interface with a configured parent interface hangs
> >Arrival-Date: Mon Aug 24 20:30:00 +0000 2026
Hi,
The attched patch fixes this issue.
Index: sys/net/if.c
===================================================================
RCS file: /cvsroot/src/sys/net/if.c,v
retrieving revision 1.538
diff -u -r1.538 if.c
--- sys/net/if.c 14 May 2026 08:05:48 -0000 1.538
+++ sys/net/if.c 25 Aug 2026 12:27:04 -0000
@@ -1356,12 +1356,10 @@
* from pserialize read sections. Note that we can't do
* psref_target_destroy here. See below.
*/
- IFNET_GLOBAL_LOCK();
ifindex2ifnet[ifp->if_index] = NULL;
TAILQ_REMOVE(&ifnet_list, ifp, if_list);
IFNET_WRITER_REMOVE(ifp);
pserialize_perform(ifnet_psz);
- IFNET_GLOBAL_UNLOCK();
if (ifp->if_slowtimo != NULL) {
struct if_slowtimo_data *isd = ifp->if_slowtimo_data;
However, I might not be fully convinced yet if that's the best solution
but i tracked down the hang and realized the vlan thread running if_detach forever waits
on the "BIG LOCK" IFNET_GLOBAL_LOCK() because another thread is using it.
My guess is maybe this lock doesn't need to be held here as it is causes a deadlock on vlan interfaces
when destroying. or some other thread needs to release hold unto the BIG lock
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.