Date: Fri, 7 Dec 2012 13:42:29 -0500 From: Eitan Adler <lists@eitanadler.com> To: Lutz Donnerhacke <lutz@donnerhacke.de> Cc: freebsd-bugs@freebsd.org, bug-followup <bug-followup@freebsd.org> Subject: Re: kern/174236: "kldunload ipdivert" corrupts kernel Message-ID: <CAF6rxgmuishwLvjA8gV%2BvhqHRvKZf6DKCTRPSHcghnaxxWufRA@mail.gmail.com> In-Reply-To: <201212071450.qB7Eo0no031297@freefall.freebsd.org> References: <201212071450.qB7Eo0no031297@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7 December 2012 09:50, Lutz Donnerhacke <lutz@donnerhacke.de> wrote:
> The following reply was made to PR kern/174236; it has been noted by GNATS.
>
> From: Lutz Donnerhacke <lutz@donnerhacke.de>
> To: bug-followup@FreeBSD.org
> Cc:
> Subject: Re: kern/174236: "kldunload ipdivert" corrupts kernel
> Date: Fri, 7 Dec 2012 15:45:00 +0100
>
> Any module which returns an error on unload will cause the problem.
> It's not specific to ipdivert.ko or ipfw.ko or anything else.
>
> Relevant code section is:
>
> static int
> div_modevent(module_t mod, int type, void *unused)
> {
> int err = 0;
> switch (type) {
> [...]
> case MOD_QUIESCE:
> err = EPERM;
> break;
> [...]
> }
> return err;
> }
>
> Please note: Forced unload of ipdivert.ko works fine.
If you are able and willing to debug:
<avg> I'd recommend him to enter debugger and run ps there
<avg> and get backtraces of the hanging threads
<dwhite-> it sounds like a leaked lock in the error case
If not, just leaving this here for the record ;)
--
Eitan Adler
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAF6rxgmuishwLvjA8gV%2BvhqHRvKZf6DKCTRPSHcghnaxxWufRA>
