Date: Fri, 7 Dec 2012 18:50:01 GMT From: Eitan Adler <lists@eitanadler.com> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/174236: "kldunload ipdivert" corrupts kernel Message-ID: <201212071850.qB7Io17U040917@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/174236; it has been noted by GNATS.
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
Date: Fri, 7 Dec 2012 13:42:29 -0500
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?201212071850.qB7Io17U040917>
