Date: Tue, 18 Mar 2014 23:05:23 -0700 From: Julian Elischer <julian@freebsd.org> To: George Neville-Neil <gnn@neville-neil.com>, hiren panchasara <hiren.panchasara@gmail.com> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: Include port number in "Listen queue overflow" messages Message-ID: <532933A3.4030403@freebsd.org> In-Reply-To: <EC50E026-4DB3-46FA-A931-A1892923967F@neville-neil.com> References: <CALCpEUHHxKE2P=i92eZrFSe-cX5%2BrpQLcD%2BbGfksb8hHP4WPag@mail.gmail.com> <EC50E026-4DB3-46FA-A931-A1892923967F@neville-neil.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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 > >> 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" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?532933A3.4030403>