Hi,
I had a panic today when someone created a symlink over NFS to a UFS
file system.
There seem to be 2 open PRs on this already:
kern/122380
kern/133980
Any ideas on a fix? I have not tried to repeat this crash but I have
saved a snapshot of the file system so I can test if needed. I also
have the core file preserved.
# uname -a
FreeBSD mongo.XXX 7.1-RELEASE-p4 FreeBSD 7.1-RELEASE-p4 #0 @718:817M:
Tue Nov 24 02:31:49 UTC 2009
t...@dev-tj-7-1-amd64.xxx:/usr/obj/usr/src/sys/XXXv5 amd64
# kgdb /boot/kernel/kernel vmcore.0
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
Unread portion of the kernel message buffer:
mode = 0100600, inum = 2355296, fs = /usr/home
panic: ffs_valloc: dup alloc
cpuid = 0
Uptime: 5d13h10m53s
Physical memory: 6122 MB
Dumping 510 MB: 495 479 463 447 431 415 399 383 367 351 335 319 303 287
271 255 239 223 207 191 175 159 143 127 111 95 79 63 47 31 15
#0 doadump () at pcpu.h:195
195 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) bt
#0 doadump () at pcpu.h:195
#1 0x0004 in ?? ()
#2 0x8048e079 in boot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:418
#3 0x8048e482 in panic (fmt=0x104 bounds>) at /usr/src/sys/kern/kern_shutdown.c:574
#4 0x80607752 in ffs_valloc (pvp=Variable "pvp" is not available.
) at /usr/src/sys/ufs/ffs/ffs_alloc.c:968
#5 0x8063104e in ufs_makeinode (mode=41453,
dvp=0xff001d954dc8, vpp=0xb48e28a8, cnp=0xb48e28d0)
at /usr/src/sys/ufs/ufs/ufs_vnops.c:2254
#6 0x8063153f in ufs_symlink (ap=0xb48e29a0) at
/usr/src/sys/ufs/ufs/ufs_vnops.c:1831
#7 0x80737fe3 in VOP_SYMLINK_APV (vop=Variable "vop" is not
available.
) at vnode_if.c:1351
#8 0x805b8f38 in nfsrv_symlink (nfsd=0xff0065996100,
slp=0xff00035e6e00, td=0xff00041886e0, mrq=0xb48e2b00)
at vnode_if.h:712
#9 0x805b in nfssvc (td=Variable "td" is not available.
) at /usr/src/sys/nfsserver/nfs_syscalls.c:456
#10 0x806d7fa7 in syscall (frame=0xb48e2c80) at
/usr/src/sys/amd64/amd64/trap.c:907
#11 0x806be06b in Xfast_syscall () at
/usr/src/sys/amd64/amd64/exception.S:330
#12 0x000800687bfc in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb) frame 4
#4 0x80607752 in ffs_valloc (pvp=Variable "pvp" is not available.
) at /usr/src/sys/ufs/ffs/ffs_alloc.c:968
968 panic("ffs_valloc: dup alloc");
(kgdb) list
963 }
964 ip = VTOI(*vpp);
965 if (ip->i_mode) {
966 printf("mode = 0%o, inum = %lu, fs = %s\n",
967 ip->i_mode, (u_long)ip->i_number, fs->fs_fsmnt);
968 panic("ffs_valloc: dup alloc");
969 }
970 if (DIP(ip, i_blocks) && (fs->fs_flags & FS_UNCLEAN) == 0) {
/* XXX */
971 printf("free inode %s/%lu had %ld blocks\n",
972 fs->fs_fsmnt, (u_long)ino, (long)DIP(ip, i_blocks));
(kgdb)
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"