From owner-freebsd-bugs Sun Jun 27 15:30: 4 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id A4DD014D31 for ; Sun, 27 Jun 1999 15:30:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id PAA38910; Sun, 27 Jun 1999 15:30:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Sun, 27 Jun 1999 15:30:02 -0700 (PDT) Message-Id: <199906272230.PAA38910@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Pierre Beyssac Subject: Re: kern/11988: recvmsg with a cmsghdr but no iovec is broken Reply-To: Pierre Beyssac Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/11988; it has been noted by GNATS. From: Pierre Beyssac To: Tony Finch , FreeBSD-gnats-submit@FreeBSD.ORG Cc: Subject: Re: kern/11988: recvmsg with a cmsghdr but no iovec is broken Date: Mon, 28 Jun 1999 00:22:03 +0200 On Sun, Apr 11, 1999 at 11:06:40PM +0100, Tony Finch wrote: > would cause the child to exit owing to EBADF) the machine reboots. I don't > have a panic message to show because my test machine is a couple of miles > away and doesn't like the serial console server. The problem is easy to reproduce under -current; I've appended panic information below. The panic is in sbflush() which, after dropping all the data on the socket, finds sb->sb_mbcnt != 0. I'm still trying to understand that code so I can't say if I'll be able to fix it for the moment. Pierre panicstr: sbflush: cc 0 || mb 0xc05c3100 || mbcnt 128 panic messages: --- panic: sbflush: cc 0 || mb 0xc05c3100 || mbcnt 128 syncing disks... 14 14 1 done dumping to dev (4,9), offset 32 dump 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 --- #0 0xc0142360 in boot () (kgdb) where #0 0xc0142360 in boot () #1 0xc014259c in at_shutdown () #2 0xc015d515 in sbflush (sb=0xc4a62e04) at ../../kern/uipc_socket2.c:723 #3 0xc015cffd in sbrelease (sb=0xc4a62e04) at ../../kern/uipc_socket2.c:411 #4 0xc015c430 in sorflush (so=0xc4423840) at ../../kern/uipc_socket.c:929 #5 0xc015b1f4 in sofree (so=0xc4423840) at ../../kern/uipc_socket.c:220 #6 0xc015b332 in soclose (so=0xc4423840) at ../../kern/uipc_socket.c:284 #7 0xc01515ff in soo_close (fp=0xc0987600, p=0xc44e3100) at ../../kern/sys_socket.c:175 #8 0xc013afac in closef () #9 0xc013ad84 in fdfree () #10 0xc013c238 in exit1 () #11 0xc0143946 in sigexit () #12 0xc0143789 in postsig () #13 0xc0204dca in syscall () #14 0xc01f9d10 in Xint0x80_syscall () #15 0x8048d70 in ?? () #16 0x8048eae in ?? () #17 0x80488a5 in ?? () (kgdb) select 3 (kgdb) print *sb $1 = {sb_cc = 0, sb_hiwat = 8192, sb_mbcnt = 128, sb_mbmax = 65536, sb_lowat = 1, sb_mb = 0xc05c3100, sb_sel = {si_pid = 0, si_flags = 0}, sb_flags = 64, sb_timeo = 0} (kgdb) print *sb->sb_mb $2 = {m_hdr = {mh_next = 0x0, mh_nextpkt = 0x0, mh_data = 0xc05c3120 "", mh_len = 0, mh_type = 1, mh_flags = 2}, M_dat = {MH = {MH_pkthdr = { rcvif = 0x0, len = 0, header = 0x0}, MH_dat = {MH_ext = { ext_buf = 0x0, ext_free = 0x200, ext_size = 13288073, ext_ref = 0}, MH_databuf = "\000\000\000\000\000\002\000\000\211ÂÊ", '\000' , "\002\000\002\000\000\211ÂÌ", '\000' , "\002\000\002\000\000\211Â$", '\000' , "\002\000\002\000\000\211Â\200", '\000' , "\002\000\002\000\000\211Â,\000\000\000\000"}}, M_databuf = '\000' , "\002\000\000\211ÂÊ", '\000' , "\002\000\002\000\000\211ÂÌ", '\000' , "\002\000\002\000\000\211Â$", '\000' , "\002\000\002\000\000\211Â\200", '\000' , "\002\000\002\000\000\211Â,\000\000\000\000"}} To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message