From owner-freebsd-stable Wed Feb 3 13:02:53 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id NAA21913 for freebsd-stable-outgoing; Wed, 3 Feb 1999 13:02:53 -0800 (PST) (envelope-from owner-freebsd-stable@FreeBSD.ORG) Received: from gate.lustig.com (gate.lustig.com [205.246.2.242]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id NAA21905 for ; Wed, 3 Feb 1999 13:02:45 -0800 (PST) (envelope-from barry@lustig.com) Received: (qmail 33274 invoked from network); 3 Feb 1999 21:02:38 -0000 Received: from devious.lustig.com (205.246.2.244) by gate.lustig.com with SMTP; 3 Feb 1999 21:02:38 -0000 Received: (qmail 12317 invoked by uid 1001); 3 Feb 1999 21:02:55 -0000 Message-ID: <19990203210255.12316.qmail@devious.lustig.com> Content-Type: text/plain MIME-Version: 1.0 (NeXT Mail 4.2mach v148) X-Nextstep-Mailer: Mail 4.2mach (Enhance 2.2p1) Received: by NeXT.Mailer (1.148.RR) From: Barry Lustig Date: Wed, 3 Feb 1999 16:02:54 -0500 To: freebsd-stable@FreeBSD.ORG Subject: ypserv sigsegv in most recent CVSup of 2.2.8 Reply-To: barry@lustig.com X-Organizations: Barry Lustig & Associates, Inc. Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Has anyone seen any problems with ypserv on the latest CVSup of 2.2.8? I have been seeing random sigsegv's showing up. I compiled up a debugging version of ypserv along with libc and found the following: (gdb) bt #0 svc_getreqset (readfds=0xefbfd964) at /usr/src/lib/libc/../libc/rpc/svc.c:432 #1 0x4234 in yp_svc_run () at /usr/src/usr.sbin/ypserv/yp_main.c:144 #2 0x480c in main (argc=1, argv=0xefbfd9dc) at /usr/src/usr.sbin/ypserv/yp_main.c:333 (gdb) p xprt $12 = (SVCXPRT *) 0x0 Here is the snippet of code in svc_getreqset where the problem is occuring: #ifdef FD_SETSIZE setsize = _rpc_dtablesize(); maskp = (u_long *)readfds->fds_bits; for (sock = 0; sock < setsize; sock += NFDBITS) { for (mask = *maskp++; (bit = ffs(mask)); mask ^= (1 << (bit - 1))) \ { /* sock has input waiting */ xprt = xports[sock + bit - 1]; #else for (sock = 0; readfds_local != 0; sock++, readfds_local >>= 1) { if ((readfds_local & 1) != 0) { /* sock has input waiting */ xprt = xports[sock]; #endif /* def FD_SETSIZE */ /* now receive msgs from xprtprt (support batch calls) */ do { =>if (SVC_RECV(xprt, &msg)) { /* now find the exported program and call it */ register struct svc_callout *s; enum auth_stat why; r.rq_xprt = xprt; r.rq_prog = msg.rm_call.cb_prog; r.rq_vers = msg.rm_call.cb_vers; r.rq_proc = msg.rm_call.cb_proc; r.rq_cred = msg.rm_call.cb_cred; To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message