Thinking about switching, some queries.

Mark Cullen mark.r.cullen at gmail.com
Sat Apr 22 04:02:18 PDT 2006


Hi all,

Yesterday I managed to make my 4.11 box panic. Since the FreeBSD team 
have basically abandoned 4.x support, I think it may be time for me to 
either update to 5.x or 6.x, or switch to another O/S. I tried 5.x and 
6.x about 6 months ago and had no luck with those at all, hence why I am 
here :-)

I do have a few questions though.

1) I currently have a RAID-1 volume using vinum.

- How is the stability of vinum on DF?
- Is anyone using it for a simple 2 disk RAID-1 array?
- Will I be able to just install DF, and have vinum work without any 
hassle (it's for /usr/home), or will I be risking bad things happening, 
like data corruption, if I don't rebuild it or something?
- Has anyone tried running softupdates on a RAID-1 volume? Does it 
actually work now? I tried enabling softupdates on FreeBSD and suffered 
MASSIVE data corruption and multiple panics. Luckily one of the disks 
was pulled at the time, so I still had all my data *phew*.

2) PF / IPF. I am currently using IPF + natd. When I first tried DF, PF 
seemed really quite broken ( or more than likely I just didn't know how 
to use it properly. :-) )

- Is there anyone here using IPF or PF along with natd? Does it work as 
expected now? The main function of the box is going to be NAT / sharing 
the internet...

3) Has anyone come across this panic I got on FreeBSD? I think (I have 
no idea, just making a semi-educated guess) it might be something VFS / 
vnode related? I know you've done alot of VFS work, so if the panic is 
related to that I am thinking I probably won't be seeing it, hopefully.

Google found me 1 other reference to the exact same panic I saw 
(http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2003-October/014880.html 
), the PR was filed way back in 2003, didn't get followed up and is 
still open :-( I dont think there's much chance of it getting found and 
fixed on 4.x.

---

#0  dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
487             if (dumping++) {
(kgdb) bt
#0  dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
#1  0xc017f008 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:316
#2  0xc017f43c in poweroff_wait (junk=0xc02f9eac, howto=-1070622289)
    at /usr/src/sys/kern/kern_shutdown.c:595
#3  0xc02aab03 in trap_fatal (frame=0xca51dcf4, eva=20)
    at /usr/src/sys/i386/i386/trap.c:974
#4  0xc02aa7c5 in trap_pfault (frame=0xca51dcf4, usermode=0, eva=20)
    at /usr/src/sys/i386/i386/trap.c:867
#5  0xc02aa37b in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = -1058013168,
      tf_edi = -900604532, tf_esi = 20, tf_ebp = -900604572,
      tf_isp = -900604640, tf_ebx = 92, tf_edx = 128, tf_ecx = 23,
      tf_eax = -900604552, tf_trapno = 12, tf_err = 0, tf_eip = 
-1070951622,
      tf_cs = 8, tf_eflags = 66070, tf_esp = 0, tf_ss = -1059805096})
    at /usr/src/sys/i386/i386/trap.c:466
#6  0xc02a933a in generic_bcopy ()
#7  0xc019966b in ptcread (dev=0xc032f114, uio=0xca51ded4, flag=8323088)
    at /usr/src/sys/kern/tty_pty.c:457
#8  0xc01b9bb6 in spec_read (ap=0xca51de68)
    at /usr/src/sys/miscfs/specfs/spec_vnops.c:253
#9  0xc0259cb8 in ufsspec_read (ap=0xca51de68)
    at /usr/src/sys/ufs/ufs/ufs_vnops.c:1798
#10 0xc025a359 in ufs_vnoperatespec (ap=0xca51de68)
    at /usr/src/sys/ufs/ufs/ufs_vnops.c:2394
#11 0xc01b5c98 in vn_read (fp=0xc14ca680, uio=0xca51ded4, cred=0xc10d1b80,
    flags=0, p=0xca46b3c0) at vnode_if.h:334
#12 0xc018e63b in dofileread (p=0xca46b3c0, fp=0xc14ca680, fd=9,
    buf=0xbfbfb3b0, nbyte=16384, offset=-1, flags=0)
    at /usr/src/sys/sys/file.h:147
#13 0xc018e4ff in read (p=0xca46b3c0, uap=0xca51df80)
    at /usr/src/sys/kern/sys_generic.c:117
#14 0xc02aadbd in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
      tf_edi = 134839056, tf_esi = 134840832, tf_ebp = -1077939280,
      tf_isp = -900603948, tf_ebx = 9, tf_edx = 134839056, tf_ecx = 9,
      tf_eax = 3, tf_trapno = 7, tf_err = 2, tf_eip = 673732972, tf_cs 
= 31,
      tf_eflags = 659, tf_esp = -1077955708, tf_ss = 47})
    at /usr/src/sys/i386/i386/trap.c:1175
