NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/60637: destroying a vlan interface with a configured parent interface hangs



> Date: Mon, 24 Aug 2026 20:27:18 +0000 (UTC)
> From: Emmanuel Nyarko <joe%ns1.eloisystems.com@localhost>
> 
> >Description:
> 
> The usual procedure to configuring a vlan interface is 
> 
> create the vlan interface, configure it with a vlan ID and a parent
> 
> when shutting it down, 
> 
> unconfigure it
> and 
> destroy it and this works without hanging.
> 
> but running destroy when not unconfigured hangs. 
> >How-To-Repeat:
> 
> ifconfig vlan0 create
> ifconfig vlan0 vlan 6 vlanif $interface
> ifconfig vlan0 destroy

I tried this in a VM with interface=vioif0 and it worked fine.

Can you share the output of the following, before it hangs?

1. ifconfig -a
2. dmesg
3. when it hangs, start crash(8) in another terminal (or start it
   before the hang) and run:
   - ps
   - show all tstiles/t

Also, are you running with any local patches?

> -	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();

This is definitely not a fix!  Everything here -- ifindex2ifnet,
ifnet_list, IFNET_WRITER_*, ifnet_psz -- must have access serialized
by IFNET_GLOBAL_LOCK in order to coordinate the data structures with
other threads.



Home | Main Index | Thread Index | Old Index