Frank Hofmann wrote:
 
> On Mon, 16 Jun 2008, Juergen Keil wrote:
> 
> > For that reason I did suggest to Kyle to try to reproduce this hsfs mount
> > panic with kmem heap checking enabled.
> >
> > Add the following line to /etc/system, reboot, retry to reproduce the hsfs
> > mount panic:
> >
> >   set kmem_flags=0xf
> 
> Good idea.

Ok, I can actually reproduce that panic using last week's opensolaris bits.

All I have to do is try and "mount -F hsfs" a non-existent slice; e.g. using
a CD containing OpenSolaris 2008.05, mount -F hsfs /dev/dsk/c1t1d0s4 /mnt
("mount -F hsfs /dev/dsk/c1t1d0p0 /mnt" should work, though):


panic[cpu1]/thread=ffffff0348445720: 
BAD TRAP: type=e (#pf Page fault) rp=ffffff00108bb990 addr=40 occurred in module
 "genunix" due to a NULL pointer dereference


mount: 
#pf Page fault
Bad kernel fault at addr=0x40
pid=19108, pc=0xfffffffffba92633, sp=0xffffff00108bba80, eflags=0x10207
cr0: 80050033<pg,wp,ne,et,mp,pe> cr4: 6f8<xmme,fxsr,pge,mce,pae,pse,de>
cr2: 40
cr3: 22f819000
cr8: c

        rdi: fffffffffbca88a0 rsi:                1 rdx:                8
        rcx:                0  r8: fffffffffbca8a70  r9:                0
        rax:                0 rbx:                0 rbp: ffffff00108bbaa0
        r10: ffffff02d24a6500 r11: ffffff00108bb680 r12:       1b00000103
        r13: ffffff00108bbc08 r14:       1b00000103 r15:               10
        fsb:                0 gsb: ffffff02d2e75540  ds:               4b
         es:               4b  fs:                0  gs:              1c3
        trp:                e err:                0 rip: fffffffffba92633
         cs:               30 rfl:            10207 rsp: ffffff00108bba80
         ss:               38

ffffff00108bb870 unix:die+c8 ()
ffffff00108bb980 unix:trap+13c3 ()
ffffff00108bb990 unix:_cmntrap+e9 ()
ffffff00108bbaa0 genunix:vfs_devismounted+23 ()
ffffff00108bbbc0 hsfs:hs_getmdev+176 ()
ffffff00108bbc60 hsfs:hsfs_mount+195 ()
ffffff00108bbc90 genunix:fsop_mount+21 ()
ffffff00108bbe00 genunix:domount+9ff ()
ffffff00108bbe80 genunix:mount+d2 ()
ffffff00108bbec0 genunix:syscall_ap+8f ()
ffffff00108bbf10 unix:brand_sys_syscall32+197 ()

syncing file systems...
 done
dumping to /dev/dsk/c9t0d0s1, offset 860356608, content: kernel
> $C
ffffff00108bbaa0 vfs_devismounted+0x23(1b00000103)
ffffff00108bbbc0 hs_getmdev+0x176(ffffff02dcf8a508, 804729e, 101, 
ffffff00108bbc08, ffffff00108bbc3c, ffffff0315246708)
ffffff00108bbc60 hsfs_mount+0x195(ffffff02dcf8a508, ffffff02ffea2c00, 
ffffff00108bbe30, ffffff0315246708)
ffffff00108bbc90 fsop_mount+0x21(ffffff02dcf8a508, ffffff02ffea2c00, 
ffffff00108bbe30, ffffff0315246708)
ffffff00108bbe00 domount+0x9ff(0, ffffff00108bbe30, ffffff02ffea2c00, 
ffffff0315246708, ffffff00108bbe28)
ffffff00108bbe80 mount+0xd2(ffffff0347a60fd8, ffffff00108bbeb8)
ffffff00108bbec0 syscall_ap+0x8f()
ffffff00108bbf10 sys_syscall32+0x101()



            ============================================================


The panic with "kmem_flags=0xf" is more interesting:

> ::status
debugging crash dump vmcore.5 (64-bit) from tiger2
operating system: 5.11 snv_93_jk (i86pc)
panic message: kernel heap corruption detected
dump content: kernel pages only
kernel memory allocator: 
invalid free: buffer not in cache
buffer=ffffff0010455e30  bufctl=0  cache: kmem_alloc_256

panic[cpu1]/thread=ffffff03a05ad060: 
kernel heap corruption detected


ffffff0010455a20 genunix:kmem_error+497 ()
ffffff0010455a40 genunix:kmem_free+d6 ()
ffffff0010455bb0 hsfs:hs_mountfs+8b9 ()
ffffff0010455c60 hsfs:hsfs_mount+1e9 ()
ffffff0010455c90 genunix:fsop_mount+21 ()
ffffff0010455e00 genunix:domount+9ff ()
ffffff0010455e80 genunix:mount+d2 ()
ffffff0010455ec0 genunix:syscall_ap+8f ()
ffffff0010455f10 unix:brand_sys_syscall32+197 ()

syncing file systems...
 done
dumping to /dev/dsk/c9t0d0s1, offset 860356608, content: kernel

> $C
ffffff0010455980 vpanic()
ffffff0010455a20 kmem_error+0x497(1, ffffff02ce62b020, ffffff0010455e30)
ffffff0010455a40 kmem_free+0xd6(ffffff0010455e30, e8)
ffffff0010455bb0 hs_mountfs+0x8b9(ffffff03a5096dc8, 1b00000104, 
ffffff03a2b9f140, 6100, 0, ffffff034ed39978, 0)
ffffff0010455c60 hsfs_mount+0x1e9(ffffff03a5096dc8, ffffff02f09e8900, 
ffffff0010455e30, ffffff034ed39978)
ffffff0010455c90 fsop_mount+0x21(ffffff03a5096dc8, ffffff02f09e8900, 
ffffff0010455e30, ffffff034ed39978)
ffffff0010455e00 domount+0x9ff(0, ffffff0010455e30, ffffff02f09e8900, 
ffffff034ed39978, ffffff0010455e28)
ffffff0010455e80 mount+0xd2(ffffff02e97cce38, ffffff0010455eb8)
ffffff0010455ec0 syscall_ap+0x8f()
ffffff0010455f10 sys_syscall32+0x101()

> hs_mountfs+0x8b9::dis
hs_mountfs+0x88f:               movq   -0x78(%rbp),%r8
hs_mountfs+0x893:               xorq   %r9,%r9
hs_mountfs+0x896:               call   +0x34c9f65       <fop_close>
hs_mountfs+0x89b:               movq   0x30(%rsp),%rdi
hs_mountfs+0x8a0:               call   +0x34c700b       <vn_rele>
hs_mountfs+0x8a5:               testq  %r13,%r13
hs_mountfs+0x8a8:               je     +0xf     <hs_mountfs+0x8b9>
hs_mountfs+0x8aa:               movq   %r13,%rdi
hs_mountfs+0x8ad:               movq   $0xe8,%rsi
hs_mountfs+0x8b4:               call   +0x33e0b57       <kmem_free>
hs_mountfs+0x8b9:               testq  %r12,%r12                    
<<<<<<<<<<<<<<<<<<<<<
hs_mountfs+0x8bc:               je     +0x1b    <hs_mountfs+0x8d9>
hs_mountfs+0x8be:               movq   %r12,%rdi
hs_mountfs+0x8c1:               movq   $0xe8,%rsi
hs_mountfs+0x8c8:               call   +0x33e0b43       <kmem_free>
hs_mountfs+0x8cd:               jmp    +0xa     <hs_mountfs+0x8d9>
hs_mountfs+0x8cf:               movq   0x30(%rsp),%rdi
hs_mountfs+0x8d4:               call   +0x34c6fd7       <vn_rele>
hs_mountfs+0x8d9:               movl   %ebx,%eax
hs_mountfs+0x8db:               popq   %r15
hs_mountfs+0x8dd:               popq   %r14
> ::dis
hs_mountfs+0x8df:               popq   %r13
hs_mountfs+0x8e1:               popq   %r12
hs_mountfs+0x8e3:               popq   %rbx
hs_mountfs+0x8e4:               leave  
hs_mountfs+0x8e5:               ret    
hs_mountfs+0x8e6:               movq   %r15,%rdi
hs_mountfs+0x8e9:               nop    
hs_mountfs+0x8ea:               nop    
hs_mountfs+0x8eb:               nop    
hs_mountfs+0x8ec:               nop    
hs_mountfs+0x8ed:               nop    

> ffffff0010455e30::whatis
ffffff0010455e30 is in thread ffffff03a05ad060's stack

_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to