[Bug 295614] tun_destroy() holds ifnet_detach_sxlock while sleeping on tun_cv

[email protected] Thu, 28 May 2026 09:28:16 +0000
Newsgroups gmane.os.freebsd.devel.net
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295614

Zhenlei Huang <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #7 from Zhenlei Huang <[email protected]> ---
(In reply to Olivier Cochard from comment #0)

> The third command never returns. From that point on, every subsequent `ifconfig
> <anything> destroy`, `jail -R` that touches a cloned interface, and `jls` (via the
> allprison cascade described below) blocks in uninterruptible-style sleep. SIGKILL on
> the wedged ifconfig does not break it. Only a reboot recover

I think the right approach is killing the processes those open tun(4) / tap(4)
devices, but not killing the `ifconfig` which is destroying the interface. In
your case it is,

```
kill <pid of sleep 99999 < /dev/tun1 &>
```

Initially I thought given the interface is to be destroyed ( by admin ), it
sounds not a good idea to let the processes blocks indefinitely. But it appears
that sending a kill/term signal to the process on destroy is also not a good
idea. So probably the best approach is letting the admin decide what to do ?

Maybe the process should listen on some event like this, `the interface is
about to be destroyed`, and close the file description gracefully.

-- 
You are receiving this mail because:
You are the assignee for the bug.