amd64/75043: Vinum panic on booting from mirrored vinum drive on amd64

Andrej Potocky 3dfaith at post.sk
Tue Dec 14 00:40:31 PST 2004


>Number:         75043
>Category:       amd64
>Synopsis:       Vinum panic on booting from mirrored vinum drive on amd64
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 14 08:40:30 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Andrej Potocky
>Release:        5.3-RELEASE
>Organization:
>Environment:
vinum: loaded
vinum: reading configuration from /dev/ad4d
vinum: updating configuration from /dev/ad6d
Mounting root from ufs:/dev/vinum/mirror
Pre-seeding PRNG: kickstart.
Loading configuration files.
Entropy harvesting: interrupts ethernet point_to_point kickstart.


Fatal trap 12: page fault while in kernel mode
fault virtual address      = 0xb8
fault code                 = supervisor read, page not present
instruction pointer        = 0x8:0xffffffff80339450
stack pointer              = 0x10:0xffffffffb04177d0
frame pointer              = 0x10:0xffffff005c47f240
code segment               = base 0x0, limit 0xfffff, type 0x1b
                           = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags           = interrupt enabled, resume, IOPL = 0
current process            = 99 (vinum)
trap number                = 12
panic: page fault
Uptime: 2s  

After hard reboot from this panic and booting in safe mode from the mirrored drive it crash again but by another way.. 
: vinum found a drives and created a volume called mirror.

Starting file system checks:
/dev/vinum/mirror: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/vinum/mirror: clean, 7867350 free (326 frags, 983378 blocks, 0.0% fragmentation)
mode = 0100400, inum = 612659, fs = /
panic: ffs_valloc: dup alloc
Uptime: 2s
  
>Description:
I have created a mirrored vinum drive from DD disks ad4d and ad6d
When I tried to boot from one of them, or to reboot from another single drive ad0s1a,  a panic happend.. 
After hard reboot from this panic and booting in safe mode from the mirrored drive it crash again but by another way.. 
: vinum found a drives and created a volume called mirror.

Starting file system checks:
/dev/vinum/mirror: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/vinum/mirror: clean, 7867350 free (326 frags, 983378 blocks, 0.0% fragmentation)
mode = 0100400, inum = 612659, fs = /
panic: ffs_valloc: dup alloc
Uptime: 2s

My /etc/vinum.conf used to create a vinum mirror drive:

drive disk2 device /dev/ad6d
drive disk1 device /dev/ad4d
volume mirror
plex name mirror.p0 org concat vol mirror
plex name mirror.p1 org concat vol mirror
 sd name mirror.p0.s0 drive disk1 plex mirror.p0 len 34441367s drive offset 265s plexoffset 0s
  sd name mirror.p1.s0 drive disk2 plex mirror.p1 len 34441367s drive offset 265s plexoffset 0s

# disklabel ad4[ad6]

# /dev/ad4
8 partitions:
#	size	offset	fstype	[fsize bsize bps/cpg]
  a: 34441367      281   4.2BSD   2048 16384 28528
  c: 234441648       0   unused       0   0   # "raw" part, ...
  d: 34441632       16   vinum

when I run # /stand/sysinstall  ... and try to configure with fdisk, it told me first that geometry is incorrect and if I am unsure... (you know) ,..I didn't any changes on geometry of any disk
I've got four 120GB seagate SATA disks but seen only 111GB on each of them with 2 different controllers (via32XX[can't remember] and Fastrak TX2/4  ..MB MSI K8T800 FIS2R)  


also I couldn't boot from mirrored drive when it was created by slices
(ad4s1d, ad6s1d). when I tried to change vinumio.c by adding a 
#ifdef __amd64__
   "code from __i386__"

and made another change in same file:
#ifdef __i386__ 
  int slice
#endif

#ifdef __amd64__
  int slice
#endif

after recompiling, it found vinum drive mirror, but still the same panic with sliced disks
>How-To-Repeat:
create a vinum drive from disks like can see upper.
reboot from one of the mirrored disks.

>Fix:
After panic, reboot from non mirrored drive in safe mode.. The booting in safe mode from another non mirrored drive doesn't cause panics.
After that (correcting with fsck onboot) you can reboot from mirrored drives, but only in safemode.  
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-amd64 mailing list