[jcigar at ulb.ac.be: Listen queue overflow: 8 already in queue awaiting acceptance]

hiren panchasara hiren at freebsd.org
Thu Oct 2 17:24:15 UTC 2014


On Thu, Oct 2, 2014 at 9:42 AM, Julien Cigar <jcigar at ulb.ac.be> wrote:
> sorry for cross-posting, I'm forwarding this as it seems that part of
> the problem is also related to:
> https://lists.freebsd.org/pipermail/freebsd-net/2014-September/039664.html

Umm, this looks like a different problem than the subject of this email.
>
> I also wonder if something has been fixed in -STABLE in this area ..
>
> (please keep me in CC as I'm not subscribed on freebsd-net@ an
> freebsd-stable@)
>
> --
> Julien Cigar
> Belgian Biodiversity Platform (http://www.biodiversity.be)
> PGP fingerprint: EEF9 F697 4B68 D275 7B11  6A25 B2BB 3710 A204 23C0
> No trees were killed in the creation of this message.
> However, many electrons were terribly inconvenienced.
>
>
> ---------- Forwarded message ----------
> From: Julien Cigar <jcigar at ulb.ac.be>
> To: freebsd-questions at freebsd.org
> Cc:
> Date: Thu, 2 Oct 2014 11:52:06 +0200
> Subject: Listen queue overflow: 8 already in queue awaiting acceptance
> Hello,
>
> I'm running 10-RELEASE on a HP Proliant DL160 Gen8 and I'm seeing the
> following in my kernel logs:
> sonewconn: pcb 0xfffff8010e561310: Listen queue overflow: 8 already in
> queue awaiting acceptance

This usually means the application is not keeping up with the incoming
connections.
>
> I already raised kern.ipc.soacceptqueue to 1024 and  netstat -naA | grep
> "fffff8010e561310" returns nothing

This is the usual way of finding the culprit process. If this doesn't
return anything, it probably means that it is a short-lived process.

Here is an example of what you could do:

sonewconn: pcb 0xfffff8008f40cb10: Listen queue overflow: 1 already in queue
awaiting acceptance

>From kgdb,
(kgdb) p ((struct inpcb *)0xfffff8008f40cb10)->inp_inc
$3 = {inc_flags = 0 '\0', inc_len = 0 '\0', inc_fibnum = 0, inc_ie = {ie_fport
= 0, ie_lport = 10295, ie_dependfaddr = {
      ie46_foreign = {ia46_pad32 = {0, 0, 0}, ia46_addr4 = {s_addr = 0}},
ie6_foreign = {__u6_addr = {
          __u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0,
0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}},
    ie_dependladdr = {ie46_local = {ia46_pad32 = {0, 0, 0}, ia46_addr4 =
{s_addr = 0}}, ie6_local = {__u6_addr = {
          __u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0,
0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}}}}

Here, ie_lport = 10295 which is in n/w byte order and converting it to host
byte order, 10295 -> 0x2837 and swapping them gives us 0x3728 which is 14120.

Now, use sockstat to find out what process is on that port:

$ sockstat -l | grep 14120

cheers,
Hiren


More information about the freebsd-stable mailing list