FreeBSD 7.3/i386 libalias related panic

Artem Kim artem_kim at inbox.ru
Thu Apr 8 16:32:45 UTC 2010


On Tuesday 06 April 2010 23:24:52 Peter Jeremy wrote:
> On 2010-Apr-06 00:37:51 +0400, Artem Kim <artem_kim at inbox.ru> wrote:
> >Fatal trap 12: page fault while in kernel mode
> >cpuid = 1; apic id = 01
> >fault virtual address   = 0x7d4c
> 
> This suggests an offset from a NULL pointer.
> 
> >0x8069ac41 is in DeleteLink
> > (/usr/src/sys/netinet/libalias/alias_db.c:857). 852     {
> >853             struct libalias *la = lnk->la;
> >854
> >855             LIBALIAS_LOCK_ASSERT(la);
> >856     /* Don't do anything if the link is marked permanent */
> >857             if (la->deleteAllLinks == 0 && lnk->flags &
> > LINK_PERMANENT) 858                     return;
> >
> >(kgdb) bt
> >#7  0x8069ac41 in DeleteLink (lnk=0x84e0f980) at
> > /usr/src/sys/netinet/libalias/alias_db.c:853 #8  0x8069ae3e in
> > HouseKeeping (la=0x84874000) at
> > /usr/src/sys/netinet/libalias/alias_db.c:843
> 
> In the absence of someone who's seen this before, my initial guess is
> that lnk->la is corrupted in frame #7.  I'd start with 'print *lnk' at
> frame #7 to confirm this.  If so, you could go up to frame #8 and work
> through the linkTableOut chain to find which entry is corrupt - but
> actually finding _why_ it's corrupt will take a lot more work.
> 
> If this is repeatable, I'd suggest adding WITNESS, WITNESS_SKIPSPIN
> and INVARIANTS and see if you can get the problem to show up closer
> to its cause.
> 

I have three almost nearly identical machines (two HP DL-140G3 and a HP 
DL-160G5). These machines have approximately the same setting.

Problem occurred only on one (140G3).

Two errors occurred in intervals of one hour. Last error happened three days 
ago. Until now, the problem is not repeated.
Introducing additional options to debug the kernel - it is very difficult to 
machine is under heavy load. On a test desk, I can not reproduce the problem.

(kgdb) f 7
#7  0x8069ac41 in DeleteLink (lnk=0x84e0f980) at 
/usr/src/sys/netinet/libalias/alias_db.c:853
853             struct libalias *la = lnk->la;
(kgdb) print *lnk
$1 = {la = 0x0, src_addr = {s_addr = 1}, dst_addr = {s_addr = 0}, alias_addr = 
{s_addr = 0}, proxy_addr = {s_addr = 0}, src_port = 0, dst_port = 0,
  alias_port = 0, proxy_port = 0, server = 0x0, link_type = 0, flags = 0, 
pflags = 0, timestamp = 0, expire_time = 0, list_out = {le_next = 0x0,
    le_prev = 0x853dcdb4}, list_in = {le_next = 0x0, le_prev = 0x84861c48}, 
data = {frag_ptr = 0x0, frag_addr = {s_addr = 0}, tcp = 0x0}}


I'm sorry I do not understand what I should do next.


More information about the freebsd-stable mailing list