Date: Wed, 19 Mar 2014 09:35:44 -0700 From: Navdeep Parhar <nparhar@gmail.com> To: Julian Elischer <julian@freebsd.org> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, hiren panchasara <hiren.panchasara@gmail.com> Subject: Re: Include port number in "Listen queue overflow" messages Message-ID: <20140319163544.GB11935@ox> In-Reply-To: <532933A3.4030403@freebsd.org> References: <CALCpEUHHxKE2P=i92eZrFSe-cX5%2BrpQLcD%2BbGfksb8hHP4WPag@mail.gmail.com> <EC50E026-4DB3-46FA-A931-A1892923967F@neville-neil.com> <532933A3.4030403@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 18, 2014 at 11:05:23PM -0700, Julian Elischer wrote: > On 3/18/14, 8:33 PM, George Neville-Neil wrote: > >On Mar 7, 2014, at 1:23 , hiren panchasara <hiren.panchasara@gmail.com> wrote: > > > >>I am thinking of committing following change that includes port number > >>in "Listen queue overflow" messages. > I think it's a good idea. There is even more information available > but this is probably enough. > >> > >I like it. > > > >Best, > >George > > I think the suggested change isn't correct as is assumes every socket's pcb is an inpcb. Navdeep > >>New message would look something like: > >>sonewconn: pcb 0xfffff8001b155760: Listen queue overflow on port > >>13120: 1 already in queue awaiting acceptance (454 occurrences) > >> > >>I've recently ran into a situation at $work where I could not catch > >>the culprit application via "netstat -A" and had to dive into kgdb to > >>find the port from pcb where this application was listening to. > >> > >>IMO, this change will make debugging easier. > >> > >>cheers, > >>Hiren > >> > >>Index: sys/kern/uipc_socket.c > >>=================================================================== > >>--- sys/kern/uipc_socket.c (revision 262861) > >>+++ sys/kern/uipc_socket.c (working copy) > >>@@ -136,6 +136,7 @@ > >>#include <sys/jail.h> > >>#include <sys/syslog.h> > >>#include <netinet/in.h> > >>+#include <netinet/in_pcb.h> > >> > >>#include <net/vnet.h> > >> > >>@@ -491,8 +492,11 @@ > >> static int overcount; > >> > >> struct socket *so; > >>+ struct inpcb *inp; > >> int over; > >> > >>+ inp = sotoinpcb(head); > >>+ > >> ACCEPT_LOCK(); > >> over = (head->so_qlen > 3 * head->so_qlimit / 2); > >> ACCEPT_UNLOCK(); > >>@@ -504,10 +508,12 @@ > >> overcount++; > >> > >> if (ratecheck(&lastover, &overinterval)) { > >>- log(LOG_DEBUG, "%s: pcb %p: Listen queue overflow: " > >>- "%i already in queue awaiting acceptance " > >>+ log(LOG_DEBUG, "%s: pcb %p: Listen queue overflow on " > >>+ "port %d: %i already in queue awaiting acceptance " > >> "(%d occurrences)\n", > >>- __func__, head->so_pcb, head->so_qlen, overcount); > >>+ __func__, head->so_pcb, > >>+ ntohs(inp->inp_inc.inc_lport), head->so_qlen, > >>+ overcount); > >> > >> overcount = 0; > >> } > >>_______________________________________________ > >>freebsd-net@freebsd.org mailing list > >>http://lists.freebsd.org/mailman/listinfo/freebsd-net > >>To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > >_______________________________________________ > >freebsd-net@freebsd.org mailing list > >http://lists.freebsd.org/mailman/listinfo/freebsd-net > >To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140319163544.GB11935>