[Bug 264981] jail with vnet interface stuck in dying state
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 264981] Invisible interface after destroying vnet jail"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 17 Dec 2022 13:38:28 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264981
Zhenlei Huang <zlei.huang@gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |zlei.huang@gmail.com
--- Comment #6 from Zhenlei Huang <zlei.huang@gmail.com> ---
@bz also encountered this issue and reported in mailing list:
https://lists.freebsd.org/archives/freebsd-jail/2022-December/000156.html
I'll quote from the mail about some analyzations by me:
> After DDB debugging and tracing , it seems that is triggered by a combine of [1] and [2]
>
> [1] https://reviews.freebsd.org/rGfec8a8c7cbe4384c7e61d376f3aa5be5ac895915
> [2] https://reviews.freebsd.org/rGeb93b99d698674e3b1cc7139fda98e2b175b8c5b
>
> In [1] the per-VNET uma zone is shared with the global one.
> `pcbinfo->ipi_zone = pcbstor->ips_zone;`
>
> In [2] unref `inp->inp_cred` is deferred called in inpcb_dtor() by uma_zfree_smr() .
>
> Unfortunately inps freed by uma_zfree_smr() are cached and inpcb_dtor() is not called immediately ,
> thus leaking `inp->inp_cred` ref and hence `prison->pr_ref`.
>
> And it is also not possible to free up the cache by per-VNET SYSUNINIT tcp_destroy / udp_destroy / rip_destroy.
--
You are receiving this mail because:
You are the assignee for the bug.