Hello. Last night I was trying to start an anonymous ftp server on my -current box for my local network. I made a mistake in vipw:
ftp:*:44444:44444:Unprivileged user:/sbin/nologin:/home/mp3 i.e., wrote a path to a script where directory is needed, and directory where path to shell is needed. Without noticing, I started ftpd in standalone mode, and logged in as user ftp, when the box panicked: # /usr/libexec/ftpd -AD # ftp -4 localhost On 4.7-RC1 box, this just spewed an error message in /var/log/messages and didn't panic, and man 2 chroot doesn't state it should. If there's something other than the backtrace(attached), let me know it. Regards.
Script started on Thu Oct 3 23:27:19 2002 qhwt@gzl$ gdb -k /usr/obj/kernel/kernel.debug vmcore.14 GNU gdb 5.2.0 (FreeBSD) 20020627 Copyright 2002 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 "i386-undermydesk-freebsd"... panic: bdwrite: buffer is not busy panic messages: --- panic: vrele: negative ref cnt syncing disks... panic: bdwrite: buffer is not busy Uptime: 5m31s Dumping 63 MB ata0: resetting devices .. ata0: mask=03 ostat0=50 ostat2=00 ad0: ATAPI 00 00 ata0-slave: ATAPI 00 00 ata0: mask=03 stat0=50 stat1=00 ad0: ATA 01 a5 ata0: devices=01 ad0: success setting PIO4 on generic chip done 16 32 48 --- #0 doadump () at /home/usr.src/sys/kern/kern_shutdown.c:223 223 dumping++; (kgdb) bt #0 doadump () at /home/usr.src/sys/kern/kern_shutdown.c:223 #1 0xc0198625 in boot (howto=260) at /home/usr.src/sys/kern/kern_shutdown.c:355 #2 0xc0198873 in panic () at /home/usr.src/sys/kern/kern_shutdown.c:508 #3 0xc01d725d in bdwrite (bp=0xc223edd0) at /home/usr.src/sys/kern/vfs_bio.c:952 #4 0xc0273d4b in ffs_update (vp=0xc13cb6f0, waitfor=0) at /home/usr.src/sys/ufs/ffs/ffs_inode.c:125 #5 0xc028702f in ffs_fsync (ap=0xc73a1ab0) at /home/usr.src/sys/ufs/ffs/ffs_vnops.c:309 #6 0xc0286b89 in VOP_FSYNC (vp=0x0, cred=0x0, waitfor=0, td=0x0) at vnode_if.h:612 #7 0xc0286014 in ffs_sync (mp=0xc0f9f800, waitfor=2, cred=0xc0726d80, td=0xc033e460) at /home/usr.src/sys/ufs/ffs/ffs_vfsops.c:1127 #8 0xc01ebd38 in sync (td=0xc033e460, uap=0x0) at /home/usr.src/sys/kern/vfs_syscalls.c:130 #9 0xc019820c in boot (howto=256) at /home/usr.src/sys/kern/kern_shutdown.c:264 #10 0xc0198873 in panic () at /home/usr.src/sys/kern/kern_shutdown.c:508 #11 0xc01e8618 in vrele (vp=0xc0fce4a0) at /home/usr.src/sys/kern/vfs_subr.c:2163 #12 0xc01eb7a9 in NDFREE (ndp=0xc73a1c78, flags=0) at /home/usr.src/sys/kern/vfs_subr.c:3590 ---Type <return> to continue, or q <return> to quit--- #13 0xc01ec8d3 in chroot (td=0xc142f0c0, uap=0x0) at /home/usr.src/sys/kern/vfs_syscalls.c:564 #14 0xc02de39a in syscall (frame= {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 126, tf_esi = -1077936868, tf_ebp = -1077939528, tf_isp = -952492684, tf_ebx = 0, tf_edx = -1, tf_ecx = 2, tf_eax = 61, tf_trapno = 0, tf_err = 2, tf_eip = 672269963, tf_cs = 31, tf_eflags = 514, tf_esp = -1077941908, tf_ss = 47}) at /home/usr.src/sys/i386/i386/trap.c:1050 #15 0xc02ce9bd in Xint0x80_syscall () at {standard input}:140 ---Can't read userspace from dump, or kernel process--- (kgdb) frame 11 #11 0xc01e8618 in vrele (vp=0xc0fce4a0) at /home/usr.src/sys/kern/vfs_subr.c:2163 2163 panic("vrele: negative ref cnt"); (kgdb) print vp->v_usecount $1 = 0 (kgdb) print *vp $2 = {v_interlock = {mtx_object = {lo_class = 0xc0342920, lo_name = 0xc030b67b "vnode interlock", lo_type = 0xc030b67b "vnode interlock", lo_flags = 196608, lo_list = { tqe_next = 0x0, tqe_prev = 0x0}, lo_witness = 0x0}, mtx_lock = 4, mtx_recurse = 0, mtx_blocked = {tqh_first = 0x0, tqh_last = 0xc0fce4c4}, mtx_contested = {le_next = 0x0, le_prev = 0x0}, mtx_acqtime = 0, mtx_filename = 0x0, mtx_lineno = 0}, v_iflag = 256, v_usecount = 0, v_numoutput = 0, v_vxproc = 0x0, v_holdcnt = 0, v_cleanblkhd = { tqh_first = 0x0, tqh_last = 0xc0fce4f8}, v_cleanblkroot = 0x0, v_dirtyblkhd = {tqh_first = 0x0, tqh_last = 0xc0fce504}, v_dirtyblkroot = 0x0, v_vflag = 8, v_writecount = 0, v_object = 0xc14522bc, v_lastw = 0, v_cstart = 0, v_lasta = 0, v_clen = 0, v_un = { vu_mountedhere = 0x0, vu_socket = 0x0, vu_spec = {vu_specinfo = 0x0, vu_specnext = {sle_next = 0x0}}, vu_fifoinfo = 0x0}, v_freelist = { tqe_next = 0x0, tqe_prev = 0xc13ca2f0}, v_nmntvnodes = {tqe_next = 0x0, tqe_prev = 0xc0fd2b10}, v_synclist = {le_next = 0x0, le_prev = 0xc0f6912c}, v_type = VREG, v_tag = 0xc0321a29 "ufs", v_data = 0xc14b9800, v_lock = {lk_interlock = 0xc036f728, lk_flags = 64, lk_sharecount = 0, lk_waitcount = 0, lk_exclusivecount = 0, lk_prio = 72, lk_wmesg = 0xc0321c77 "inode", lk_timo = 6, lk_lockholder = -1}, v_vnlock = 0xc0fce564, v_op = 0xc0f7ca00, v_mount = 0xc0fa4a00, v_cache_src = {lh_first = 0x0}, v_cache_dst = {tqh_first = 0xc13d68c0, tqh_last = 0xc13d68d0}, v_id = 2506, v_dd = 0xc0fce4a0, v_ddid = 0, ---Type <return> to continue, or q <return> to quit--- v_pollinfo = 0x0, v_label = {l_flags = 0, l_perpolicy = {{l_ptr = 0x0, l_long = 0}, {l_ptr = 0x0, l_long = 0}, {l_ptr = 0x0, l_long = 0}, { l_ptr = 0x0, l_long = 0}}}, v_cachedfs = 29696, v_cachedid = 4294967295} (kgdb) qhwt@gzl$ ^D Script done on Thu Oct 3 23:28:34 2002