8-STABLE: gmirror segfaulting

Alexander Motin mav at FreeBSD.org
Fri Jan 15 19:48:47 UTC 2010


Oliver Lehmann wrote:
> Hi,
> 
> sorry for the long story following but I think this is important to get
> the picture ;)
> 
> 
> I had the following setup:
> 
> 2 harddisks ada0, ada1 mirrored with gmirror as gm0
> 1 2.7TB twa-RAID as da0
> 
> the da0p1 partition had a gjournal on gm0s1fh
> the gm0s1f partition had a gjournal on gm0s1fg
> 
> I tried to label (tunefs -L) da0p1.journal as "files" and gm0s1f.journal
> as "usr" but the label was everytime gone after a reboot for whatever
> reasons.
> 
> Later I also felt mad about the massive bad write performance on my
> RAID-5.
> 
> Finally I decided to remove the journaling today to get my performance
> back ;)
> 
> This is where the problems have started.....
> 
> I was not able to remove the journaling wile the mirror was still intact
> because it always tried to resolve my previous given "usr" label which
> existed on the disks ada0+ada1 below gm0 but never where mapped to the
> front (gm0s1f.journal) again somehow. That always failed.
> 
> So I did gmirror remove ada0+ada1 until gm0 was gone and I had back ada0
> and ada1 as single disks. I then rebooted into single user again and did
> gjournal stop for all three journals (breaking gmirror created 2 journals
> on both RAID-1 hdds of course for ada0s1f and ada1s1f) and then did a
> gjournal clear. That clear failed on da0p1 (maybe because the gm0s1h
> journal also devided into ada0s1h and ada1s1h - who knows) so I again
> rebootet but then having my system waiting forever "root mount waiting
> for: GJOURNAL". I felt a bit pissed off I must admit because at first I
> thought that I've dumped my system :(
> 
> Fortunally I had gjournal loaded as kernel module only so I rebooted once
> more and just loaded the kernel w/o every module. I then was able to make
> gjournal clear da0p1 while the gjournal module was not loaded.
> 
> Now the journals on all harddisks where gone. I also did a tunefs -J
> disable.
> 
> I now wanted to recreate my gmirror with
> 
> sysctl kern.geom.debugflags=17
> gmirror label -vb round-robin gm0 ada0
> 
> This creates a massive printout of debug messages on my console and
> finally ended up with "gmirror: Segmentation fault". Then I'm left with a
> system responding to every command with "Device not configure" So all I
> had left was power-cycling the system.
> 
> This is repeatable.... I really want my gmirror back. Any advice?

Interesting story, but I've lost the track. I can't say for sure what
crashed gmirror without seeing any messages, but I suppose that after so
dirty deconstruction of mirror and journals you may left some
meta-information on devices. Restoring gmirror could make it accessible
again. I would try to explicitly clear last few sectors of every
disk/partition where something was living with dd to be sure that
nothing left there.

-- 
Alexander Motin


More information about the freebsd-ports mailing list