kern/174236: "kldunload ipdivert" corrupts kernel

Eitan Adler lists at eitanadler.com
Fri Dec 7 18:43:02 UTC 2012


On 7 December 2012 09:50, Lutz Donnerhacke <lutz at donnerhacke.de> wrote:
> The following reply was made to PR kern/174236; it has been noted by GNATS.
>
> From: Lutz Donnerhacke <lutz at donnerhacke.de>
> To: bug-followup at 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


More information about the freebsd-bugs mailing list