[OmniOS-discuss] kernel panic

Dan McDonald danmcd at omniti.com
Mon Sep 19 17:33:02 UTC 2016


> On Sep 19, 2016, at 11:51 AM, Michael Rasmussen <mir at miras.org> wrote:
> 
> On Mon, 19 Sep 2016 11:35:33 -0400
> Dan McDonald <danmcd at omniti.com> wrote:
> 
>> 
>> I see you have a vmdump.2 present.  Can you make that downloadable somewhere? I'd like to take a closer look.
>> 
> ftp://ftp.datanom.net/pub/vmdump.2

This process:

R  15776   2671     10     10      0 0x4a004000 ffffff075dadd0a0 perl
        T  0xffffff072006ec60 <TS_SLEEP>

Hit a page fault:

> 0xffffff071b9a8400::findstack -v
stack pointer for thread ffffff071b9a8400: ffffff00206eb1f0
  ffffff00206eb290 page_ctr_sub_internal+0x65(0, 3, ffffff0012581270, 1)
  ffffff00206eb2f0 page_ctr_sub+0x7e(0, 3, ffffff0012581270, 1)
  ffffff00206eb410 page_get_mnode_freelist+0x3ff(0, 4, 3, 0, 202000b)
  ffffff00206eb4e0 page_get_freelist+0x16d(286, 0, baddcafebaddcafe, 
  fffffffffb934d9f, ffffff00206eb510, ffffff06e6fd8d00, ffffffff00000008)
  ffffff00206eb550 param_preset()
  ffffff00206eb5e0 0xfffffffffb8480fc()
  ffffff00206eb6f0 trap+0xa30(ffffff00206eb700, ffffff06e6fd8d00, 2)
  ffffff00206eb700 0xfffffffffb8001d6()
  ffffff00206eb8a0 fop_getpage+0x3f(ffffff06e6fd8d00, 1fffffe0ed7a1000, 1000, 
  ffffff00206eba90, ffffff00206eb9f0, 1000, ffffff0760c25938, 8178000, 
  ffffff0000000002, ffffff071db23ad8, 0)
  ffffff00206eb960 anon_getpage+0x18d(ffffff00206eba08, ffffff00206eba90, 
  ffffff00206eb9f0, 1000, ffffff0760c25938, 8178000, 2, ffffff071db23ad8)
  ffffff00206eba80 segvn_faultpage+0x168(ffffff07213e2020, ffffff0760c25938, 
  8178000, 116000, 0, ffffff00206ebb50, 0, 1, 2, 1)
  ffffff00206ebc50 segvn_fault+0x8e6(ffffff07213e2020, ffffff0760c25938, 8178000
  , 1000, 1, 2)
  ffffff00206ebd60 as_fault+0x31a(ffffff07213e2020, ffffff072245adc8, 817824c, 1
  , 1, 2)
  ffffff00206ebdf0 pagefault+0x96(817824c, 1, 2, 0)
  ffffff00206ebf00 trap+0x2c7(ffffff00206ebf10, 817824c, 2)
  ffffff00206ebf10 0xfffffffffb8001d6()
> 

And then trapped further while doing fop_getpage().  What's your swap device?

I also couldn't help but notice this:

> ffffff06e6fd8d00::print vnode_t v_vfsp
v_vfsp = 0xbaddcafebaddcafe
> 


WHOA!

> ffffff06e6fd8d00::whatis
ffffff06e6fd8d00 is ffffff06e6fd85c0+740, allocated from rootnex_dmahdl
> 


So fop_getpage() was sent a vnode_t that at least had one field uninitialized (0xbaddcafe).  Turns out the whole wad is:

> ffffff06e6fd8d00/10P
0xffffff06e6fd8d00:             0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe
> 

The anon cache entry fed into anon_getpage seems legit, but corrupt somehow:

> ffffff00206eba08/P
0xffffff00206eba08:             0xffffff076bd0a5c0
> 0xffffff076bd0a5c0::print "struct anon"
{
    an_vp = 0xffffff06e6fd8d00
    an_pvp = 0
    an_off = 0x1fffffe0ed7a1000
    an_poff = 0
    an_hash = 0
    an_refcnt = 0x1
}
> 0xffffff06e6fd8d00::whatis
ffffff06e6fd8d00 is ffffff06e6fd85c0+740, allocated from rootnex_dmahdl
> 0xffffff06e6fd8d00/20P    
0xffffff06e6fd8d00:             0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
                0xbaddcafebaddcafe0xbaddcafebaddcafe0xbaddcafebaddcafe
> 0xffffff076bd0a5c0::whatis
ffffff076bd0a5c0 is allocated from anon_cache
> 

Generally speaking, this is memory corruption.  What caused it I'm not sure, however.

Dan




More information about the OmniOS-discuss mailing list