vinum (root on vinum too) throw_rude_remark crash: endless loop

Dmitry Morozovsky marck at rinet.ru
Tue Aug 12 00:18:23 PDT 2003


On Tue, 12 Aug 2003, Greg 'groggy' Lehey wrote:

GgL> > experimenting with vinum stripes and mirrors, I'd stuck myself with the
GgL> > following:
GgL> >
GgL> > panic: throw_rude_remark: called without config lock
GgL>
GgL> Hah!  So it is possible.  I'd like to see a dump for that one.

I wish I were able to produce such dump... but this panic is just _before_
mounting root r/o

GgL> > So, I'm stuck a bit. Even when I unload kernel modules and tries to
GgL> > load kernel thru synthetic ad0a I got:
GgL>
GgL> > ok unload
GgL> > ok load kernel
GgL> > /kernel text=0x10042f data=0x19704+0x16e28 syms=[0x4+0x1e870+0x4+0x23e87]
GgL> > ok boot -s -a
GgL> >
GgL> > mountroot> ufs:/dev/ad0s1a
GgL> > Mounting root from ufs:/dev/vinum/r
GgL> > no such device 'vinum'
GgL> > setrootbyname failed
GgL> > ffs_mountroot: can't find rootvp
GgL> > Root mount failed: 6
GgL> > panic: Root mount failed, startup aborted.
GgL>
GgL> Hmm.  I've had this problem before, but the method you worked was
GgL> successful.  Are you sure that your root partition is really on
GgL> /dev/ad0s1a?

Yes I really sure ;-) Just checked. BTW, for the last 4.x releases, I never
succeed with manual mountroot.

GgL> In any case, you should be able to fix it by booting
GgL> with the recovery CD and changing the contents of /etc/fstab.

That was (actually, floppy fixit boot as machine has no CD drive) exactly the
revive method, thanks ;-)

Now, for the source of panic. I *think* this is comething related to config
consistency checker. BTW, what is proposed "correct" way to delete a volume? I
was pushed to user 'rm -rf volname', and supposedly this was the problem; as
far as I remember the config raght after crash recovery (unfortunately, I did
not write it in details), there were volume intersection:

drive wd16-0b device /dev/ad0ds1a
drive wd16-1b device /dev/ad2ds1a
drive wd16-alpha device /dev/ad0hs1a
drive wd16-beta device /dev/ad2hs1a
volume r
volume usr
volume var
volume obj
volume lh
volume bsd
volume bk0
volume bk1
...
(all of them are just plain mirrors). I did 'rm -rf bk1', then create 1+0
stripe-mirrored volume for testing. It has been successfully created, then I
rebooted (forgot to add ad1h and ad3h to vinum.drives), and then stuck as
described before. The problem seems to be that when I read config after
recovery, there were _both_ newly created test volume _and_ bk1.

I'll try to reproduce the problem more precisely and followup then. Thanks for
cooperation.

Sincerely,
D.Marck                                     [DM5020, MCK-RIPE, DM3-RIPN]
------------------------------------------------------------------------
*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck at rinet.ru ***
------------------------------------------------------------------------


More information about the freebsd-stable mailing list