Skip site navigation (1)Skip section navigation (2)
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>