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