#15 0xc029c0f5 in Xint0x80_syscall ()
#16 0x8069a43 in ?? ()
#17 0x8069e39 in ?? ()
#18 0x8069f2f in ?? ()
#19 0x8053c9b in ?? ()
#20 0x805a386 in ?? ()
#21 0x8056c6b in ?? ()
#22 0x804f13c in ?? ()
#23 0x804c56e in ?? ()
(kgdb) l *0xc02a933a
No source file for address 0xc02a933a.
(kgdb) l *0xc019966b
0xc019966b is in ptcread (/usr/src/sys/kern/tty_pty.c:458).
453             }
454             if (pti->pt_flags & (PF_PKT|PF_UCNTL))
455                     error = ureadc(0, uio);
456             while (uio->uio_resid > 0 && error == 0) {
457                     cc = q_to_b(&tp->t_outq, buf, 
min(uio->uio_resid, BUFSIZ));
458                     if (cc <= 0)
459                             break;
460                     error = uiomove(buf, cc, uio);
461             }
462             ttwwakeup(tp);
(kgdb) l *0xc01b9bb6
0xc01b9bb6 is in spec_read (/usr/src/sys/miscfs/specfs/spec_vnops.c:253).
248
249             if (uio->uio_resid == 0)
250                     return (0);
251
252             VOP_UNLOCK(vp, 0, p);
253             error = (*devsw(dev)->d_read) (dev, uio, ap->a_ioflag);
254             vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
255             return (error);
256     }
257
(kgdb) l *0xc0259cb8
0xc0259cb8 is in ufsspec_read (/usr/src/sys/ufs/ufs/ufs_vnops.c:1798).
1793            struct inode *ip;
1794            struct uio *uio;
1795
1796            uio = ap->a_uio;
1797            resid = uio->uio_resid;
1798            error = VOCALL(spec_vnodeop_p, VOFFSET(vop_read), ap);
1799            /*
1800             * The inode may have been revoked during the call, so 
it must not
1801             * be accessed blindly here or in the other wrapper 
functions.
1802             */
(kgdb) l *0xc025a359
0xc025a359 is in ufs_vnoperatespec (/usr/src/sys/ufs/ufs/ufs_vnops.c:2394).
2389    ufs_vnoperatespec(ap)
2390            struct vop_generic_args /* {
2391                    struct vnodeop_desc *a_desc;
2392            } */ *ap;
2393    {
2394            return (VOCALL(ufs_specop_p, ap->a_desc->vdesc_offset, ap));
2395    }
(kgdb) l *0xc01b5c98
0xc01b5c98 is in vn_read (vnode_if.h:334).
329             a.a_desc = VDESC(vop_read);
330             a.a_vp = vp;
331             a.a_uio = uio;
332             a.a_ioflag = ioflag;
333             a.a_cred = cred;
334             rc = VCALL(vp, VOFFSET(vop_read), &a);
335             return (rc);
336     }
337     struct vop_write_args {
338             struct vnodeop_desc *a_desc;
(kgdb) l *0xc018e63b
0xc018e63b is in dofileread (/usr/src/sys/sys/file.h:147).
142             int flags;
143     {
144             int error;
145
146             fhold(fp);
147             error = (*fp->f_ops->fo_read)(fp, uio, cred, flags, p);
148             fdrop(fp, p);
149             return (error);
150     }
151
(kgdb) l *0xc018e4ff
0xc018e4ff is in read (/usr/src/sys/kern/sys_generic.c:117).
112             register struct file *fp;
113             int error;
114
115             if ((fp = holdfp(p->p_fd, uap->fd, FREAD)) == NULL)
116                     return (EBADF);
117             error = dofileread(p, fp, uap->fd, uap->buf, uap->nbyte, 
(off_t)-1, 0);
118             fdrop(fp, p);
119             return(error);
120     }
121
(kgdb) l *0xc02aadbd
0xc02aadbd is in syscall2 (/usr/src/sys/i386/i386/trap.c:1175).
1170            p->p_retval[0] = 0;
1171            p->p_retval[1] = frame.tf_edx;
1172
1173            STOPEVENT(p, S_SCE, narg);      /* MP aware */
1174
1175            error = (*callp->sy_call)(p, args);
1176
1177            /*
1178             * MP SAFE (we may or may not have the MP lock at this 
point)
1179             */
(kgdb)

---

I don't know if it's repeatable or not, but at the time I was copying an 
old website backup over to the machine via samba (3.x). I then noticed 
it was in the wrong place (whoops), and proceeded to delete it via 
samba. At some point a windows popup appeared asking me if I was sure I 
wanted to delete something. Just as this happened, over ssh I hit enter 
to run vi, to edit the apache config file. Literally just as I hit enter 
everything froze and the machine panic'd. I am going to install FreeBSD 
on another machine later, hopefully, and see if I can reproduce it.

I think that might be all for now!

Thanks in advance for any general advice / answers,
Markie




More information about the Users mailing list