Date: Tue, 12 Aug 2003 11:57:14 +0400 (MSD) From: Dmitry Morozovsky <marck@rinet.ru> To: "Greg 'groggy' Lehey" <grog@freebsd.org> Cc: freebsd-stable@freebsd.org Subject: Re: vinum (root on vinum too) throw_rude_remark crash: endless loop Message-ID: <20030812114228.M64103@woozle.rinet.ru> In-Reply-To: <20030812110255.S64103@woozle.rinet.ru> References: <20030811192306.E39447@woozle.rinet.ru> <20030812014822.GM803@wantadilla.lemis.com> <20030812110255.S64103@woozle.rinet.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 12 Aug 2003, Dmitry Morozovsky wrote: DM> Now, for the source of panic. I *think* this is comething related to config DM> consistency checker. BTW, what is proposed "correct" way to delete a volume? I DM> was pushed to user 'rm -rf volname', and supposedly this was the problem; as DM> far as I remember the config raght after crash recovery (unfortunately, I did DM> not write it in details), there were volume intersection: DM> DM> drive wd16-0b device /dev/ad0ds1a DM> drive wd16-1b device /dev/ad2ds1a DM> drive wd16-alpha device /dev/ad0hs1a DM> drive wd16-beta device /dev/ad2hs1a DM> volume r DM> volume usr DM> volume var DM> volume obj DM> volume lh DM> volume bsd DM> volume bk0 DM> volume bk1 DM> ... DM> (all of them are just plain mirrors). I did 'rm -rf bk1', then create 1+0 DM> stripe-mirrored volume for testing. It has been successfully created, then I DM> rebooted (forgot to add ad1h and ad3h to vinum.drives), and then stuck as DM> described before. The problem seems to be that when I read config after DM> recovery, there were _both_ newly created test volume _and_ bk1. Well, I found this inconsistent configuration in serial console logs (luckily me having freshly installed conserver-com! ;-) This will be rather long message, sorry. p is test volume, bk2 has been created to temporary hold bk1's content. # vinum printconfig^M # Vinum configuration of , saved at Mon Aug 11 20:44:26 2003 drive wd16-0b device /dev/ad0ds1a drive wd16-1b device /dev/ad2ds1a drive wd16-beta device /dev/ad2hs1a drive seag80 device /dev/ad1hs1a drive ibm60 device /dev/ad3hs1a drive wd16-alpha device /dev/ad0hs1a volume r volume usr volume var volume obj volume swap volume lh volume bsd volume bk0 volume p volume bk2 volume bk1 plex name r.p0 org concat vol r plex name r.p1 org concat vol r plex name usr.p0 org concat vol usr plex name usr.p1 org concat vol usr plex name var.p0 org concat vol var plex name var.p1 org concat vol var plex name obj.p0 org concat vol obj plex name obj.p1 org concat vol obj plex name swap.p0 org striped 512s vol swap plex name lh.p0 org concat vol lh plex name lh.p1 org concat vol lh plex name bsd.p0 org concat vol bsd plex name bsd.p1 org concat vol bsd plex name bk0.p0 org concat vol bk0 plex name bk0.p1 org concat vol bk0 plex name p.p0 org striped 513s vol p plex name p.p1 org striped 513s vol p plex name bk2.p0 org concat vol bk2 plex name bk2.p1 org concat vol bk2 plex name bk1.p0 org concat vol bk1 plex name bk1.p1 org concat vol bk1 sd name r.p0.s0 drive wd16-0b plex r.p0 len 262144s driveoffset 265s plexoffset 0s sd name r.p1.s0 drive wd16-1b plex r.p1 len 262144s driveoffset 265s plexoffset 0s sd name usr.p0.s0 drive wd16-0b plex usr.p0 len 786112s driveoffset 262409s plexoffset 0s sd name usr.p1.s0 drive wd16-1b plex usr.p1 len 786112s driveoffset 262409s plexoffset 0s sd name var.p0.s0 drive wd16-alpha plex var.p0 len 2097152s driveoffset 265s plexoffset 0s sd name var.p1.s0 drive wd16-beta plex var.p1 len 2097152s driveoffset 265s plexoffset 0s sd name obj.p0.s0 drive wd16-alpha plex obj.p0 len 4194304s driveoffset 2097417s plexoffset 0s sd name obj.p1.s0 drive wd16-beta plex obj.p1 len 4194304s driveoffset 2097417s plexoffset 0s sd name swap.p0.s0 drive wd16-alpha plex swap.p0 len 1048576s driveoffset 6291721s plexoffset 0s sd name swap.p0.s1 drive wd16-beta plex swap.p0 len 1048576s driveoffset 6291721s plexoffset 512s sd name lh.p0.s0 drive wd16-alpha plex lh.p0 len 8388608s driveoffset 7340297s plexoffset 0s sd name lh.p1.s0 drive wd16-beta plex lh.p1 len 8388608s driveoffset 7340297s plexoffset 0s sd name bsd.p0.s0 drive wd16-alpha plex bsd.p0 len 12582912s driveoffset 15728905s plexoffset 0s sd name bsd.p1.s0 drive wd16-beta plex bsd.p1 len 12582912s driveoffset 15728905s plexoffset 0s sd name bk0.p0.s0 drive wd16-alpha plex bk0.p0 len 146800640s driveoffset 28311817s plexoffset 0s sd name bk0.p1.s0 drive wd16-beta plex bk0.p1 len 146800640s driveoffset 28311817s plexoffset 0s sd name p.p0.s0 drive wd16-alpha plex p.p0 len 41942880s driveoffset 175112457s plexoffset 0s sd name p.p0.s1 drive seag80 plex p.p0 len 41942880s driveoffset 265s plexoffset 513s sd name p.p1.s0 drive wd16-beta plex p.p1 len 41942880s driveoffset 175112457s plexoffset 0s sd name p.p1.s1 drive ibm60 plex p.p1 len 41942880s driveoffset 265s plexoffset 513s sd name bk2.p0.s0 drive seag80 plex bk2.p0 len 77109248s driveoffset 41943305s plexoffset 0s sd name bk2.p1.s0 drive ibm60 plex bk2.p1 len 77109248s driveoffset 41943305s plexoffset 0s sd name bk1.p0.s0 drive wd16-alpha plex bk1.p0 len 136420712s driveoffset 175112457s plexoffset 0s sd name bk1.p1.s0 drive wd16-beta plex bk1.p1 len 136420712s driveoffset 175112457s plexoffset 0s Also, vinum control program reported all disks as totally free! vinum -> l 6 drives: D wd16-0b State: up Device /dev/ad0ds1a Avail: 0/511 MB (0%) D wd16-1b State: up Device /dev/ad2ds1a Avail: 0/511 MB (0%) D wd16-beta State: up Device /dev/ad2hs1a Avail: 152115/152115 MB (100%) D seag80 State: up Device /dev/ad1hs1a Avail: 75806/75807 MB (100%) D ibm60 State: up Device /dev/ad3hs1a Avail: 58131/58132 MB (100%) D wd16-alpha State: up Device /dev/ad0hs1a Avail: 152115/152115 MB (100%) I removed p volume and then... vinum -> rm -rf p vinum: removing p.p0 vinum: removing p.p1 vinum: removing p vinum -> ld 6 drives: D wd16-0b State: up Device /dev/ad0ds1a Avail: 0/511 MB (0%) D wd16-1b State: up Device /dev/ad2ds1a Avail: 0/511 MB (0%) D wd16-beta State: up Device /dev/ad2hs1a Avail: 172595/152115 MB (113%) D seag80 State: up Device /dev/ad1hs1a Avail: 96286/75807 MB (127%) D ibm60 State: up Device /dev/ad3hs1a Avail: 78611/58132 MB (135%) D wd16-alpha State: up Device /dev/ad0hs1a Avail: 172595/152115 MB (113%) as you can see, more than 100% free. Neat, huh? ;-) I then force saveconfig and makedev, newfs bk1 and finished these dangerouts experiment for now ;-) As a sidenote, there is another problem (hard to reproduce, no kernel dump right now unfortunately) is panic with the following symptoms: Fatal trap 18: integer divide fault while in kernel mode instruction pointer = 0x8:0xc01e3956 stack pointer = 0x10:0xd7576c68 frame pointer = 0x10:0xd7576cd4 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 249 (vinum) interrupt mask = none trap number = 18 panic: integer divide fault panic has been provoked via 'vinum ld' command, and I suppose it was in free space/capacity calculations. Sincerely, D.Marck [DM5020, MCK-RIPE, DM3-RIPN] ------------------------------------------------------------------------ *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru *** ------------------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030812114228.M64103>