General Protection Fault in prelist_remove()
Hans Petter Selasky
hans.petter.selasky at bitfrost.no
Mon Sep 16 17:33:33 UTC 2013
Hi Mark,
-----Original message-----
> From:Mark Johnston <markj at freebsd.org <mailto:markj at freebsd.org> >
> Sent: Monday 16th September 2013 19:09
> To: Hans Petter Selasky <hans.petter.selasky at bitfrost.no <mailto:hans.petter.selasky at bitfrost.no> >
> Cc: freebsd-current at freebsd.org <mailto:freebsd-current at freebsd.org>
> Subject: Re: General Protection Fault in prelist_remove()
>
> On Mon, Sep 16, 2013 at 05:27:30PM +0200, Hans Petter Selasky wrote:
> > Hi,
> >
> > I caught a General protection fault in prelist_remove. Any clues what
> > this might be?
>
> Any chance you were creating or destroying interfaces around the time
> this crash happened?
Yes, I have some tunneling software running, which create and destroy tunX nodes regularly.
>
> There is no locking in the code which manipulates the prefix list (or
> any of the global NDP data structures), so it's possible to get crashes
> if, for instance, the prefix expiry callout races with in6_ifdetach() to
> delete a prefix. It's not clear what caused your crash (not without a
> crash dump at least), but I imagine it has something to do with this.
>
> I've partially fixed this at work by adding a rw lock to protect access
> to the the prefix, default router, and DAD lists. The patch is here:
> http://people.freebsd.org/˜markj/patches/ndp-locking.diff <http://people.freebsd.org/˜markj/patches/ndp-locking.diff>
>
> If anyone can review or test this patch, please let me know.
>
--HPS
More information about the freebsd-current
mailing list