RE: General Protection Fault in prelist_remove()

From: Hans Petter Selasky <hans.petter.selasky_at_bitfrost.no>
Date: Mon, 16 Sep 2013 19:33:46 +0200
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


Received on Mon Sep 16 2013 - 15:33:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC