kern/52916: vinum causes panic after start/stop/... cycle, easy to reproduce

Pawel Malachowski pawmal at unia.3lo.lublin.pl
Wed Jun 4 12:00:30 PDT 2003


The following reply was made to PR kern/52916; it has been noted by GNATS.

From: "Pawel Malachowski" <pawmal at unia.3lo.lublin.pl>
To: Greg 'groggy' Lehey <grog at FreeBSD.org>
Cc: FreeBSD-gnats-submit at FreeBSD.org
Subject: Re: kern/52916: vinum causes panic after start/stop/... cycle, easy to reproduce
Date: Wed, 04 Jun 2003 21:00:24 +0200

 On 4 Jun 2003 at 16:57, Greg 'groggy' Lehey wrote:
 
 > >> Description:
 > > Both 4.8-RELEASE and fresh 4.8-STABLE (on two different machines) catch
 > > kernel panic when I try something like:
 > > vinum start;vinum stop;vinum start;vinum stop;vinum start;vinum stop
 > >
 > > It is very easy to reproduce.
 > 
 > I was not able to reproduce it.
 
 I've published this script on Polish FreeBSD users group, people confirm
 their machines are crashing too (about 20-60 start/stop cycles):
 
 #!/bin/sh
 i=1
 while [ 1 ]
 do
   echo Trying $i
   vinum start
   vinum stop
   i=$(($i + 1))
 done
 
 
 > > 4.8-STABLE was compiled with debug symbols, unfortunately there is
 > > no crashdump.
 > 
 > What's the problem?  Do you have crash dumps enabled?
 
 Yes.
 
 % grep dump /etc/rc.conf
 dumpdev="/dev/ad0s2b"
 % swapinfo
 Device          1K-blocks     Used    Avail Capacity  Type
 /dev/ad0s2b       1048448        0  1048448     0%    Interleaved
 % sysctl kern.dumpdev
 kern.dumpdev: { major = 116, minor = 0x30001 }
 
 Swap is big enough.
 
 > > Fatal trap 12: page fault while in kernel mode
 > 
 > Sorry, this doesn't help at all.  At the very least I'd need to know
 > what the EIP address was.
 > 
 > 
 > > fault virtual address   = 0xb7
 > > fault code              = supervisor read, page not present
 > > instruction pointer     = 0x8:0xc01bedc8
 > 
 > This one.
 
 This was sent earlier for private, I'm adding to audit trail.
 (Obtained from machine with DDB, copied `by hand'):
 
 fatal trap 12: page fault while in kernel mode
 fault virtual address	= 0x3edde192
 fault code		= supervisor read, page not present
 instruction pointer	= 0x8: 0xc02248b4
 stack pointer		= 0x10:0xe194adc4
 frame pointer		= 0x10:0xe194add8
 code segment		= base 0x0, limit 0xfffff, type 0x1b,
 			  DPL 0, press 1, def 321, gran 1
 proccessor eflags	= interrupt enabled, resume, IOPL=0
 current process	= 61 (syslogd)
 interrupt mask		= none
 kernel type 12 trap, code=0
 stopped ad dscheck+0x104 movl 0xb8(%esi),%edx
 
 `x $eip' shows dscheck+0x104 b8968b
 
 > > So I compiled vinum statically into kernel,
 > >
 > > # vinum start;vinum stop;vinum start;vinum stop;
 > > ** no drives found: No such file or directory
 > > Can't unload vinum: No such file or directory
 > > ** no drives found: No such file or directory
 > > Can't unload vinum: No such file or directory
 > >
 > > and it crashed again with message like this:
 > >
 > > vinum: no drives found
 > > vinum: no drives found
 > 
 > You shouldn't be able to stop Vinum with a statically compiled module.
 
 Of course, but I'm able to produce a panic this way, that's why it
 is so interesting. :)
 
 
 -- 
 Pawe³ Ma³achowski
 


More information about the freebsd-bugs mailing list