[haiku-bugs] Re: [Haiku] #15016: KDL (network related) when booting on a Hades Canyon NUC8.

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Sat, 04 May 2019 16:22:06 -0000

#15016: KDL (network related) when booting on a Hades Canyon NUC8.
----------------------------------------+----------------------------
   Reporter:  bga                       |      Owner:  nobody
       Type:  bug                       |     Status:  new
   Priority:  normal                    |  Milestone:  Unscheduled
  Component:  Drivers/Network/ipro1000  |    Version:  R1/Development
 Resolution:                            |   Keywords:
 Blocked By:                            |   Blocking:
Has a Patch:  0                         |   Platform:  All
----------------------------------------+----------------------------

Comment (by bga):

 Ok, a final summary for a while as I will not be able to look into this
 this weekend (and probably next week).

 The actual double free is here:

 
http://xref.plausible.coop/source/xref/haiku/src/libs/compat/freebsd_network/compat.c#448

 Somehow it looks like there are 2 devices pointing to the same memory for
 their softc (assuming it is not just some memory corruption going on,
 although I would expect it to be less deterministic on how the crash look
 like if this was the case).

 I could not really use guarded pages to see if I could find anything else
 as it runs out of memory in my machine (64 bit build, 32 Gb of RAM).

 I also went through the code to see if I could find a place where softc
 was being arbitrarily set but it looks like it is only allocated and set
 here:

 
http://xref.plausible.coop/source/xref/haiku/src/libs/compat/freebsd_network/compat.c#287

 The other way I thought about debugging this was to keep track of all
 softc pointers and then panic if we found the same pointer in different
 devices. Depending on where the panic() was, we could figure out how this
 is happening (again, assuming it is not simply memory corruption.

 If I simply comment out the free() call for softc, I am back to the
 original spinlock KDL. I *THINK* they might be related anyway as it looks
 like softc is related to both code paths affected.

-- 
Ticket URL: <https://dev.haiku-os.org/ticket/15016#comment:16>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: